diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3d8bbc3..07edf1c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -42,7 +42,7 @@ jobs: key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Build dependencies - run: composer install --no-progress --ignore-platform-reqs + run: composer install --no-progress working-directory: app - name: Build Chevereto run: | diff --git a/.package/4.0.5.txt b/.package/4.0.5.txt deleted file mode 100644 index 6ad001b..0000000 --- a/.package/4.0.5.txt +++ /dev/null @@ -1,11 +0,0 @@ -Chevereto 4.0.5 (2022-11-30) - -✅ Added more environment variables -✅ Renamed dashboard/settings/api to dashboard/settings/guest-api -✅ Renamed website modes (community, personal) -🐞 Fixed bug with Exif metadata removal -🐞 Fixed bug with single image redirect -🐞 Fixed bug with selectable items on iPad -🐞 Fixed bug with login page -🐞 Fixed bug with missing timestamp on upload -🐞 Fixed bug with ModerateContent diff --git a/.package/4.0.6.txt b/.package/4.0.6.txt new file mode 100644 index 0000000..7a59234 --- /dev/null +++ b/.package/4.0.6.txt @@ -0,0 +1,18 @@ +Chevereto 4.0.6 (2022-01-03) + +- ✅ Improved user avatar upload handling +- 🐘 Added support for PHP 8.2 +- 🐞 Fixed bug with consent screen +- 🐞 Fixed bug with undefined constant +- 🐞 Fixed bug with flood uploads notify +- 🐞 Fixed bug with forced privacy settings +- 🐞 Fixed bug with not working enter key on textarea +- 🐞 Fixed bug with not working pages +- 🐞 Fixed bug with wrong links on notification emails +- 🐞 Fixed bug with wrong links on tabs +- 💅 Improved button display (compact style) +- 💅 Improved display for RTL languages +- 💅 Listing viewer now goes zoom-in by default +- 💅 Removed listing viewer keyboard shortcuts reference +- 🦄 Added customizable semantics for content +- 🛍️ Added custom call to action buttons for albums diff --git a/.vscode/settings.json b/.vscode/settings.json index c1ce077..916029f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,4 +9,4 @@ "finishStatusMessage": "${fileBasename} OK" }, ] -} \ No newline at end of file +} diff --git a/app/composer.lock b/app/composer.lock index bbc1427..fdf4c7e 100644 --- a/app/composer.lock +++ b/app/composer.lock @@ -174,16 +174,16 @@ }, { "name": "amphp/parallel", - "version": "v1.4.1", + "version": "v1.4.2", "source": { "type": "git", "url": "https://github.com/amphp/parallel.git", - "reference": "fbc128383c1ffb3823866f71b88d8c4722a25ce9" + "reference": "75853e1623efa5aa5e65e986ec9a97db573a5267" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/parallel/zipball/fbc128383c1ffb3823866f71b88d8c4722a25ce9", - "reference": "fbc128383c1ffb3823866f71b88d8c4722a25ce9", + "url": "https://api.github.com/repos/amphp/parallel/zipball/75853e1623efa5aa5e65e986ec9a97db573a5267", + "reference": "75853e1623efa5aa5e65e986ec9a97db573a5267", "shasum": "" }, "require": { @@ -236,7 +236,7 @@ ], "support": { "issues": "https://github.com/amphp/parallel/issues", - "source": "https://github.com/amphp/parallel/tree/v1.4.1" + "source": "https://github.com/amphp/parallel/tree/v1.4.2" }, "funding": [ { @@ -244,33 +244,34 @@ "type": "github" } ], - "time": "2021-10-25T19:16:02+00:00" + "time": "2022-12-30T00:21:42+00:00" }, { "name": "amphp/parser", - "version": "v1.0.0", + "version": "v1.1.0", "source": { "type": "git", "url": "https://github.com/amphp/parser.git", - "reference": "f83e68f03d5b8e8e0365b8792985a7f341c57ae1" + "reference": "ff1de4144726c5dad5fab97f66692ebe8de3e151" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/parser/zipball/f83e68f03d5b8e8e0365b8792985a7f341c57ae1", - "reference": "f83e68f03d5b8e8e0365b8792985a7f341c57ae1", + "url": "https://api.github.com/repos/amphp/parser/zipball/ff1de4144726c5dad5fab97f66692ebe8de3e151", + "reference": "ff1de4144726c5dad5fab97f66692ebe8de3e151", "shasum": "" }, "require": { - "php": ">=7" + "php": ">=7.4" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^2.3", - "phpunit/phpunit": "^6" + "amphp/php-cs-fixer-config": "^2", + "phpunit/phpunit": "^9", + "psalm/phar": "^5.4" }, "type": "library", "autoload": { "psr-4": { - "Amp\\Parser\\": "lib" + "Amp\\Parser\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -278,13 +279,13 @@ "MIT" ], "authors": [ - { - "name": "Niklas Keller", - "email": "me@kelunik.com" - }, { "name": "Aaron Piotrowski", "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], "description": "A generator parser to make streaming parsers simple.", @@ -297,9 +298,15 @@ ], "support": { "issues": "https://github.com/amphp/parser/issues", - "source": "https://github.com/amphp/parser/tree/is-valid" + "source": "https://github.com/amphp/parser/tree/v1.1.0" }, - "time": "2017-06-06T05:29:10+00:00" + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2022-12-30T18:08:47+00:00" }, { "name": "amphp/process", @@ -721,16 +728,16 @@ }, { "name": "chevere/trace", - "version": "0.6.0", + "version": "0.6.1", "source": { "type": "git", "url": "https://github.com/chevere/trace.git", - "reference": "7596a6eeee4a9c20af85dd09b572915d7dba4c99" + "reference": "75f5bd73653ac62098db4be86ee9d00ebf873455" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/chevere/trace/zipball/7596a6eeee4a9c20af85dd09b572915d7dba4c99", - "reference": "7596a6eeee4a9c20af85dd09b572915d7dba4c99", + "url": "https://api.github.com/repos/chevere/trace/zipball/75f5bd73653ac62098db4be86ee9d00ebf873455", + "reference": "75f5bd73653ac62098db4be86ee9d00ebf873455", "shasum": "" }, "require": { @@ -738,8 +745,9 @@ "chevere/var-dump": "^0.6" }, "require-dev": { + "phpstan/phpstan": "^1.6", "phpunit/phpunit": "^9.5", - "symplify/easy-coding-standard": "^10.3" + "symplify/easy-coding-standard": "^11.1" }, "type": "library", "autoload": { @@ -762,9 +770,9 @@ "homepage": "https://chevere.org", "support": { "issues": "https://github.com/chevere/trace/issues", - "source": "https://github.com/chevere/trace/tree/0.6.0" + "source": "https://github.com/chevere/trace/tree/0.6.1" }, - "time": "2022-08-07T15:56:48+00:00" + "time": "2022-12-06T16:17:35+00:00" }, { "name": "chevere/var-dump", @@ -827,12 +835,12 @@ "source": { "type": "git", "url": "https://github.com/chevere/workflow.git", - "reference": "5d245c5d60f2de74f48aa6543f2a420a41257e33" + "reference": "30ce0218359c9a7fe580ddf3d30cbf395fc1b44e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/chevere/workflow/zipball/5d245c5d60f2de74f48aa6543f2a420a41257e33", - "reference": "5d245c5d60f2de74f48aa6543f2a420a41257e33", + "url": "https://api.github.com/repos/chevere/workflow/zipball/30ce0218359c9a7fe580ddf3d30cbf395fc1b44e", + "reference": "30ce0218359c9a7fe580ddf3d30cbf395fc1b44e", "shasum": "" }, "require": { @@ -871,9 +879,9 @@ "homepage": "https://chevere.org", "support": { "issues": "https://github.com/chevere/workflow/issues", - "source": "https://github.com/chevere/workflow/tree/0.6.0" + "source": "https://github.com/chevere/workflow/tree/0.6" }, - "time": "2022-11-27T12:09:00+00:00" + "time": "2022-12-04T00:40:45+00:00" }, { "name": "chevere/xr", @@ -1320,16 +1328,16 @@ }, { "name": "firebase/php-jwt", - "version": "v6.3.1", + "version": "v6.3.2", "source": { "type": "git", "url": "https://github.com/firebase/php-jwt.git", - "reference": "ddfaddcb520488b42bca3a75e17e9dd53c3667da" + "reference": "ea7dda77098b96e666c5ef382452f94841e439cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/firebase/php-jwt/zipball/ddfaddcb520488b42bca3a75e17e9dd53c3667da", - "reference": "ddfaddcb520488b42bca3a75e17e9dd53c3667da", + "url": "https://api.github.com/repos/firebase/php-jwt/zipball/ea7dda77098b96e666c5ef382452f94841e439cd", + "reference": "ea7dda77098b96e666c5ef382452f94841e439cd", "shasum": "" }, "require": { @@ -1376,9 +1384,9 @@ ], "support": { "issues": "https://github.com/firebase/php-jwt/issues", - "source": "https://github.com/firebase/php-jwt/tree/v6.3.1" + "source": "https://github.com/firebase/php-jwt/tree/v6.3.2" }, - "time": "2022-11-01T21:20:08+00:00" + "time": "2022-12-19T17:10:46+00:00" }, { "name": "guzzlehttp/psr7", @@ -1749,16 +1757,16 @@ }, { "name": "laminas/laminas-diactoros", - "version": "2.22.0", + "version": "2.24.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-diactoros.git", - "reference": "df8c7f9e11d854269f4aa7c06ffa38caa42e4405" + "reference": "6028af6c3b5ced4d063a680d2483cce67578b902" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/df8c7f9e11d854269f4aa7c06ffa38caa42e4405", - "reference": "df8c7f9e11d854269f4aa7c06ffa38caa42e4405", + "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/6028af6c3b5ced4d063a680d2483cce67578b902", + "reference": "6028af6c3b5ced4d063a680d2483cce67578b902", "shasum": "" }, "require": { @@ -1780,10 +1788,10 @@ "ext-libxml": "*", "http-interop/http-factory-tests": "^0.9.0", "laminas/laminas-coding-standard": "^2.4.0", - "php-http/psr7-integration-tests": "^1.1.1", - "phpunit/phpunit": "^9.5.26", - "psalm/plugin-phpunit": "^0.18.0", - "vimeo/psalm": "^4.29.0" + "php-http/psr7-integration-tests": "^1.2", + "phpunit/phpunit": "^9.5.27", + "psalm/plugin-phpunit": "^0.18.4", + "vimeo/psalm": "^5.4" }, "type": "library", "extra": { @@ -1842,7 +1850,7 @@ "type": "community_bridge" } ], - "time": "2022-11-22T05:54:54+00:00" + "time": "2022-12-20T12:22:40+00:00" }, { "name": "lychee-org/php-exif", @@ -2318,21 +2326,21 @@ }, { "name": "php-ffmpeg/php-ffmpeg", - "version": "v1.0.1", + "version": "v1.1.0", "source": { "type": "git", "url": "https://github.com/PHP-FFMpeg/PHP-FFMpeg.git", - "reference": "bda300b69acecf791d2934cd5ed43a8ba24febf6" + "reference": "eace6f174ff6d206ba648483ebe59760f7f6a0e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-FFMpeg/PHP-FFMpeg/zipball/bda300b69acecf791d2934cd5ed43a8ba24febf6", - "reference": "bda300b69acecf791d2934cd5ed43a8ba24febf6", + "url": "https://api.github.com/repos/PHP-FFMpeg/PHP-FFMpeg/zipball/eace6f174ff6d206ba648483ebe59760f7f6a0e1", + "reference": "eace6f174ff6d206ba648483ebe59760f7f6a0e1", "shasum": "" }, "require": { "evenement/evenement": "^3.0", - "php": "^8.0 || ^8.1", + "php": "^8.0 || ^8.1 || ^8.2", "psr/log": "^1.0 || ^2.0 || ^3.0", "spatie/temporary-directory": "^2.0", "symfony/cache": "^5.4 || ^6.0", @@ -2401,22 +2409,22 @@ ], "support": { "issues": "https://github.com/PHP-FFMpeg/PHP-FFMpeg/issues", - "source": "https://github.com/PHP-FFMpeg/PHP-FFMpeg/tree/v1.0.1" + "source": "https://github.com/PHP-FFMpeg/PHP-FFMpeg/tree/v1.1.0" }, - "time": "2022-02-22T15:54:06+00:00" + "time": "2022-12-09T13:57:05+00:00" }, { "name": "phpmailer/phpmailer", - "version": "v6.6.5", + "version": "v6.7.1", "source": { "type": "git", "url": "https://github.com/PHPMailer/PHPMailer.git", - "reference": "8b6386d7417526d1ea4da9edb70b8352f7543627" + "reference": "49cd7ea3d2563f028d7811f06864a53b1f15ff55" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/8b6386d7417526d1ea4da9edb70b8352f7543627", - "reference": "8b6386d7417526d1ea4da9edb70b8352f7543627", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/49cd7ea3d2563f028d7811f06864a53b1f15ff55", + "reference": "49cd7ea3d2563f028d7811f06864a53b1f15ff55", "shasum": "" }, "require": { @@ -2426,17 +2434,19 @@ "php": ">=5.5.0" }, "require-dev": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", - "doctrine/annotations": "^1.2", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.2", + "doctrine/annotations": "^1.2.6 || ^1.13.3", "php-parallel-lint/php-console-highlighter": "^1.0.0", "php-parallel-lint/php-parallel-lint": "^1.3.2", "phpcompatibility/php-compatibility": "^9.3.5", "roave/security-advisories": "dev-latest", - "squizlabs/php_codesniffer": "^3.6.2", - "yoast/phpunit-polyfills": "^1.0.0" + "squizlabs/php_codesniffer": "^3.7.1", + "yoast/phpunit-polyfills": "^1.0.4" }, "suggest": { "ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses", + "ext-openssl": "Needed for secure SMTP sending and DKIM signing", + "greew/oauth2-azure-provider": "Needed for Microsoft Azure XOAUTH2 authentication", "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication", "league/oauth2-google": "Needed for Google XOAUTH2 authentication", "psr/log": "For optional PSR-3 debug logging", @@ -2473,7 +2483,7 @@ "description": "PHPMailer is a full-featured email creation and transfer class for PHP", "support": { "issues": "https://github.com/PHPMailer/PHPMailer/issues", - "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.6.5" + "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.7.1" }, "funding": [ { @@ -2481,7 +2491,7 @@ "type": "github" } ], - "time": "2022-10-07T12:23:10+00:00" + "time": "2022-12-08T13:30:06+00:00" }, { "name": "phpseclib/bcmath_compat", @@ -2547,16 +2557,16 @@ }, { "name": "phpseclib/phpseclib", - "version": "3.0.17", + "version": "3.0.18", "source": { "type": "git", "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "dbc2307d5c69aeb22db136c52e91130d7f2ca761" + "reference": "f28693d38ba21bb0d9f0c411ee5dae2b178201da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/dbc2307d5c69aeb22db136c52e91130d7f2ca761", - "reference": "dbc2307d5c69aeb22db136c52e91130d7f2ca761", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/f28693d38ba21bb0d9f0c411ee5dae2b178201da", + "reference": "f28693d38ba21bb0d9f0c411ee5dae2b178201da", "shasum": "" }, "require": { @@ -2637,7 +2647,7 @@ ], "support": { "issues": "https://github.com/phpseclib/phpseclib/issues", - "source": "https://github.com/phpseclib/phpseclib/tree/3.0.17" + "source": "https://github.com/phpseclib/phpseclib/tree/3.0.18" }, "funding": [ { @@ -2653,7 +2663,7 @@ "type": "tidelift" } ], - "time": "2022-10-24T10:51:50+00:00" + "time": "2022-12-17T18:26:50+00:00" }, { "name": "pragmarx/google2fa", @@ -3080,42 +3090,52 @@ }, { "name": "ramsey/collection", - "version": "1.2.2", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/ramsey/collection.git", - "reference": "cccc74ee5e328031b15640b51056ee8d3bb66c0a" + "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/collection/zipball/cccc74ee5e328031b15640b51056ee8d3bb66c0a", - "reference": "cccc74ee5e328031b15640b51056ee8d3bb66c0a", + "url": "https://api.github.com/repos/ramsey/collection/zipball/a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", + "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", "shasum": "" }, "require": { - "php": "^7.3 || ^8", - "symfony/polyfill-php81": "^1.23" + "php": "^8.1" }, "require-dev": { - "captainhook/captainhook": "^5.3", - "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", - "ergebnis/composer-normalize": "^2.6", - "fakerphp/faker": "^1.5", - "hamcrest/hamcrest-php": "^2", - "jangregor/phpstan-prophecy": "^0.8", - "mockery/mockery": "^1.3", + "captainhook/plugin-composer": "^5.3", + "ergebnis/composer-normalize": "^2.28.3", + "fakerphp/faker": "^1.21", + "hamcrest/hamcrest-php": "^2.0", + "jangregor/phpstan-prophecy": "^1.0", + "mockery/mockery": "^1.5", + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.3", + "phpcsstandards/phpcsutils": "^1.0.0-rc1", "phpspec/prophecy-phpunit": "^2.0", - "phpstan/extension-installer": "^1", - "phpstan/phpstan": "^0.12.32", - "phpstan/phpstan-mockery": "^0.12.5", - "phpstan/phpstan-phpunit": "^0.12.11", - "phpunit/phpunit": "^8.5 || ^9", - "psy/psysh": "^0.10.4", - "slevomat/coding-standard": "^6.3", - "squizlabs/php_codesniffer": "^3.5", - "vimeo/psalm": "^4.4" + "phpstan/extension-installer": "^1.2", + "phpstan/phpstan": "^1.9", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^9.5", + "psalm/plugin-mockery": "^1.1", + "psalm/plugin-phpunit": "^0.18.4", + "ramsey/coding-standard": "^2.0.3", + "ramsey/conventional-commits": "^1.3", + "vimeo/psalm": "^5.4" }, "type": "library", + "extra": { + "captainhook": { + "force-install": true + }, + "ramsey/conventional-commits": { + "configFile": "conventional-commits.json" + } + }, "autoload": { "psr-4": { "Ramsey\\Collection\\": "src/" @@ -3143,7 +3163,7 @@ ], "support": { "issues": "https://github.com/ramsey/collection/issues", - "source": "https://github.com/ramsey/collection/tree/1.2.2" + "source": "https://github.com/ramsey/collection/tree/2.0.0" }, "funding": [ { @@ -3155,27 +3175,27 @@ "type": "tidelift" } ], - "time": "2021-10-10T03:01:02+00:00" + "time": "2022-12-31T21:50:55+00:00" }, { "name": "ramsey/uuid", - "version": "4.6.0", + "version": "4.7.1", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "ad63bc700e7d021039e30ce464eba384c4a1d40f" + "reference": "a1acf96007170234a8399586a6e2ab8feba109d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/ad63bc700e7d021039e30ce464eba384c4a1d40f", - "reference": "ad63bc700e7d021039e30ce464eba384c4a1d40f", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/a1acf96007170234a8399586a6e2ab8feba109d1", + "reference": "a1acf96007170234a8399586a6e2ab8feba109d1", "shasum": "" }, "require": { "brick/math": "^0.8.8 || ^0.9 || ^0.10", "ext-json": "*", "php": "^8.0", - "ramsey/collection": "^1.0" + "ramsey/collection": "^1.2 || ^2.0" }, "replace": { "rhumsaa/uuid": "self.version" @@ -3235,7 +3255,7 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.6.0" + "source": "https://github.com/ramsey/uuid/tree/4.7.1" }, "funding": [ { @@ -3247,20 +3267,20 @@ "type": "tidelift" } ], - "time": "2022-11-05T23:03:38+00:00" + "time": "2022-12-31T22:20:34+00:00" }, { "name": "react/cache", - "version": "v1.1.1", + "version": "v1.2.0", "source": { "type": "git", "url": "https://github.com/reactphp/cache.git", - "reference": "4bf736a2cccec7298bdf745db77585966fc2ca7e" + "reference": "d47c472b64aa5608225f47965a484b75c7817d5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/cache/zipball/4bf736a2cccec7298bdf745db77585966fc2ca7e", - "reference": "4bf736a2cccec7298bdf745db77585966fc2ca7e", + "url": "https://api.github.com/repos/reactphp/cache/zipball/d47c472b64aa5608225f47965a484b75c7817d5b", + "reference": "d47c472b64aa5608225f47965a484b75c7817d5b", "shasum": "" }, "require": { @@ -3268,7 +3288,7 @@ "react/promise": "^3.0 || ^2.0 || ^1.1" }, "require-dev": { - "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35" + "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35" }, "type": "library", "autoload": { @@ -3311,19 +3331,15 @@ ], "support": { "issues": "https://github.com/reactphp/cache/issues", - "source": "https://github.com/reactphp/cache/tree/v1.1.1" + "source": "https://github.com/reactphp/cache/tree/v1.2.0" }, "funding": [ { - "url": "https://github.com/WyriHaximus", - "type": "github" - }, - { - "url": "https://github.com/clue", - "type": "github" + "url": "https://opencollective.com/reactphp", + "type": "open_collective" } ], - "time": "2021-02-02T06:47:52+00:00" + "time": "2022-11-30T15:59:55+00:00" }, { "name": "react/dns", @@ -4222,16 +4238,16 @@ }, { "name": "symfony/cache", - "version": "v5.4.15", + "version": "v5.4.18", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "60e87188abbacd29ccde44d69c5392a33e888e98" + "reference": "a33fa08a3f37bb44b90e60b9028796d6b811f9ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/60e87188abbacd29ccde44d69c5392a33e888e98", - "reference": "60e87188abbacd29ccde44d69c5392a33e888e98", + "url": "https://api.github.com/repos/symfony/cache/zipball/a33fa08a3f37bb44b90e60b9028796d6b811f9ef", + "reference": "a33fa08a3f37bb44b90e60b9028796d6b811f9ef", "shasum": "" }, "require": { @@ -4299,7 +4315,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v5.4.15" + "source": "https://github.com/symfony/cache/tree/v5.4.18" }, "funding": [ { @@ -4315,7 +4331,7 @@ "type": "tidelift" } ], - "time": "2022-10-27T07:55:40+00:00" + "time": "2022-12-29T16:06:09+00:00" }, { "name": "symfony/cache-contracts", @@ -4398,16 +4414,16 @@ }, { "name": "symfony/deprecation-contracts", - "version": "v3.1.1", + "version": "v3.2.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918" + "reference": "1ee04c65529dea5d8744774d474e7cbd2f1206d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", - "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/1ee04c65529dea5d8744774d474e7cbd2f1206d3", + "reference": "1ee04c65529dea5d8744774d474e7cbd2f1206d3", "shasum": "" }, "require": { @@ -4416,7 +4432,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.1-dev" + "dev-main": "3.3-dev" }, "thanks": { "name": "symfony/contracts", @@ -4445,7 +4461,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.1.1" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.2.0" }, "funding": [ { @@ -4461,7 +4477,7 @@ "type": "tidelift" } ], - "time": "2022-02-25T11:15:52+00:00" + "time": "2022-11-25T10:21:52+00:00" }, { "name": "symfony/polyfill-ctype", @@ -4790,97 +4806,18 @@ ], "time": "2022-11-03T14:55:06+00:00" }, - { - "name": "symfony/polyfill-php81", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a", - "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php81\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-11-03T14:55:06+00:00" - }, { "name": "symfony/process", - "version": "v6.1.3", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "a6506e99cfad7059b1ab5cab395854a0a0c21292" + "reference": "ba6e55359f8f755fe996c58a81e00eaa67a35877" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/a6506e99cfad7059b1ab5cab395854a0a0c21292", - "reference": "a6506e99cfad7059b1ab5cab395854a0a0c21292", + "url": "https://api.github.com/repos/symfony/process/zipball/ba6e55359f8f755fe996c58a81e00eaa67a35877", + "reference": "ba6e55359f8f755fe996c58a81e00eaa67a35877", "shasum": "" }, "require": { @@ -4912,7 +4849,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.1.3" + "source": "https://github.com/symfony/process/tree/v6.2.0" }, "funding": [ { @@ -4928,20 +4865,20 @@ "type": "tidelift" } ], - "time": "2022-06-27T17:24:16+00:00" + "time": "2022-11-02T09:08:04+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.1.1", + "version": "v3.2.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "925e713fe8fcacf6bc05e936edd8dd5441a21239" + "reference": "aac98028c69df04ee77eb69b96b86ee51fbf4b75" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/925e713fe8fcacf6bc05e936edd8dd5441a21239", - "reference": "925e713fe8fcacf6bc05e936edd8dd5441a21239", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/aac98028c69df04ee77eb69b96b86ee51fbf4b75", + "reference": "aac98028c69df04ee77eb69b96b86ee51fbf4b75", "shasum": "" }, "require": { @@ -4957,7 +4894,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.1-dev" + "dev-main": "3.3-dev" }, "thanks": { "name": "symfony/contracts", @@ -4997,7 +4934,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.1.1" + "source": "https://github.com/symfony/service-contracts/tree/v3.2.0" }, "funding": [ { @@ -5013,20 +4950,20 @@ "type": "tidelift" } ], - "time": "2022-05-30T19:18:58+00:00" + "time": "2022-11-25T10:21:52+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.1.3", + "version": "v6.2.3", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "b49350f45cebbba6e5286485264b912f2bcfc9ef" + "reference": "d055d12b20b42e407e607460e7552a1fe6d27f08" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/b49350f45cebbba6e5286485264b912f2bcfc9ef", - "reference": "b49350f45cebbba6e5286485264b912f2bcfc9ef", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/d055d12b20b42e407e607460e7552a1fe6d27f08", + "reference": "d055d12b20b42e407e607460e7552a1fe6d27f08", "shasum": "" }, "require": { @@ -5066,10 +5003,12 @@ "export", "hydrate", "instantiate", + "lazy loading", + "proxy", "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.1.3" + "source": "https://github.com/symfony/var-exporter/tree/v6.2.3" }, "funding": [ { @@ -5085,7 +5024,7 @@ "type": "tidelift" } ], - "time": "2022-07-04T16:01:56+00:00" + "time": "2022-12-22T17:55:15+00:00" }, { "name": "thecodingmachine/safe", @@ -5230,30 +5169,30 @@ "packages-dev": [ { "name": "doctrine/instantiator", - "version": "1.4.1", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", - "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^9", + "doctrine/coding-standard": "^9 || ^11", "ext-pdo": "*", "ext-phar": "*", "phpbench/phpbench": "^0.16 || ^1", "phpstan/phpstan": "^1.4", "phpstan/phpstan-phpunit": "^1", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.22" + "vimeo/psalm": "^4.30 || ^5.4" }, "type": "library", "autoload": { @@ -5280,7 +5219,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.4.1" + "source": "https://github.com/doctrine/instantiator/tree/1.5.0" }, "funding": [ { @@ -5296,7 +5235,7 @@ "type": "tidelift" } ], - "time": "2022-03-03T08:28:38+00:00" + "time": "2022-12-30T00:15:36+00:00" }, { "name": "nikic/php-parser", @@ -5467,16 +5406,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.9.2", + "version": "1.9.6", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "d6fdf01c53978b6429f1393ba4afeca39cc68afa" + "reference": "ef38a25950e5d0e6c95eedf49d8a784272f8dc5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/d6fdf01c53978b6429f1393ba4afeca39cc68afa", - "reference": "d6fdf01c53978b6429f1393ba4afeca39cc68afa", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/ef38a25950e5d0e6c95eedf49d8a784272f8dc5e", + "reference": "ef38a25950e5d0e6c95eedf49d8a784272f8dc5e", "shasum": "" }, "require": { @@ -5506,7 +5445,7 @@ ], "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.9.2" + "source": "https://github.com/phpstan/phpstan/tree/1.9.6" }, "funding": [ { @@ -5522,20 +5461,20 @@ "type": "tidelift" } ], - "time": "2022-11-10T09:56:11+00:00" + "time": "2023-01-03T13:40:32+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "9.2.19", + "version": "9.2.23", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "c77b56b63e3d2031bd8997fcec43c1925ae46559" + "reference": "9f1f0f9a2fbb680b26d1cf9b61b6eac43a6e4e9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c77b56b63e3d2031bd8997fcec43c1925ae46559", - "reference": "c77b56b63e3d2031bd8997fcec43c1925ae46559", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/9f1f0f9a2fbb680b26d1cf9b61b6eac43a6e4e9c", + "reference": "9f1f0f9a2fbb680b26d1cf9b61b6eac43a6e4e9c", "shasum": "" }, "require": { @@ -5591,7 +5530,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.19" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.23" }, "funding": [ { @@ -5599,7 +5538,7 @@ "type": "github" } ], - "time": "2022-11-18T07:47:47+00:00" + "time": "2022-12-28T12:41:10+00:00" }, { "name": "phpunit/php-file-iterator", @@ -5844,16 +5783,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.26", + "version": "9.5.27", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2" + "reference": "a2bc7ffdca99f92d959b3f2270529334030bba38" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/851867efcbb6a1b992ec515c71cdcf20d895e9d2", - "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a2bc7ffdca99f92d959b3f2270529334030bba38", + "reference": "a2bc7ffdca99f92d959b3f2270529334030bba38", "shasum": "" }, "require": { @@ -5926,7 +5865,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.26" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.27" }, "funding": [ { @@ -5942,20 +5881,20 @@ "type": "tidelift" } ], - "time": "2022-10-28T06:00:21+00:00" + "time": "2022-12-09T07:31:23+00:00" }, { "name": "psy/psysh", - "version": "v0.11.9", + "version": "v0.11.10", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "1acec99d6684a54ff92f8b548a4e41b566963778" + "reference": "e9eadffbed9c9deb5426fd107faae0452bf20a36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/1acec99d6684a54ff92f8b548a4e41b566963778", - "reference": "1acec99d6684a54ff92f8b548a4e41b566963778", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/e9eadffbed9c9deb5426fd107faae0452bf20a36", + "reference": "e9eadffbed9c9deb5426fd107faae0452bf20a36", "shasum": "" }, "require": { @@ -6016,9 +5955,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.11.9" + "source": "https://github.com/bobthecow/psysh/tree/v0.11.10" }, - "time": "2022-11-06T15:29:46+00:00" + "time": "2022-12-23T17:47:18+00:00" }, { "name": "rector/rector", @@ -7046,16 +6985,16 @@ }, { "name": "symfony/console", - "version": "v6.1.8", + "version": "v6.2.3", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "a71863ea74f444d93c768deb3e314e1f750cf20d" + "reference": "0f579613e771dba2dbb8211c382342a641f5da06" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/a71863ea74f444d93c768deb3e314e1f750cf20d", - "reference": "a71863ea74f444d93c768deb3e314e1f750cf20d", + "url": "https://api.github.com/repos/symfony/console/zipball/0f579613e771dba2dbb8211c382342a641f5da06", + "reference": "0f579613e771dba2dbb8211c382342a641f5da06", "shasum": "" }, "require": { @@ -7122,7 +7061,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.1.8" + "source": "https://github.com/symfony/console/tree/v6.2.3" }, "funding": [ { @@ -7138,7 +7077,7 @@ "type": "tidelift" } ], - "time": "2022-11-25T18:59:16+00:00" + "time": "2022-12-28T14:26:22+00:00" }, { "name": "symfony/polyfill-intl-grapheme", @@ -7307,16 +7246,16 @@ }, { "name": "symfony/string", - "version": "v6.1.7", + "version": "v6.2.2", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "823f143370880efcbdfa2dbca946b3358c4707e5" + "reference": "863219fd713fa41cbcd285a79723f94672faff4d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/823f143370880efcbdfa2dbca946b3358c4707e5", - "reference": "823f143370880efcbdfa2dbca946b3358c4707e5", + "url": "https://api.github.com/repos/symfony/string/zipball/863219fd713fa41cbcd285a79723f94672faff4d", + "reference": "863219fd713fa41cbcd285a79723f94672faff4d", "shasum": "" }, "require": { @@ -7332,6 +7271,7 @@ "require-dev": { "symfony/error-handler": "^5.4|^6.0", "symfony/http-client": "^5.4|^6.0", + "symfony/intl": "^6.2", "symfony/translation-contracts": "^2.0|^3.0", "symfony/var-exporter": "^5.4|^6.0" }, @@ -7372,7 +7312,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.1.7" + "source": "https://github.com/symfony/string/tree/v6.2.2" }, "funding": [ { @@ -7388,20 +7328,20 @@ "type": "tidelift" } ], - "time": "2022-10-10T09:34:31+00:00" + "time": "2022-12-14T16:11:27+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.1.6", + "version": "v6.2.3", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "0f0adde127f24548e23cbde83bcaeadc491c551f" + "reference": "fdbadd4803bc3c96ef89238c9c9e2ebe424ec2e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/0f0adde127f24548e23cbde83bcaeadc491c551f", - "reference": "0f0adde127f24548e23cbde83bcaeadc491c551f", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/fdbadd4803bc3c96ef89238c9c9e2ebe424ec2e0", + "reference": "fdbadd4803bc3c96ef89238c9c9e2ebe424ec2e0", "shasum": "" }, "require": { @@ -7460,7 +7400,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.1.6" + "source": "https://github.com/symfony/var-dumper/tree/v6.2.3" }, "funding": [ { @@ -7476,7 +7416,7 @@ "type": "tidelift" } ], - "time": "2022-10-07T08:04:03+00:00" + "time": "2022-12-22T17:55:15+00:00" }, { "name": "symplify/easy-coding-standard", diff --git a/app/legacy/install/installer.php b/app/legacy/install/installer.php index c3bffbf..59389de 100644 --- a/app/legacy/install/installer.php +++ b/app/legacy/install/installer.php @@ -576,6 +576,18 @@ $settings_updates = [ SPAM, ], '4.0.5' => null, + '4.0.6' => [ + 'semantics_album' => '', + 'semantics_albums' => '', + 'semantics_image' => '', + 'semantics_images' => '', + 'semantics_user' => '', + 'semantics_users' => '', + 'semantics_explore' => '', + 'semantics_discovery' => '', + 'semantics_category' => '', + 'semantics_categories' => '', + ], ]; $cheveretoFreeMap = [ '1.0.0' => '3.8.3', @@ -1793,6 +1805,20 @@ ALTER TABLE `%table_prefix%users` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8m WHERE setting_name = 'auto_delete_guest_uploads'; SQL, ], + '4.0.6' => [ + 'albums' => [ + 'album_cta_enable' => [ + 'op' => 'ADD', + 'type' => 'tinyint(1)', + 'prop' => "NOT NULL DEFAULT '0'", + ], + 'album_cta' => [ + 'op' => 'ADD', + 'type' => 'longtext', + 'prop' => null, + ], + ] + ], ]; $sql_update = []; if (!$maintenance) { diff --git a/app/legacy/load/app.php b/app/legacy/load/app.php index 7f2cd6c..a2348a1 100644 --- a/app/legacy/load/app.php +++ b/app/legacy/load/app.php @@ -9,5 +9,5 @@ * file that was distributed with this source code. */ -const APP_VERSION = '4.0.5'; +const APP_VERSION = '4.0.6'; const APP_VERSION_AKA = 'macanudo'; diff --git a/app/legacy/load/web.php b/app/legacy/load/web.php index e575f3d..c7e2940 100644 --- a/app/legacy/load/web.php +++ b/app/legacy/load/web.php @@ -193,7 +193,15 @@ $hook_before = function (Handler $handler) { } $handler::setVar('langLinks', $langLinks); if ($handler::cond('show_consent_screen')) { - $handler::setVar('consent_accept_url', get_current_url() . (parse_url(get_current_url(), PHP_URL_QUERY) ? '&' : '/?') . 'agree-consent'); + $hasQs = parse_url(get_current_url(), PHP_URL_QUERY) !== null; + $consent_accept_url = get_current_url() + . ($hasQs ? '&' : '/?') + . 'agree-consent'; + $consent_accept_url = '/' . ltrim($consent_accept_url, '/'); + $handler::setVar( + 'consent_accept_url', + $consent_accept_url + ); } if (!Login::getUser()) { if (getSetting('captcha') && $failed_access_requests['day'] >= getSetting('captcha_threshold')) { diff --git a/app/legacy/routes/account.php b/app/legacy/routes/account.php index 5dcb08d..4ed9f90 100644 --- a/app/legacy/routes/account.php +++ b/app/legacy/routes/account.php @@ -346,7 +346,6 @@ return function (Handler $handler) { global $theme_mail; $theme_mail = [ 'user' => $logged_user, - 'link' => $logged_user['url'], ]; $mail['subject'] = _s('Welcome to %s', getSettings()['website_name']); $mail['message'] = get_email_body_str('mails/account-welcome'); diff --git a/app/legacy/routes/album.php b/app/legacy/routes/album.php index 85bd1bb..acf8352 100644 --- a/app/legacy/routes/album.php +++ b/app/legacy/routes/album.php @@ -238,7 +238,7 @@ return function (Handler $handler) { ], $getParams); foreach ($tabsSubAlbum as $array) { if ($array['label'] == 'AZ') { - $array['label'] = _s('Sub albums'); + $array['label'] = _s('Sub %s', _s('albums')); $array['id'] = 'tab-sub'; $array['url'] = $album['url'] . '/sub'; $tabs[] = $array; diff --git a/app/legacy/routes/dashboard.php b/app/legacy/routes/dashboard.php index 10bcb8d..308ac9c 100644 --- a/app/legacy/routes/dashboard.php +++ b/app/legacy/routes/dashboard.php @@ -130,6 +130,7 @@ return function (Handler $handler) { 'content' => _s('Content'), 'listings' => _s('Listings'), 'image-upload' => _s('Image upload'), + 'semantics' => _s('Semantics'), 'categories' => _s('Categories'), 'theme' => _s('Theme'), 'system' => _s('System'), @@ -167,6 +168,7 @@ return function (Handler $handler) { 'guest-api' => 'fas fa-project-diagram', 'homepage' => 'fas fa-home', 'image-upload' => 'fas fa-cloud-upload-alt', + 'semantics' => 'fas fa-sign-hanging', 'ip-bans' => 'fas fa-ban', 'languages' => 'fas fa-language', 'listings' => 'fas fa-th-list', diff --git a/app/legacy/routes/json.php b/app/legacy/routes/json.php index 9b88810..852b2a5 100644 --- a/app/legacy/routes/json.php +++ b/app/legacy/routes/json.php @@ -411,6 +411,9 @@ return function (Handler $handler) { 'storage' => ['name', 'bucket', 'region', 'url', 'server', 'capacity', 'is_https', 'is_active', 'api_id', 'key', 'secret', 'account_id', 'account_name'], 'ip_ban' => ['ip', 'expires', 'message'], ]; + if (Handler::cond('content_manager')) { + array_push($allowed_to_edit['album'], 'cta_enable', 'cta'); + } $allowed_to_edit['images'] = $allowed_to_edit['image']; $allowed_to_edit['albums'] = $allowed_to_edit['album']; if ($editing['new_album']) { diff --git a/app/legacy/routes/search.php b/app/legacy/routes/search.php index 0d98120..9fefb0e 100644 --- a/app/legacy/routes/search.php +++ b/app/legacy/routes/search.php @@ -106,15 +106,15 @@ return function (Handler $handler) { $meta_description = ''; switch ($search->type) { case 'images': - $meta_description = _s('Image search results for %s'); + $meta_description = _s('%t search results for %s', ['%t' => _s('Image')]); break; case 'albums': - $meta_description = _s('Album search results for %s'); + $meta_description = _s('%t search results for %s', ['%t' => _s('Album')]); break; case 'users': - $meta_description = _s('User search results for %s'); + $meta_description = _s('%t search results for %s', ['%t' => _s('User')]); break; } diff --git a/app/legacy/routes/signup.php b/app/legacy/routes/signup.php index ce2ce7c..5e680a2 100644 --- a/app/legacy/routes/signup.php +++ b/app/legacy/routes/signup.php @@ -195,9 +195,7 @@ return function (Handler $handler) { ]; $mail['subject'] = _s('Confirmation required at %s', getSettings()['website_name']); $mail['message'] = get_email_body_str('mails/account-confirm'); - if (send_mail($POST['email'], $mail['subject'], $mail['message'])) { - $is_process_done = true; - } + send_mail($POST['email'], $mail['subject'], $mail['message']); } else { $user = User::getSingle($inserted_user, 'id'); $logged_user = Login::login($user['id']); @@ -207,9 +205,7 @@ return function (Handler $handler) { global $theme_mail; $theme_mail = [ 'user' => $logged_user, - 'link' => $logged_user['url'] ]; - $mail['subject'] = _s('Welcome to %s', getSetting('website_name')); $mail['message'] = get_email_body_str('mails/account-welcome'); send_mail($logged_user['email'], $mail['subject'], $mail['message']); diff --git a/app/legacy/routes/user.php b/app/legacy/routes/user.php index 92ecbed..46b52b6 100644 --- a/app/legacy/routes/user.php +++ b/app/legacy/routes/user.php @@ -104,11 +104,11 @@ return function (Handler $handler) { $user_routes = []; $user_views = [ 'images' => [ - 'title' => _s("Images by %s"), + 'title' => _s("%a by %s", ['%a' => _s('Images')]), 'title_short' => _s("Images"), ], 'albums' => [ - 'title' => _s("Albums by %s"), + 'title' => _s("%a by %s", ['%a' => _s('Albums')]), 'title_short' => _s("Albums"), ], 'search' => [ @@ -206,7 +206,7 @@ return function (Handler $handler) { if ($v['current']) { $current_view = $k; if ($current_view !== 'images') { - $base_user_url .= $k; + $base_user_url .= "/$k"; } } } @@ -245,14 +245,14 @@ return function (Handler $handler) { [ 'icon' => 'fas fa-image', 'type' => 'images', - 'label' => _n('Image', 'Images', 2), + 'label' => _s('Images'), 'id' => 'list-user-images', 'current' => $currentKey === 0, ], [ 'icon' => 'fas fa-images', 'type' => 'albums', - 'label' => _n('Album', 'Albums', 2), + 'label' => _s('Albums'), 'id' => 'list-user-albums', 'current' => $currentKey === 1, ] diff --git a/app/schemas/mysql-5/albums.sql b/app/schemas/mysql-5/albums.sql index 833a86c..93424cc 100644 --- a/app/schemas/mysql-5/albums.sql +++ b/app/schemas/mysql-5/albums.sql @@ -15,6 +15,8 @@ CREATE TABLE `%table_prefix%albums` ( `album_views` bigint(32) NOT NULL DEFAULT '0', `album_cover_id` bigint(32) DEFAULT NULL, `album_parent_id` bigint(32) DEFAULT NULL, + `album_cta_enable` tinyint(1) NOT NULL DEFAULT '0', + `album_cta` longtext, PRIMARY KEY (`album_id`), KEY `album_name` (`album_name`), KEY `album_user_id` (`album_user_id`), @@ -22,5 +24,8 @@ CREATE TABLE `%table_prefix%albums` ( KEY `album_privacy` (`album_privacy`), KEY `album_image_count` (`album_image_count`), KEY `album_creation_ip` (`album_creation_ip`), + KEY `album_likes` (`album_likes`), + KEY `album_views` (`album_views`), + KEY `album_parent_id` (`album_parent_id`), FULLTEXT KEY `searchindex` (`album_name`,`album_description`) ) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; diff --git a/app/schemas/mysql-8/albums.sql b/app/schemas/mysql-8/albums.sql index 0fa568e..eedf198 100644 --- a/app/schemas/mysql-8/albums.sql +++ b/app/schemas/mysql-8/albums.sql @@ -15,6 +15,8 @@ CREATE TABLE `%table_prefix%albums` ( `album_views` bigint(32) NOT NULL DEFAULT '0', `album_cover_id` bigint(32) DEFAULT NULL, `album_parent_id` bigint(32) DEFAULT NULL, + `album_cta_enable` tinyint(1) NOT NULL DEFAULT '0', + `album_cta` longtext, PRIMARY KEY (`album_id`), KEY `album_name` (`album_name`), KEY `album_user_id` (`album_user_id`), @@ -22,5 +24,8 @@ CREATE TABLE `%table_prefix%albums` ( KEY `album_privacy` (`album_privacy`), KEY `album_image_count` (`album_image_count`), KEY `album_creation_ip` (`album_creation_ip`), + KEY `album_likes` (`album_likes`), + KEY `album_views` (`album_views`), + KEY `album_parent_id` (`album_parent_id`), FULLTEXT KEY `searchindex` (`album_name`,`album_description`) -) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4; \ No newline at end of file +) ENGINE=%table_engine% DEFAULT CHARSET=utf8mb4; diff --git a/app/src/Legacy/Classes/Album.php b/app/src/Legacy/Classes/Album.php index 17ad19f..c50aa38 100644 --- a/app/src/Legacy/Classes/Album.php +++ b/app/src/Legacy/Classes/Album.php @@ -29,7 +29,9 @@ use function Chevereto\Legacy\send_mail; use function Chevereto\Legacy\time_elapsed_string; use function Chevereto\Vars\session; use function Chevereto\Vars\sessionVar; +use function Emoji\detect_emoji; use Exception; +use Throwable; class Album { @@ -180,7 +182,7 @@ class Album ); } if (!isset($values['name'])) { - $values['name'] = _s('Untitled') . ' ' . datetime(); + $values['name'] = _s('Unnamed') . ' ' . datetime(); } $privacyOpts = ['public', 'password', 'private_but_link']; if (Login::isLoggedUser()) { @@ -383,7 +385,7 @@ class Album ? encodeID((int) $album['id']) : null; if (!isset($album['name']) && isset($user['id'])) { - $album['name'] = _s("%s's images", $user['username']); + $album['name'] = User::getStreamName($user['username']); } if (!isset($album['id'])) { $album['url'] = $user !== [] ? User::getUrl($user['username']) : null; @@ -456,6 +458,38 @@ class Album $album['date_fixed_peer'] = Login::isLoggedUser() ? datetimegmt_convert_tz($album['date_gmt'], Login::getUser()['timezone']) : $album['date_gmt']; + $ctaArray = []; + if ($album['cta_enable'] ?? false) { + try { + $ctaArray = json_decode($album['cta'] ?? '', true) ?? []; + foreach ($ctaArray as &$v) { + $icon = $v['icon']; + $iconClass = ''; + $emoji = detect_emoji($v['icon']); + if ($emoji === []) { + $icon = ''; + if (preg_match('/\s/', $v['icon']) === 1) { + $iconClass = $v['icon']; + } else { + $iconClass = 'fas fa-' . $v['icon']; + } + } + $v['iconClass'] = $iconClass; + $v['emoji'] = $icon; + } + } catch (Throwable) { + $ctaArray = []; + } + } + $album['cta_array'] = $ctaArray; + $album['cta_array_json'] = json_encode($album['cta_array']); + $album['cta_html'] = ''; + foreach ($album['cta_array'] as $button) { + $album['cta_html'] .= <<{$button['emoji']}{$button['label']} + STRING; + } + $album['cta'] = $album['cta'] ?? '[]'; } public static function formatArray(array $dbrow, bool $safe = false): array diff --git a/app/src/Legacy/Classes/Image.php b/app/src/Legacy/Classes/Image.php index f8846d4..aabf5b0 100644 --- a/app/src/Legacy/Classes/Image.php +++ b/app/src/Legacy/Classes/Image.php @@ -718,7 +718,7 @@ class Image if ($do_dupe_check && self::isDuplicatedUpload($image_upload['uploaded']['fileinfo']['md5'])) { throw new Exception(_s('Duplicated upload'), 102); } - $image_ratio = $image_upload['uploaded']['fileinfo']['width'] / $image_upload['uploaded']['fileinfo']['height']; + $image_ratio = $image_upload['uploaded']['fileinfo']['ratio']; $must_resize = false; $image_max_size_cfg = [ 'width' => Settings::get('upload_max_image_width') ?: $image_upload['uploaded']['fileinfo']['width'], @@ -1044,7 +1044,7 @@ class Image $album = isset(session()[$session_handle]) ? Album::getSingle(decodeID(session()[$session_handle])) : null; - if (!empty($album) || !in_array($album['privacy'], $privacyTargets)) { + if (!empty($album) || !in_array($album['privacy'] ?? '', $privacyTargets)) { $inserted_album = Album::insert([ 'name' => _s('Private upload') . ' ' . datetime('Y-m-d'), 'user_id' => $user['id'], diff --git a/app/src/Legacy/Classes/L10n.php b/app/src/Legacy/Classes/L10n.php index 7f0d51a..8ebba24 100644 --- a/app/src/Legacy/Classes/L10n.php +++ b/app/src/Legacy/Classes/L10n.php @@ -55,6 +55,10 @@ class L10n protected static string $forced_locale = ''; + protected static array $override = []; + + protected static array $overridePlural = []; + public static function cacheFilesystemLocales(): array { $directory = new DirectoryIterator(PATH_APP_LANGUAGES); @@ -84,7 +88,7 @@ class L10n return []; } - return $file->raw(); + return $file->get(); } public static function bindEnabled() @@ -236,14 +240,42 @@ class L10n self::$translation_table = self::$gettext->translation_table; } + public static function setOverride(string $key, string $msg): void + { + self::$override[$key] = $msg; + self::$override[mb_strtolower($key)] = mb_strtolower($msg); + } + + public static function setPluralOverride( + string $key, + string $msg, + string $msg_plural, + ): void { + self::$overridePlural[$key] = [$msg, $msg_plural]; + self::$overridePlural[mb_strtolower($key)] = [mb_strtolower($msg), mb_strtolower($msg_plural)]; + } + public static function gettext(string $msg): string { - return self::getGettext()->gettext($msg) ?? $msg; + return self::$override[$msg] + ?? self::getGettext()->gettext($msg) + ?? $msg; } public static function ngettext(string $msg, string $msg_plural, int $count): string { - return self::getGettext()->ngettext($msg, $msg_plural, $count) ?? $msg; + $overrideMsg = self::$overridePlural[$msg] ?? null; + if ($overrideMsg !== null) { + $msg = $overrideMsg[0]; + $msg_plural = $overrideMsg[1]; + $translated = $count == 1 ? $msg : $msg_plural; + $index_id = self::getGettext()->getPluralKey($count); + + return $overrideMsg[$index_id] ?? $translated; + } + + return self::getGettext()->ngettext($msg, $msg_plural, $count) + ?? $msg; } public static function setStatic(string $var, mixed $value): void diff --git a/app/src/Legacy/Classes/Listing.php b/app/src/Legacy/Classes/Listing.php index bcdf61a..110ad7a 100644 --- a/app/src/Legacy/Classes/Listing.php +++ b/app/src/Legacy/Classes/Listing.php @@ -562,7 +562,7 @@ class Listing if ($db->rowCount() > $this->limit) { array_pop($this->output); } - $this->output = safe_html($this->output); + $this->output = safe_html(var: $this->output, skip: ['album_cta']); $this->count = count($this->output); $this->nsfw = false; $this->output_assoc = []; diff --git a/app/src/Legacy/Classes/Settings.php b/app/src/Legacy/Classes/Settings.php index 9c16eba..573ca94 100644 --- a/app/src/Legacy/Classes/Settings.php +++ b/app/src/Legacy/Classes/Settings.php @@ -51,6 +51,31 @@ class Settings 'xr_key', ]; + public const SEMANTICS = [ + [ + 'semantics_album' => 'Album', + 'semantics_albums' => 'Albums', + ], + [ + 'semantics_image' => 'Image', + 'semantics_images' => 'Images', + ], + [ + 'semantics_user' => 'User', + 'semantics_users' => 'Users', + ], + [ + 'semantics_category' => 'Category', + 'semantics_categories' => 'Categories', + ], + [ + 'semantics_explore' => 'Explore', + ], + [ + 'semantics_discovery' => 'Discovery', + ], + ]; + public function __construct() { $settings = []; diff --git a/app/src/Legacy/Classes/Upload.php b/app/src/Legacy/Classes/Upload.php index 1156e65..1f2be22 100644 --- a/app/src/Legacy/Classes/Upload.php +++ b/app/src/Legacy/Classes/Upload.php @@ -265,8 +265,8 @@ class Upload $this->source = [ 'filename' => $this->source_filename, // file.ext 'name' => $this->source_name, // file - 'image_exif' => $this->source_image_exif, // exif-reader - 'fileinfo' => get_image_fileinfo($this->downstream), // fileinfo array + 'image_exif' => $this->source_image_exif, + 'fileinfo' => get_image_fileinfo($this->downstream), ]; if (stream_resolve_include_path($this->downstream) == false) { throw new Exception('Concurrency: Downstream gone, aborting operation', 666); @@ -292,13 +292,16 @@ class Upload } catch (Throwable $e) { } } - $fileinfo = get_image_fileinfo($this->uploaded_file); - $fileinfo['is_360'] = $is_360; + $fileInfo = get_image_fileinfo($this->uploaded_file); + if ($fileInfo === []) { + throw new Exception("Can't get uploaded info", 610); + } + $fileInfo['is_360'] = $is_360; $this->uploaded = [ 'file' => $this->uploaded_file, 'filename' => get_filename($this->uploaded_file), 'name' => get_basename_without_extension($this->uploaded_file), - 'fileinfo' => $fileinfo, + 'fileinfo' => $fileInfo, ]; } @@ -462,7 +465,7 @@ class Upload throw new Exception("Can't fetch target upload source (downstream)", 600); } $this->source_image_fileinfo = get_image_fileinfo($this->downstream); - if (!$this->source_image_fileinfo) { + if ($this->source_image_fileinfo === []) { throw new Exception("Can't get target upload source info", 610); } if ($this->source_image_fileinfo['width'] == '' || $this->source_image_fileinfo['height'] == '') { @@ -560,7 +563,7 @@ class Upload } } if ($is_flood) { - if (getSetting('flood_uploads_notify') && !session()['flood_uploads_notify'][$flood_by]) { + if (getSetting('flood_uploads_notify') && !(session()['flood_uploads_notify'][$flood_by] ?? false)) { try { $logged_user = Login::getUser(); $message = strtr('Flooding IP %ip', ['%ip' => get_client_ip()]) . '
'; @@ -574,7 +577,7 @@ class Upload $message .= 'Week: ' . $flood_db['day'] . '
'; $message .= 'Month: ' . $flood_db['week'] . '
'; system_notification_email(['subject' => 'Flood report IP ' . get_client_ip(), 'message' => $message]); - $addValues = session()['flood_uploads_notify']; + $addValues = session()['flood_uploads_notify'] ?? []; $addValues[$flood_by] = true; sessionVar()->put('flood_uploads_notify', $addValues); } catch (Exception $e) { diff --git a/app/src/Legacy/Classes/User.php b/app/src/Legacy/Classes/User.php index 9033d3c..48663be 100644 --- a/app/src/Legacy/Classes/User.php +++ b/app/src/Legacy/Classes/User.php @@ -177,7 +177,7 @@ class User return [ 'album_id' => null, 'album_id_encoded' => null, - 'album_name' => _s("%s's images", $user['username']), + 'album_name' => self::getStreamName($user['username']), 'album_user_id' => $user['id'], 'album_privacy' => 'public', 'album_url' => $user['url'] @@ -187,6 +187,11 @@ class User return null; } + public static function getStreamName(string $username): string + { + return _s("%s by %u", ['%s' => _s('Images'), '%u' => $username]); + } + public static function getUrl(array|string $handle) { $username = is_array($handle) ? ($handle[isset($handle['user_username']) ? 'user_username' : 'username'] ?? null) : $handle; @@ -257,7 +262,7 @@ class User $table['%' . $k] = $values[$k] ?? ''; } $table['%edit'] = 'edit'; - $table['%user'] = '' . $values['username'] . ''; + $table['%user'] = '' . $values['username'] . ''; $table['%configure'] = 'dashboard/settings/users'; system_notification_email([ 'subject' => sprintf('New user signup %s', $values['username']), @@ -308,7 +313,7 @@ class User /** @var array $uploaded */ $uploaded = $image_upload['uploaded']; if ($type == 'avatar') { - $max_res = ['width' => 500, 'height' => 500]; + $max_res = ['width' => 500, 'height' => 500, 'fitted' => true]; $must_resize = $uploaded['fileinfo']['width'] > $max_res['width'] || $uploaded['fileinfo']['height'] > $max_res['height']; } else { @@ -529,6 +534,7 @@ class User $user['image_count_display'] = isset($user['image_count']) ? abbreviate_number($user['image_count']) : 0; $user['album_count_display'] = isset($user['album_count']) ? abbreviate_number($user['album_count']) : 0; $user['url'] = self::getUrl($user); + $user['public_url'] = get_public_url($user['url']); $user['url_albums'] = self::getUrlAlbums($user['url']); $user['url_liked'] = $user['url'] . '/liked'; $user['url_following'] = $user['url'] . '/following'; diff --git a/app/src/Legacy/G/Gettext.php b/app/src/Legacy/G/Gettext.php index c577853..d98bedd 100644 --- a/app/src/Legacy/G/Gettext.php +++ b/app/src/Legacy/G/Gettext.php @@ -58,6 +58,12 @@ class Gettext private $is_cached = false; + private array $options; + + private string $parse_method; + + private string $cache_file; + public function __construct($options = []) { $this->options = array_merge(static::$default_options, (array)$options); @@ -105,18 +111,14 @@ class Gettext if (!$this->parsed) { $this->parseFile(); } - if ($this->mustFixQuotes()) { $msg = $this->fixQuotes($msg, 'escape'); } - $translated = $msg; - if (array_key_exists($msg, $this->translation_table)) { $translated = $this->translation_table[$msg][0] ?? null; $translated = !empty($translated) ? $translated : $msg; } - if ($this->mustFixQuotes()) { $translated = $this->fixQuotes($translated, 'unescape'); } @@ -144,23 +146,18 @@ class Gettext if (!$this->parsed) { $this->parseFile(); } - if ($this->mustFixQuotes()) { $msg = $this->fixQuotes($msg, 'escape'); $msg_plural = $this->fixQuotes($msg_plural, 'escape'); } - $translated = $count == 1 ? $msg : $msg_plural; // Failover - if (array_key_exists($msg, $this->translation_table)) { - $plural_index = $this->getPluralIndex($count); - $index_id = $plural_index !== false ? $plural_index : ($count - 1); + $index_id = $this->getPluralKey($count); $table = $this->translation_table[$msg]; if (array_key_exists($index_id, $table)) { $translated = $table[$index_id]; } } - if ($this->mustFixQuotes()) { $translated = $this->fixQuotes($translated, 'unescape'); } @@ -168,6 +165,13 @@ class Gettext return $translated; } + public function getPluralKey(int $count): int + { + $plural_index = $this->getPluralIndex($count); + + return $plural_index !== false ? $plural_index : ($count - 1); + } + /** * Parse the source file * If cache is enabled it will try to cache the result diff --git a/app/src/Legacy/G/functions.php b/app/src/Legacy/G/functions.php index d338d8a..fbc4013 100644 --- a/app/src/Legacy/G/functions.php +++ b/app/src/Legacy/G/functions.php @@ -1248,7 +1248,7 @@ function unaccent_string(string $string): string return $string; } -function safe_html(mixed $var, int $flag = ENT_QUOTES): string|array|null +function safe_html(mixed $var, int $flag = ENT_QUOTES, array $skip = []): string|array|null { if (!is_array($var)) { return $var === null @@ -1257,8 +1257,13 @@ function safe_html(mixed $var, int $flag = ENT_QUOTES): string|array|null } $safe_array = []; foreach ($var as $k => $v) { + if (in_array($k, $skip, true)) { + $safe_array[$k] = $v; + + continue; + } $safe_array[$k] = is_array($v) - ? safe_html($v) + ? safe_html($v, $flag, $skip) : ( $v === null ? null diff --git a/app/src/Legacy/functions-render.php b/app/src/Legacy/functions-render.php index 63d594f..830784d 100644 --- a/app/src/Legacy/functions-render.php +++ b/app/src/Legacy/functions-render.php @@ -76,12 +76,8 @@ function get_theme_file_url($file, $options = []) function get_static_url($filepath, $options = []) { $options = array_merge(['versionize' => true], $options); - $return = absolute_to_url( - $filepath, - URL_APP_PUBLIC === URL_APP_PUBLIC_STATIC - ? Config::host()->hostnamePath() - : URL_APP_PUBLIC_STATIC - ); + $url = getLocalUrl(); + $return = absolute_to_url($filepath, $url); if ($options['versionize']) { $return = versionize_src($return); } @@ -560,6 +556,11 @@ function get_peafowl_item_list($item, $template, $tools, $tpl = 'image', array $ $object['user'][$k] = $item['user'][$k] ?? ''; } } + if (isset($item['album'])) { + $object['album'] = [ + 'cta_html' => $item['album']['cta_html'] ?? '', + ]; + } $replacements['DATA_OBJECT'] = "data-object='" . rawurlencode(json_encode(G\array_utf8encode($object))) . "'"; if ($stock_tpl == 'IMAGE') { $replacements['SIZE_TYPE'] = getSetting('theme_image_listing_sizing') . '-size'; diff --git a/app/src/Legacy/functions.php b/app/src/Legacy/functions.php index 17a1ca3..b881829 100644 --- a/app/src/Legacy/functions.php +++ b/app/src/Legacy/functions.php @@ -17,7 +17,6 @@ use function Chevere\Message\message; use Chevere\Regex\Regex; use Chevere\Throwable\Exceptions\LogicException; use Chevere\Throwable\Exceptions\RuntimeException; -use function Chevere\Type\typeArray; use function Chevere\Writer\streamFor; use Chevere\Writer\StreamWriter; use function Chevere\Writer\writers; @@ -612,12 +611,22 @@ function decryptString(string $string): string|bool return sessionCrypt($string, false); } +function getLocalUrl(): string +{ + $url = Config::host()->hostnamePath(); + if (defined('URL_APP_PUBLIC_STATIC')) { + $url = URL_APP_PUBLIC === URL_APP_PUBLIC_STATIC + ? Config::host()->hostnamePath() + : URL_APP_PUBLIC_STATIC; + } + + return $url; +} + function get_content_url(string $sub): string { $dirname = dirname($sub); - $local = URL_APP_PUBLIC_STATIC === URL_APP_PUBLIC - ? Config::host()->hostnamePath() - : URL_APP_PUBLIC_STATIC; + $local = getLocalUrl(); $url = AssetStorage::getStorage()['url'] ?? $local; if (basename($dirname) == 'default') { $url = $local; @@ -752,7 +761,7 @@ function upload_to_content_images(array $source, string $what): void default: throw new Exception('Unknown errors', 602); } - $file_contents = @file_get_contents($source['tmp_name']); + $file_contents = file_get_contents($source['tmp_name']); if (!$file_contents) { throw new Exception("Can't read uploaded file content", 600); } @@ -976,7 +985,7 @@ function loaderHandler( $envFile = filePhpForPath(PATH_APP . 'env.php'); if ($envFile->file()->exists()) { $filePhpReturn = new FilePhpReturn($envFile); - $env = $filePhpReturn->variableTyped(typeArray()); + $env = $filePhpReturn->getArray(); } $envVar = array_merge($envDefault, $env, $_env); if ($envVar['CHEVERETO_CONTEXT'] === 'saas') { @@ -1078,6 +1087,23 @@ function loaderHandler( defaultLanguage: Settings::get('default_language'), autoLanguage: Settings::get('auto_language'), ); + foreach (Settings::SEMANTICS as $messages) { + $aux = 0; + foreach ($messages as $key => $message) { + $aux++; + $value = Settings::get($key); + if ($value === null) { + continue; + } + L10n::setOverride($message, $value); + if (isset($message[1]) && $aux == 1) { + $singular = $value; + } + if (isset($message[1]) && $aux == 2) { + L10n::setPluralOverride($message, $singular, $value); + } + } + } try { $xrArguments = array_filter([ @@ -1255,3 +1281,33 @@ function assertNotStopWords(string ...$message): void ); } } + +/** + * Increases or decreases the brightness of a color by a percentage of the current brightness. + * + * @param string $hexCode Supported formats: `#FFF`, `#FFFFFF`, `FFF`, `FFFFFF` + * @param float $adjustPercent A number between -1 and 1. E.g. 0.3 = 30% lighter; -0.4 = 40% darker. + * + * @return string + * + * @author maliayas + */ +function adjustBrightness(string $hexCode, float $adjustPercent) +{ + $hexCode = ltrim($hexCode, '#'); + + if (strlen($hexCode) == 3) { + $hexCode = $hexCode[0] . $hexCode[0] . $hexCode[1] . $hexCode[1] . $hexCode[2] . $hexCode[2]; + } + + $hexCode = array_map('hexdec', str_split($hexCode, 2)); + + foreach ($hexCode as &$color) { + $adjustableLimit = $adjustPercent < 0 ? $color : 255 - $color; + $adjustAmount = ceil($adjustableLimit * $adjustPercent); + + $color = str_pad(dechex($color + $adjustAmount), 2, '0', STR_PAD_LEFT); + } + + return '#' . implode($hexCode); +} diff --git a/content/legacy/system/style.css b/content/legacy/system/style.css index 1f0cdb7..929256b 100644 --- a/content/legacy/system/style.css +++ b/content/legacy/system/style.css @@ -122,14 +122,14 @@ ul>li { .highlight { background: rgba(255, 255, 255, .5); - border-left: 4px solid #8e44ad; + border-inline-start: 4px solid #8e44ad; } .alert { position: relative; background: rgba(241, 196, 15, .3); - border-left: 4px solid #f1c40f; - padding-right: 2em; + border-inline-start: 4px solid #f1c40f; + padding-inline-end: 2em; } .alert pre { @@ -157,7 +157,7 @@ ul>li { .alert-close { cursor: pointer; position: absolute; - right: 1em; + inset-inline-end: 1em; top: 1em; width: 1em; height: 1em; @@ -171,7 +171,7 @@ ul>li { .alert-close:before, .alert-close:after { position: absolute; - left: 7.5px; + inset-inline-start: 7.5px; content: ' '; height: 16px; width: 2px; @@ -198,7 +198,7 @@ input { border-top-color: transparent; border-left-color: transparent; border-right-color: transparent; - padding-left: 0; + padding-inline-start: 0; transition: border-width 1s linear; } @@ -227,8 +227,8 @@ button, display: inline-block; font-size: 0.83em; font-weight: bold; - padding-right: 15px; - padding-left: 15px; + padding-inline-end: 15px; + padding-inline-start: 15px; line-height: 0.83em; outline: 0; cursor: pointer; @@ -335,7 +335,7 @@ code { font-size: 32px; position: absolute; top: 20px; - right: 20px; + inset-inline-end: 20px; margin: 0; opacity: 0; } @@ -491,7 +491,7 @@ body.body--installing .flex-box .loader { .flex-box+.flex-box { margin-top: 20px; - margin-left: 0; + margin-inline-start: 0; } } @@ -579,7 +579,7 @@ body.body--installing .flex-box .loader { .input-warning { position: absolute; - right: 0; + inset-inline-end: 0; top: 0; font-size: 80%; } @@ -594,7 +594,7 @@ body.body--installing .flex-box .loader { .input-password .input-password-strength { position: absolute; - right: 0; + inset-inline-end: 0; top: 50%; margin-top: 5px; } @@ -631,4 +631,4 @@ body.body--installing .flex-box .loader { .description-meta:empty { display: none; -} \ No newline at end of file +} diff --git a/content/legacy/system/style.min.css b/content/legacy/system/style.min.css index d280e2d..1761a03 100644 --- a/content/legacy/system/style.min.css +++ b/content/legacy/system/style.min.css @@ -1 +1 @@ -body,html{height:100%}body{margin:0;background:#3498db;background:linear-gradient(to bottom,#3498db 0,#8e44ad 100%)}html#error body{background:#ecf0f1}html{color:#000;font:16px Helvetica,Arial,sans-serif;line-height:1.3}.body--block{margin:20px}.body--flex{margin:0;display:flex;flex-direction:column}.user-select-none{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.force-select{-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all}main{width:100%;height:100%;padding:0;margin:0;border:0;display:flex;align-items:center;justify-content:center;overflow-y:auto;flex:1}@media (min-width:768px){main{padding:20px}}main>div{width:630px}.main--stack{width:100%;max-width:900px}*{-ms-box-sizing:border-box;box-sizing:border-box;outline:0}a{color:#3498db;outline:0;text-decoration:none}a:hover{text-decoration:underline}p,ul>li{line-height:140%}.soft-hidden{display:none}.p{margin-top:20px;margin-bottom:20px}.alert,.highlight,.log{font-size:.9em;padding:1em}.alert:empty,.highlight:empty{display:none}.highlight{background:rgba(255,255,255,.5);border-left:4px solid #8e44ad}.alert{position:relative;background:rgba(241,196,15,.3);border-left:4px solid #f1c40f;padding-right:2em}.alert pre{overflow:auto}.alert code,.alert pre{background:rgba(241,196,15,.3)}.alert pre code{background:0 0}.shake{-webkit-animation:shake .5s cubic-bezier(.36,.07,.19,.97) both;animation:shake .5s cubic-bezier(.36,.07,.19,.97) both;transform:translate3d(0,0,0);-webkit-backface-visibility:hidden;backface-visibility:hidden;perspective:1000px}.alert-close{cursor:pointer;position:absolute;right:1em;top:1em;width:1em;height:1em;opacity:.3}.alert-close:hover{opacity:1}.alert-close:after,.alert-close:before{position:absolute;left:7.5px;content:' ';height:16px;width:2px;background-color:#333}.alert-close:before{transform:rotate(45deg)}.alert-close:after{transform:rotate(-45deg)}.button,button,input,select{font-family:Helvetica,Arial,sans-serif;padding:10px;color:#000}input{border:1px solid rgba(0,0,0,.1);background:0 0;border-top-color:transparent;border-left-color:transparent;border-right-color:transparent;padding-left:0;transition:border-width 1s linear}input:focus,select:focus{border-bottom-color:#3498db}input:-webkit-autofill,input:-webkit-autofill:focus input:-webkit-autofill,input:-webkit-autofill:hover,select:-webkit-autofill,select:-webkit-autofill:focus,select:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:hover textarea:-webkit-autofill:focus{-webkit-text-fill-color:inherit;-webkit-box-shadow:0 0 0 1000px transparent inset;-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s}.button,button{display:inline-block;font-size:.83em;font-weight:700;padding-right:15px;padding-left:15px;line-height:.83em;outline:0;cursor:pointer;text-shadow:1px 1px 0 rgba(255,255,255,.1);text-decoration:none;border:0;background-color:rgba(0,0,0,.05);box-shadow:inset 0 2px 5px transparent}.button:hover,button:hover{text-decoration:none}.button:active,button:active{box-shadow:inset 0 2px 5px rgba(0,0,0,.3)}.button.action,button.action{text-shadow:1px 1px 0 rgba(0,0,0,.05);color:#fff;background:#3498db}.button.action:hover,button.action:hover{background:#2980b9}button[disabled],input[disabled]{cursor:wait}input[data-disabled]{cursor:not-allowed}.input-label label{font-size:.9em;display:block;font-weight:700}h1{line-height:1em}code{font-size:.9em;font-family:monospace;background:rgba(0,0,0,.1)}.pre{display:block;background-color:rgba(0,0,0,.1);overflow:auto;height:180px;font-size:.9em;white-space:nowrap;width:100%;resize:none;border:none;margin:1em 0;-moz-tab-size:4;-o-tab-size:4;tab-size:4}@-webkit-keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.flex-box .loader{display:inline-block;border:.15em solid rgb(52 152 219 / 20%);border-top:.15em solid #3498db;border-radius:50%;width:1em;height:1em;-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite;z-index:1;font-size:32px;position:absolute;top:20px;right:20px;margin:0;opacity:0}.flex-box .loader--show,body.body--installing .flex-box .loader{opacity:1}.animate{transition:all .2s ease}.animate--slow{transition-duration:.8s}.text-align-center{text-align:center}.flex{display:flex}.flex--full{min-height:100%;overflow:hidden}.screen{margin:auto;flex-wrap:wrap;flex-direction:row;justify-content:center;display:flex;visibility:visible}.screen--error{opacity:1;display:flex;transform:scale(1)}@-webkit-keyframes fadeInFromNone{0%{display:none;opacity:0}100%{opacity:1;transform:scale(1)}}@keyframes fadeInFromNone{0%{display:none;opacity:0}100%{opacity:1;transform:scale(1)}}.flex-item{flex:1 0 100%;justify-content:center}.flex-box{background:rgba(255,255,255,.8);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-size:cover;background-position:center;border-radius:10px;min-width:270px;position:relative;margin:20px;flex:1 0 0}.flex-box>div{margin:20px}.flex-box+.flex-box{margin-top:0}.log{background:rgba(255,255,255,.1);overflow:auto;max-height:10em;margin:0;padding:0}.log:empty{display:none}.log p{margin:0;padding:5px}.log p:nth-child(even){background:rgba(255,255,255,.25)}.radius{border-radius:3px}.error-box{background:0 0;box-shadow:none}.error-box a{font-weight:400;text-decoration:none}.error-box a:hover{-webkit-text-decoration-style:solid;text-decoration-style:solid;-webkit-text-decoration-color:#000;text-decoration-color:#000}.error-box-code{opacity:.4;font-size:.9em;border-top:1px solid rgba(0,0,0,.2);padding-top:10px}@media (min-width:680px){.col-8{width:310px}.col-width{width:630px}.flex-box+.flex-box{margin-top:20px;margin-left:0}}.width-100p{width:100%}.header img,.header svg{height:40px;width:auto;max-height:100%;margin:20px auto;display:block}.header img path,.header svg path{fill:#fff}.install-details{font-size:.9em;font-family:monospace}.install-details pre{margin:0;font-family:inherit}@-webkit-keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}.display-block{display:block}.input-warning{position:absolute;right:0;top:0;font-size:80%}.red-warning{color:#d74634}.input-password{position:relative}.input-password .input-password-strength{position:absolute;right:0;top:50%;margin-top:5px}.input-password-strength{background:rgba(0,0,0,.1)}.input-password-strength,.input-password-strength span{display:block;width:50px;height:8px}.input-password-strength span{width:0%;background-color:transparent}.input-password-strength [data-veredict=very-weak]{background-color:#e74c3c}.input-password-strength [data-veredict=weak]{background-color:#e67e22}.input-password-strength [data-veredict=average],.input-password-strength [data-veredict=strong],.input-password-strength [data-veredict=stronger]{background-color:#2ecc71}.description-meta:empty{display:none} \ No newline at end of file +body,html{height:100%}body{margin:0;background:#3498db;background:linear-gradient(to bottom,#3498db 0,#8e44ad 100%)}html#error body{background:#ecf0f1}html{color:#000;font:16px Helvetica,Arial,sans-serif;line-height:1.3}.body--block{margin:20px}.body--flex{margin:0;display:flex;flex-direction:column}.user-select-none{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.force-select{-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all}main{width:100%;height:100%;padding:0;margin:0;border:0;display:flex;align-items:center;justify-content:center;overflow-y:auto;flex:1}@media (min-width:768px){main{padding:20px}}main>div{width:630px}.main--stack{width:100%;max-width:900px}*{-ms-box-sizing:border-box;box-sizing:border-box;outline:0}a{color:#3498db;outline:0;text-decoration:none}a:hover{text-decoration:underline}p,ul>li{line-height:140%}.soft-hidden{display:none}.p{margin-top:20px;margin-bottom:20px}.alert,.highlight,.log{font-size:.9em;padding:1em}.alert:empty,.highlight:empty{display:none}.highlight{background:rgba(255,255,255,.5);border-inline-start:4px solid #8e44ad}.alert{position:relative;background:rgba(241,196,15,.3);border-inline-start:4px solid #f1c40f;padding-inline-end:2em}.alert pre{overflow:auto}.alert code,.alert pre{background:rgba(241,196,15,.3)}.alert pre code{background:0 0}.shake{-webkit-animation:shake .5s cubic-bezier(.36,.07,.19,.97) both;animation:shake .5s cubic-bezier(.36,.07,.19,.97) both;transform:translate3d(0,0,0);-webkit-backface-visibility:hidden;backface-visibility:hidden;perspective:1000px}.alert-close{cursor:pointer;position:absolute;inset-inline-end:1em;top:1em;width:1em;height:1em;opacity:.3}.alert-close:hover{opacity:1}.alert-close:after,.alert-close:before{position:absolute;inset-inline-start:7.5px;content:' ';height:16px;width:2px;background-color:#333}.alert-close:before{transform:rotate(45deg)}.alert-close:after{transform:rotate(-45deg)}.button,button,input,select{font-family:Helvetica,Arial,sans-serif;padding:10px;color:#000}input{border:1px solid rgba(0,0,0,.1);background:0 0;border-top-color:transparent;border-left-color:transparent;border-right-color:transparent;padding-inline-start:0;transition:border-width 1s linear}input:focus,select:focus{border-bottom-color:#3498db}input:-webkit-autofill,input:-webkit-autofill:focus input:-webkit-autofill,input:-webkit-autofill:hover,select:-webkit-autofill,select:-webkit-autofill:focus,select:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:hover textarea:-webkit-autofill:focus{-webkit-text-fill-color:inherit;-webkit-box-shadow:0 0 0 1000px transparent inset;-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s}.button,button{display:inline-block;font-size:.83em;font-weight:700;padding-inline-end:15px;padding-inline-start:15px;line-height:.83em;outline:0;cursor:pointer;text-shadow:1px 1px 0 rgba(255,255,255,.1);text-decoration:none;border:0;background-color:rgba(0,0,0,.05);box-shadow:inset 0 2px 5px transparent}.button:hover,button:hover{text-decoration:none}.button:active,button:active{box-shadow:inset 0 2px 5px rgba(0,0,0,.3)}.button.action,button.action{text-shadow:1px 1px 0 rgba(0,0,0,.05);color:#fff;background:#3498db}.button.action:hover,button.action:hover{background:#2980b9}button[disabled],input[disabled]{cursor:wait}input[data-disabled]{cursor:not-allowed}.input-label label{font-size:.9em;display:block;font-weight:700}h1{line-height:1em}code{font-size:.9em;font-family:monospace;background:rgba(0,0,0,.1)}.pre{display:block;background-color:rgba(0,0,0,.1);overflow:auto;height:180px;font-size:.9em;white-space:nowrap;width:100%;resize:none;border:none;margin:1em 0;-moz-tab-size:4;-o-tab-size:4;tab-size:4}@-webkit-keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.flex-box .loader{display:inline-block;border:.15em solid rgb(52 152 219 / 20%);border-top:.15em solid #3498db;border-radius:50%;width:1em;height:1em;-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite;z-index:1;font-size:32px;position:absolute;top:20px;inset-inline-end:20px;margin:0;opacity:0}.flex-box .loader--show,body.body--installing .flex-box .loader{opacity:1}.animate{transition:all .2s ease}.animate--slow{transition-duration:.8s}.text-align-center{text-align:center}.flex{display:flex}.flex--full{min-height:100%;overflow:hidden}.screen{margin:auto;flex-wrap:wrap;flex-direction:row;justify-content:center;display:flex;visibility:visible}.screen--error{opacity:1;display:flex;transform:scale(1)}@-webkit-keyframes fadeInFromNone{0%{display:none;opacity:0}100%{opacity:1;transform:scale(1)}}@keyframes fadeInFromNone{0%{display:none;opacity:0}100%{opacity:1;transform:scale(1)}}.flex-item{flex:1 0 100%;justify-content:center}.flex-box{background:rgba(255,255,255,.8);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-size:cover;background-position:center;border-radius:10px;min-width:270px;position:relative;margin:20px;flex:1 0 0}.flex-box>div{margin:20px}.flex-box+.flex-box{margin-top:0}.log{background:rgba(255,255,255,.1);overflow:auto;max-height:10em;margin:0;padding:0}.log:empty{display:none}.log p{margin:0;padding:5px}.log p:nth-child(even){background:rgba(255,255,255,.25)}.radius{border-radius:3px}.error-box{background:0 0;box-shadow:none}.error-box a{font-weight:400;text-decoration:none}.error-box a:hover{-webkit-text-decoration-style:solid;text-decoration-style:solid;-webkit-text-decoration-color:#000;text-decoration-color:#000}.error-box-code{opacity:.4;font-size:.9em;border-top:1px solid rgba(0,0,0,.2);padding-top:10px}@media (min-width:680px){.col-8{width:310px}.col-width{width:630px}.flex-box+.flex-box{margin-top:20px;margin-inline-start:0}}.width-100p{width:100%}.header img,.header svg{height:40px;width:auto;max-height:100%;margin:20px auto;display:block}.header img path,.header svg path{fill:#fff}.install-details{font-size:.9em;font-family:monospace}.install-details pre{margin:0;font-family:inherit}@-webkit-keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}.display-block{display:block}.input-warning{position:absolute;inset-inline-end:0;top:0;font-size:80%}.red-warning{color:#d74634}.input-password{position:relative}.input-password .input-password-strength{position:absolute;inset-inline-end:0;top:50%;margin-top:5px}.input-password-strength{background:rgba(0,0,0,.1)}.input-password-strength,.input-password-strength span{display:block;width:50px;height:8px}.input-password-strength span{width:0%;background-color:transparent}.input-password-strength [data-veredict=very-weak]{background-color:#e74c3c}.input-password-strength [data-veredict=weak]{background-color:#e67e22}.input-password-strength [data-veredict=average],.input-password-strength [data-veredict=strong],.input-password-strength [data-veredict=stronger]{background-color:#2ecc71}.description-meta:empty{display:none} \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/head.php b/content/legacy/themes/Peafowl/head.php index d97c138..a639403 100644 --- a/content/legacy/themes/Peafowl/head.php +++ b/content/legacy/themes/Peafowl/head.php @@ -100,7 +100,6 @@ if (!defined('ACCESS') || !ACCESS) { $open_graph_extend = [ 'type' => 'profile', 'title' => Handler::var('user')['name'], - // 'description' => sprintf(is_user_images() ? _s("%s's Images") : _s("%s's Albums"), _var('user')["name_short"]), 'image' => isset(Handler::var('user')['avatar']) ? Handler::var('user')['avatar']['url'] : '', ]; diff --git a/content/legacy/themes/Peafowl/lib/chevereto.js b/content/legacy/themes/Peafowl/lib/chevereto.js index 69d49e0..8078b0e 100644 --- a/content/legacy/themes/Peafowl/lib/chevereto.js +++ b/content/legacy/themes/Peafowl/lib/chevereto.js @@ -2253,7 +2253,6 @@ $(function () { var $this = $(this); if ($this.data("XHR")) return; $this.data("XHR", true); - var $object = $(this).is("[data-liked]") ? $(this) : $(this).closest("[data-liked]"); @@ -2293,15 +2292,11 @@ $(function () { if (isSingle && typeof response.content !== typeof undefined) { $("[data-text=likes-count]").html(response.content.likes); } - $targets.attr("data-liked", liked ? 0 : 1); // Toggle indicator + $targets.closest("[data-liked]").attr("data-liked", liked ? 0 : 1); }); }); $(document).on("click", "[data-action=album-cover]", function () { - // if (!PF.fn.is_user_logged()) { - // window.location.href = CHV.obj.vars.urls.login; - // return; - // } var $this = $(this); if ($this.data("XHR")) return; $this.data("XHR", true); @@ -2462,12 +2457,10 @@ $(function () { $(document).on("click", "[data-action=top-bar-notifications]", function (e) { var _this = this; var $this = $(this); - var $container = $(".top-bar-notifications-container", $this); var $list = $(".top-bar-notifications-list", $this); var $ul = $("ul", $list); var $loading = $(".loading", $container); - if ($this.data("XHR")) { return; } else { @@ -2477,7 +2470,6 @@ $(function () { message: PF.fn._s("loading"), }); } - $.ajax({ type: "POST", data: { @@ -2802,6 +2794,44 @@ $(function () { } ); } + + $(document).on("change keyup", CHV.fn.ctaForm.selectors.rows + " input[name^='cta-']", function() { + CHV.fn.ctaForm.update($(this)); + }); + + $(document).on("click", CHV.fn.ctaForm.selectors.rows + " [data-action=cta-add]", function () { + CHV.fn.ctaForm.insert($(this)); + }); + + $(document).on("click", CHV.fn.ctaForm.selectors.rows + " [data-action=cta-remove]", function () { + CHV.fn.ctaForm.remove($(this)); + if(CHV.fn.ctaForm.array.length == 0) { + $(CHV.fn.ctaForm.selectors.root + " " + CHV.fn.ctaForm.selectors.enable).prop("checked", false).trigger("change"); + } + + }); + $(document).on("change", CHV.fn.ctaForm.selectors.root + " " + CHV.fn.ctaForm.selectors.enable, function() { + let $combo = $(CHV.fn.ctaForm.selectors.combo, CHV.fn.ctaForm.selectors.root); + let checked = $(this).is(":checked"); + $combo.toggleClass("soft-hidden", !checked); + if(checked) { + if(CHV.fn.ctaForm.array.length == 0) { + CHV.fn.ctaForm.add(); + } + CHV.fn.ctaForm.render(); + } + CHV.fn.ctaForm.setEnable(checked ? 1 : 0); + }); + + $(document).on("change keyup", CHV.fn.ctaForm.selectors.root + " input[name^='cta-icon_']", function() { + let $row = CHV.fn.ctaForm.getRow($(this)); + let $icon = $row.find("label[for^='cta-icon_'] [data-content=icon]"); + $icon.removeClass(); + let iconClass = CHV.fn.ctaForm.getIconClass($(this).val()); + $icon.addClass(iconClass); + }); + + }); if (typeof CHV == "undefined") { @@ -2809,13 +2839,128 @@ if (typeof CHV == "undefined") { obj: {}, fn: {}, str: {}, - }; + } } if (window.opener) { CHV.obj.opener = { uploadPlugin: {}, - }; + } +} + +CHV.fn.ctaButtons = { + selectors: { + container: "[data-contains=cta-album]", + }, + render: function(html="") { + $(this.selectors.container).each(function() { + $(this).html(html); + }); + } +} +CHV.fn.ctaForm = { + enable: 0, + array: [], + selectors: { + root: "#cta-form", + rows: "#cta-rows", + enable: "#cta-enable", + template: "#cta-row-template", + combo: "#cta-combo", + row: ".cta-row" + }, + update: function($atElement) { + let pos = this.getPos($atElement); + let key = $atElement.attr("name").match(/cta-(.*)?_\d+/)[1] + this.array[pos-1][key] = $atElement.val(); + }, + add: function(label="", icon="", href="") { + this.array.push(this.getRowObject(label, icon, href)); + this.render(); + }, + insert: function($atElement) { + let pos = this.getPos($atElement); + this.array.splice(pos, 0, this.getRowObject()); + this.render(); + }, + remove: function($atElement) { + let pos = this.getPos($atElement); + this.array.splice(pos-1, 1); + this.render(); + }, + getRowObject: function(label="", icon="", href="") { + return { + "label": label, + "icon": icon, + "href": href + } + }, + getIconClass: function(icon) { + if(!/\s/g.test(icon)) { + return "fa-solid fa-" + icon; + } + + return icon; + }, + getRow: function($element) { + return $element.closest(this.selectors.row); + }, + getPos: function($element) { + return this.getRow($element).data("pos"); + }, + getTemplateHtml: function() { + return $(this.selectors.template).html(); + }, + getRowHtml: function(pos, data) { + return this.getTemplateHtml() + .replaceAll(/%pos%/g, pos) + .replaceAll(/%label%/g, data.label) + .replaceAll(/%href%/g, data.href) + .replaceAll(/%icon%/g, data.icon) + .replaceAll( + /%iconClass%/g, + this.getIconClass(data.icon) + ); + }, + render: function() { + let $ctaForm = $(this.selectors.root); + let $ctaRows = $ctaForm.find(this.selectors.rows); + let $this = this; + this.destroy(); + $.each(this.array, function(index, data) { + $ctaRows.append($this.getRowHtml(index+1, data)); + }); + this.setEnable(this.enable); + $ctaRows.sortable({ + cursor: "grabbing", + axis: "y", + update: function() { + let array = []; + $(this).find($this.selectors.row).each(function() { + let pos = $this.getPos($(this)); + array.push($this.array[pos-1]); + }); + $this.array = array; + $this.render(); + } + }); + }, + setEnable: function(integer) { + let $ctaRows = $(this.selectors.rows, this.selectors.root); + this.enable = integer; + let enable = this.enable === 1; + $('input[data-required]', $ctaRows).each(function() { + $(this).attr("required", enable); + }); + }, + destroy: function() { + let $ctaForm = $(this.selectors.root); + let $ctaRows = $ctaForm.find(this.selectors.rows); + try { + $ctaRows.sortable("destroy"); + } catch(e) {} + $ctaRows.empty(); + } } CHV.fn.album = { @@ -2843,7 +2988,7 @@ CHV.fn.album = { $embed_codes.removeClass("soft-hidden"); } }); - } + }, } CHV.fn.modal = { @@ -2910,6 +3055,7 @@ CHV.fn.listingViewer = { "KeyF": "flag", "KeyE": "edit", "KeyM": "move", + "KeyA": "create-album", "KeyO": "approve", "Delete": "delete", "Escape": "close", @@ -2920,6 +3066,7 @@ CHV.fn.listingViewer = { keymap: { select: [".", PF.fn._s("Toggle select")], like: ["L", PF.fn._s("Like")], + "create-album": ["A", PF.fn._s("Create album")], flag: ["F", PF.fn._s("Toggle flag")], edit: ["E", PF.fn._s("Edit")], move: ["M", PF.fn._s("Album")], @@ -2935,13 +3082,9 @@ CHV.fn.listingViewer = { $item: null, show: function () { var paramsHidden = PF.fn.deparam(this.$item.closest(PF.obj.listing.selectors.content_listing_visible).data("params-hidden")); - var cover = paramsHidden && "is_animated" in paramsHidden ? - paramsHidden.is_animated : - 0; this.getEl("root") .removeClass(this.selectors.rootHide.substring(1)) - .addClass(this.selectors.rootShow.substring(1)) - .attr("data-cover", cover); + .addClass(this.selectors.rootShow.substring(1)); $("body").addClass(this.selectors.bodyShown.substring(1)); var hammertime = new Hammer($(CHV.fn.listingViewer.selectors.root).get(0), { direction: Hammer.DIRECTION_VERTICAL, @@ -3035,24 +3178,11 @@ CHV.fn.listingViewer = { } var $tools = this.getItem().find(".list-item-image-tools[data-action='list-tools']"); this.getEl("tools").append($tools.html()); - var flagAdded = false; - $.each($tools.find("[data-action]"), function (i, v) { - var action = $(this).attr("data-action"); - var keymap = _this.keymap[action]; - if (typeof keymap == typeof undefined || (action === 'flag' && flagAdded)) { - return false; - } - $( - '
' + - keymap[0] + - "" + - PF.fn._s(keymap[1]) + - "
" - ).appendTo(_this.getEl("inputMap")); - if (action === "flag") { - flagAdded = true; - } + let $this = this; + this.getEl("tools").find(".list-tool[data-action]").each(function() { + $(this).attr("title", $(this).attr("title") + " ("+$this.keymap[$(this).attr("data-action")][0]+")"); }); + console.log('aaaa') this.placeholderSizing(); this.trickyLoad(); }, @@ -3066,6 +3196,7 @@ CHV.fn.listingViewer = { var object = this.getObject(true); var template = this.getEl("template").html(); var matches = template.match(/%(\S+)%/g); + console.log(object) if (matches) { $.each(matches, function (i, v) { var handle = v.slice(1, -1).split("."); @@ -4819,64 +4950,72 @@ CHV.fn.complete_image_edit = { }, }; -// Album edit -CHV.fn.before_album_edit = function (e) { - var modal_source = "[data-before-fn='CHV.fn.before_album_edit']"; - $("[data-action=album-switch]", modal_source).remove(); -}; -CHV.fn.submit_album_edit = function () { - var $modal = $(PF.obj.modal.selectors.root); +CHV.fn.albumEdit = { + before: function () { + var modal_source = "[data-before-fn='CHV.fn.albumEdit.before']"; + $("[data-action=album-switch]", modal_source).remove(); + var $enableCta = $(CHV.fn.ctaForm.selectors.enable, modal_source); + CHV.fn.ctaForm.destroy(); + if(CHV.fn.ctaForm.enable) { + $enableCta.prop("checked", true).trigger("change"); + } + }, + load: function() { + var $enableCta = $(CHV.fn.ctaForm.selectors.enable, PF.obj.modal.selectors.root); + if($enableCta.is(":checked")) { + $enableCta.prop("checked", true).trigger("change"); + } + }, + submit: function() { + var $modal = $(PF.obj.modal.selectors.root); + if (!$("[name=form-album-name]", $modal).val()) { + PF.fn.growl.call(PF.fn._s("You must enter the album name.")); + $("[name=form-album-name]", $modal).highlight(); + return false; + } + PF.obj.modal.form_data = { + action: "edit", + edit: "album", + editing: { + id: CHV.obj.resource.id, + name: $("[name=form-album-name]", $modal).val(), + privacy: $("[name=form-privacy]", $modal).val(), + description: $("[name=form-album-description]", $modal).val(), + cta_enable: + CHV.fn.ctaForm.enable, + cta: JSON.stringify(CHV.fn.ctaForm.array), + }, + }; + if (PF.obj.modal.form_data.editing.privacy == "password") { + PF.obj.modal.form_data.editing.password = $( + "[name=form-album-password]", + $modal + ).val(); + } - if (!$("[name=form-album-name]", $modal).val()) { - PF.fn.growl.call(PF.fn._s("You must enter the album name.")); - $("[name=form-album-name]", $modal).highlight(); - return false; - } - - PF.obj.modal.form_data = { - action: "edit", - edit: "album", - editing: { - id: CHV.obj.resource.id, - name: $("[name=form-album-name]", $modal).val(), - privacy: $("[name=form-privacy]", $modal).val(), - description: $("[name=form-album-description]", $modal).val(), - }, - }; - if (PF.obj.modal.form_data.editing.privacy == "password") { - PF.obj.modal.form_data.editing.password = $( - "[name=form-album-password]", - $modal - ).val(); - } - - return true; -}; -CHV.fn.complete_album_edit = { - success: function (XHR) { - var album = XHR.responseJSON.album; - - $("[data-text=album-name]").html(PF.fn.htmlEncode(album.name)); - $("[data-text=album-description]").html( - PF.fn.htmlEncode(album.description) - ); - CHV.fn.resource_privacy_toggle(album.privacy); - - var stock = CHV.obj.resource.type; - CHV.obj.resource.type = null; - CHV.fn.list_editor.updateItem($(PF.obj.listing.selectors.list_item, PF.obj.listing.selectors.content_listing_visible), XHR.responseJSON); - CHV.obj.resource.type = stock; - - $("[data-modal]").each(function () { - $("option[value=" + album.id_encoded + "]", this).text( - album.name + - (album.privacy !== "public" ? " (" + PF.fn._s("private") + ")" : "") + return true; + }, + complete: { + success: function (XHR) { + var album = XHR.responseJSON.album; + $("[data-text=album-name]").html(PF.fn.htmlEncode(album.name)); + $("[data-text=album-description]").html( + PF.fn.htmlEncode(album.description) ); - }); - - CHV.fn.common.updateDoctitle(album.name); - - PF.fn.growl.expirable(PF.fn._s("Album edited successfully.")); + CHV.fn.resource_privacy_toggle(album.privacy); + var stock = CHV.obj.resource.type; + CHV.obj.resource.type = null; + CHV.fn.list_editor.updateItem($(PF.obj.listing.selectors.list_item, PF.obj.listing.selectors.content_listing_visible), XHR.responseJSON); + CHV.obj.resource.type = stock; + $("[data-modal]").each(function () { + $("option[value=" + album.id_encoded + "]", this).text( + album.name + + (album.privacy !== "public" ? " (" + PF.fn._s("private") + ")" : "") + ); + }); + CHV.fn.common.updateDoctitle(album.name); + CHV.fn.ctaButtons.render(album.cta_html); + PF.fn.growl.expirable(PF.fn._s("Album edited successfully.")); + }, }, }; diff --git a/content/legacy/themes/Peafowl/lib/chevereto.min.js b/content/legacy/themes/Peafowl/lib/chevereto.min.js index 9c46715..95884e7 100644 --- a/content/legacy/themes/Peafowl/lib/chevereto.min.js +++ b/content/legacy/themes/Peafowl/lib/chevereto.min.js @@ -1,4 +1,4 @@ $(function(){function e(e){e=e.originalEvent;var t=!1;if(e.dataTransfer.types)for(var a=0;ae&&(a.height(e),a.closest(".antiscroll-wrap").antiscroll())}}function a(e){e.addClass("list-item-play-gif--loading");var t=e.closest(PF.obj.listing.selectors.list_item),a=$(".image-container",t),o=$("img",a),i=o.attr("src"),n=".md",s=i.lastIndexOf(n);if(-1==s)n=".th",s=i.lastIndexOf(n);var r=i.substr(0,s)+i.substr(s+n.length,i.length);a.append(a.html()),$load=t.find(".image-container img").eq(1).attr("src",r).addClass("hidden"),$load.imagesLoaded(function(){e.remove(),o.remove(),$("img",a).show(),$(this.elements).removeClass("hidden")})}function o(e,t){var a=$(e).closest(PF.obj.listing.selectors.list_item);CHV.fn.list_editor.blink(a),CHV.fn.list_editor.toggleSelectItem(a),PF.fn.keyFeedback.spawn(t),t.preventDefault(),t.stopPropagation()}var i,n=$(window).width();$(window).height();if($(window).resize(function(e){clearTimeout(i),i=setTimeout(function(){$("body#image").exists()&&n!=$(window).width()&&CHV.fn.image_viewer_full_fix(),CHV.fn.uploader.boxSizer(),CHV.fn.bindSelectableItems(),CHV.fn.listingViewer.placeholderSizing(),n=$(window).width(),$(window).height()},250)}),window.opener&&($(window).on("load",function(e){window.opener.postMessage({id:window.name,requestAction:"postSettings"},"*")}),$(window).on("message",function(e){var t=e.originalEvent.data;void 0!==t.id&&void 0!==t.settings&&window.name===t.id&&(CHV.obj.opener.uploadPlugin[t.id]=t.settings)})),$("#home-cover, #maintenance-wrapper, #login").exists()){var s=$("#maintenance-wrapper").exists()?$("#maintenance-wrapper").css("background-image").slice(4,-1).replace(/^\"|\"$/g,""):$(".home-cover-img","#home-cover-slideshow").first().attr("data-src");function r(){$("body").addClass("load"),$("#maintenance-wrapper").exists()||$(".home-cover-img","#home-cover-slideshow").first().css("background-image","url("+s+")").addClass("animate-in--alt").removeAttr("data-src"),setTimeout(function(){setTimeout(function(){$("body").addClass("loaded")},1200),setTimeout(function(){d()},7e3)},600)}var l=function(){setTimeout(function(){d()},8e3)};function d(){var e=$(".home-cover-img[data-src]","#home-cover-slideshow").first(),t=$(".home-cover-img","#home-cover-slideshow");if(0==e.length){if(1==t.length)return;t.first().removeClass("animate-in"),$("#home-cover-slideshow").append(t.first()),setTimeout(function(){$(".home-cover-img:last","#home-cover-slideshow").addClass("animate-in")},20),setTimeout(function(){$(".home-cover-img:not(:last)","#home-cover-slideshow").removeClass("animate-in")},4e3),l()}else{var a=e.attr("data-src");$("").attr("src",a).on("load error",function(){$(this).remove(),e.css("background-image","url("+a+")").addClass("animate-in").removeAttr("data-src"),setTimeout(function(){$(".home-cover-img:not(:last)","#home-cover-slideshow").removeClass("animate-end animate-in--alt")},2e3),l()})}}s?$("").attr("src",s).on("load error",function(){$(this).remove(),r()}):r()}var c,u=CHV.fn.uploader.selectors.root,m=CHV.fn.uploader.selectors.queue,f=$(u),p=$(m);if($(document).on("click","[data-action=top-bar-upload]",function(e){$("body").is("#upload")||"js"!==$(this).data("link")||CHV.fn.uploader.toggle({reset:!1}),"page"!==$(this).data("link")&&(e.preventDefault(),e.stopPropagation())}),$(document).on("click mouseover mouseout","[data-action=palette]",function(e){clearTimeout(c),e.preventDefault();var t=$(this).data("palette");switch(e.type){case"mouseover":c=setTimeout(function(){CHV.fn.Palettes.preview(t)},1e3);break;case"mouseout":t=$("html").attr("data-palette")||"",CHV.fn.Palettes.set(t);break;case"click":e.stopPropagation(),$("[data-action=palette]","[data-content=palettes]").removeClass("current"),$(this).addClass("current"),CHV.fn.Palettes.set(t),CHV.fn.Palettes.save()}}),$(document).on("change","#palettes",function(e){CHV.fn.Palettes.set(this.value),CHV.fn.Palettes.save()}),$("[data-action=close-upload]",f).click(function(){f.is(":animated")||$("[data-action=top-bar-upload]","#top-bar").trigger("click")}),$("[data-action=reset-upload]",f).click(function(){CHV.fn.uploader.isUploading&&$("[data-action=cancel-upload-remaining], [data-action=cancel-upload]",f).trigger("click"),CHV.fn.uploader.reset()}),$("[data-action=cancel-upload-remaining], [data-action=cancel-upload]",f).click(function(){CHV.fn.uploader.isUploading=!1,$("[data-action=cancel]",p).click(),Object.size(CHV.fn.uploader.results.success)>0?CHV.fn.uploader.displayResults():CHV.fn.uploader.reset()}),$(document).on("click","[data-action=upload-privacy]:not(disabled)",function(e){e.isDefaultPrevented()||(current_privacy=$(this).data("privacy"),target_privacy="public"==current_privacy?"private":"public",this_lock=$(".icon",this).data("lock"),this_unlock=$(".icon",this).data("unlock"),$(".icon",this).removeClass(this_lock+" "+this_unlock).addClass("public"==current_privacy?this_lock:this_unlock),$(this).data("privacy",target_privacy),$("[data-action=upload-privacy-copy]").html($("[data-action=upload-privacy]").html()),$upload_button=$("[data-action=upload]",f),$upload_button.text($upload_button.data(target_privacy)),$(this).tipTip("hide"))}),$(CHV.fn.uploader.selectors.file+", "+CHV.fn.uploader.selectors.camera).on("change",function(e){$(CHV.fn.uploader.selectors.root).data("shown")?CHV.fn.uploader.add(e):CHV.fn.uploader.toggle({callback:function(e){CHV.fn.uploader.add(e)}},e)}).on("click",function(e){!$(this).data("login-needed")||PF.fn.is_user_logged()}),$(CHV.fn.uploader.selectors.root).exists()&&($("body").on({dragenter:function(t){if(t.preventDefault(),!e(t))return!1;$(CHV.fn.uploader.selectors.dropzone).exists()||$("body").append($('
').css({width:"100%",height:"100%",position:"fixed",zIndex:1e3,left:0,top:0}))}}),$(document).on({dragover:function(t){if(t.preventDefault(),!e(t))return!1;$(CHV.fn.uploader.selectors.root).data("shown")||CHV.fn.uploader.toggle({reset:!1})},dragleave:function(e){$(CHV.fn.uploader.selectors.dropzone).remove(),$.isEmptyObject(CHV.fn.uploader.files)&&CHV.fn.uploader.toggle()},drop:function(e){e.preventDefault(),CHV.fn.uploader.add(e),$(CHV.fn.uploader.selectors.dropzone).remove()}},CHV.fn.uploader.selectors.dropzone)),$(document).on("keyup change","[data-action=resize-combo-input]",function(e){var t=$(this).closest("[data-action=resize-combo-input]"),a=$("[name=form-width]",t),o=$("[name=form-height]",t),i=a.data("initial")/o.data("initial"),n={width:Math.round(a.prop("value")/i),height:Math.round(o.prop("value")*i)};$(e.target).is(a)?o.prop("value",Math.round(n.width)):a.prop("value",Math.round(n.height))}),$(document).on("click",m+" [data-action=edit]",function(){for(var e=$(this).closest("li"),t=(e.closest("ul"),e.data("id")),a=CHV.fn.uploader.files[t],o=PF.obj.modal.selectors.root,i=$.extend({},a.formValues||a.parsedMeta),n=["album_id","category_id","nsfw"],s=0;se.height&&(n.height=e.height,n.width=Math.round(n.height*s)),n.width>e.width&&(n.width=e.width,n.height=Math.round(n.width/s)),$.each(i,function(e,t){var i="[name=form-"+e.replace(/_/g,"-")+"]",s=$(i,o);if(!s.exists())return!0;if(s.is(":checkbox"))s.prop("checked",s.attr("value")==t);else if(s.is("select")){var r=s.find("[value="+t+"]");r.exists()||(r=s.find("option:first")),r.prop("selected",!0)}else s.prop("value",t);if("width"==e||"height"==e){var l=n[e],d=a.parsedMeta[e]>l?l:a.parsedMeta[e];s.prop("max",d).data("initial",a.parsedMeta[e]).prop("value",d)}}),"image/gif"!==a.parsedMeta.mimetype&&$("[ data-content=animated-gif-warning]",o).remove(),$(".image-preview",o).append($("",{class:"canvas checkered-background"}));var r=$(".queue-item[data-id="+t+"] .preview .canvas")[0],l=$(".image-preview .canvas",o)[0];l.width=r.width,l.height=r.height;var d=l.getContext("2d");d.drawImage(r,0,0)},confirm:function(){if(PF.fn.form_modal_has_changed()){var e=!1;return $.each(["width","height"],function(t,a){var i=$("[name=form-"+a+"]",o),n=parseInt(i.val()),s=parseInt(i.attr("min")),r=parseInt(i.attr("max"));if(n>r||n-1&&CHV.fn.uploader.clipboardImages.splice(s,1)}delete CHV.fn.uploader.files[a],CHV.fn.uploader.queueSize(),0==Object.size(CHV.fn.uploader.files)?"success"in CHV.fn.uploader&&"results"in CHV.fn.uploader&&(0!=Object.size(CHV.fn.uploader.results.success)||0!=Object.size(CHV.fn.uploader.results.error))||CHV.fn.uploader.reset():i&&0!==$("li.waiting",t).first().length&&CHV.fn.uploader.upload($("li.waiting",t).first())}}),$(document).on("click","[data-action=upload]",function(){void 0!==CHV.obj.logged_user||!1!==$("#upload-tos").prop("checked")?($("[data-group=upload], [data-group=upload-queue-ready]",f).hide(),f.removeClass("queueReady").addClass("queueUploading").find("[data-group=uploading]").show(),CHV.fn.uploader.queueSize(),CHV.fn.uploader.canAdd=!1,$queue_items=$("li",p),$queue_items.addClass("uploading waiting"),CHV.fn.uploader.timestamp=(new Date).getTime(),CHV.fn.uploader.upload($queue_items.first("li"))):PF.fn.growl.call("You must agree to the terms and privacy policy")}),$("body#user").exists()&&PF.obj.listing.query_string.page>1){var g=History.getState();if(g.data&&void 0!==g.data.scrollTop)$(window).scrollTop()!==g.data.scrollTop&&$(window).scrollTop(g.data.scrollTop);else{var h=$("#background-cover").height()-160;$("html, body").animate({scrollTop:h},0)}}$("#top-bar-shade").exists()&&$("#top-bar-shade").css("opacity")&&$("#top-bar-shade").data("initial-opacity",Number($("#top-bar-shade").css("opacity"))),CHV.fn.bindSelectableItems(),$("body#image").exists()&&($(CHV.obj.image_viewer.selector+" [data-load=full]").length>0&&($(document).on("click",CHV.obj.image_viewer.loader,function(e){CHV.fn.viewerLoadImage()}),$(CHV.obj.image_viewer.loader).data("size")>CHV.obj.config.image.load_max_filesize.getBytes()?$(CHV.obj.image_viewer.loader).css("display","block"):CHV.fn.viewerLoadImage()),new MutationObserver(()=>{$("html").height()>$(window).innerHeight()&&!$("html").hasClass("scrollbar-y")&&($("html").addClass("scrollbar-y"),$(document).data({width:$(this).width(),height:$(this).height()}))}).observe(document,{childList:!0}),$(document).on("keyup",function(e){var t=$(e.target),a=e.originalEvent;if(!t.is(":input")&&CHV.obj.image_viewer.$navigation.exists()&&("ArrowLeft"==a.key||"ArrowRight"==a.key)){var o=$("[data-action="+("ArrowLeft"==a.key?"prev":"next")+"]",CHV.obj.image_viewer.$navigation).attr("href");void 0!==o&&""!==o&&(window.location=$("[data-action="+("ArrowLeft"==a.key?"prev":"next")+"]",CHV.obj.image_viewer.$navigation).attr("href"))}})),$(document).on("click",CHV.obj.image_viewer.container+" img",function(e){if($(this).hasClass("cursor-zoom-in")||$(this).hasClass("cursor-zoom-out")){var t=$(this).hasClass("cursor-zoom-in");if($(this).removeClass("cursor-zoom-in cursor-zoom-out"),t){var a,o=$(this).attr("width"),i=$(this).attr("height"),n=o/i;o>$(window).width()?($(this).css("width","100%"),a=$(this).width(),$(this).css("width",o)):a=$(this).attr("width"),$(this).addClass("cursor-zoom-out").css({width:a,height:a/n+"px"}),$("#image-viewer-container").css("height","")}else $(this).addClass("cursor-zoom-in"),image_viewer_full_fix();e.preventDefault()}}).on("contextmenu",CHV.obj.image_viewer.container,function(e){if(!CHV.obj.config.image.right_click)return e.preventDefault(),!1}),$(document).on("contextmenu","html.device-mobile a.image-container",function(e){e.preventDefault(),e.stopPropagation()}),$(document).on("keyup","input[data-dashboard-tool]",function(e){if(13==e.keyCode){var t=$("[data-action="+$(this).data("dashboard-tool")+"]");t.click()}}),$(document).on("click","[data-action=dashboardTool]",function(e){e.preventDefault();var t=$(this).data("tool"),a=$(this).data("data"),o=$.extend({},a),i={};for(var n in o){var s=$(o[n]).val();if($(o[n]).prop("disabled")||!s)return;i[n]=$(o[n]),o[n]=s}o.action=t;var r={type:"GET",cache:!1};r.data=o;var l,d=$(this).closest(".input-label"),c=!0;if(0!=c){for(var n in i);PF.fn.loading.inline($(".loading",d),{size:"small",valign:"middle"}),d.find(".btn .text").hide(),$.ajax(r).complete(function(e){var t=e.responseJSON;$(".loading",d).empty(),d.find(".btn .text").show(),200!=t.status_code||void 0===t.success.redirURL?PF.fn.growl.call(t[200==t.status_code?"success":"error"].message):window.location.href=t.success.redirURL})}else PF.fn.growl.expirable(l)}),$(document).on("click","[data-action=openerPostMessage]",function(e){if(window.opener){e.preventDefault();var t="data-action-target",a=$($(this).is("["+t+"]")?$(this).attr(t):this),o=a[a.is(":input")?"val":"html"]();window.opener.postMessage({id:window.name,message:o},"*")}}),$(document).on("click","[data-action=list-tools] [data-action]",function(e){var t=$(e.target),a=t.closest("[data-id]");a&&a.find("[data-action=select]").exists()&&(e.ctrlKey||e.metaKey)&&e.altKey&&(CHV.fn.list_editor.toggleSelectItem(a,!a.hasClass("selected")),e.preventDefault(),e.stopPropagation())}),PF.fn.listing.ajax.callback=function(e){200===e.status&&CHV.fn.list_editor.listMassActionSet("select")},$(document).on("click","[data-action=list-select-all]",function(e){if($(this).closest(".disabled").exists())return!1;CHV.fn.list_editor.selectAll(e)}),$(document).on("click","[data-action=list-clear-all]",function(){CHV.fn.list_editor.clearSelection()}),$(document).on("click","[data-action=share]",function(e){var t,a,o,i,n,s;t=$(".viewer:visible").exists()?$(PF.obj.listing.selectors.list_item+"[data-id="+$(".viewer").attr("data-id")+"]",".content-listing").first():$(this).closest(PF.obj.listing.selectors.list_item).first();var r="#modal-share";if(t.exists()){if(s=CHV.fn.modal.getTemplateWithPreview(r,t),void 0===t.attr("data-type"))return void console.log("Error: data-type not defined");n=t.find(".list-item-desc-title-link").first(),o=t.find(".image-container img").first().attr("src"),a=t.attr("data-url-short")}else s=$(r).html(),dealing_with=CHV.obj.resource.type,a=window.location.href,o=$("#image-viewer-container").find("img").first().attr("src"),n=$(".header > h1 > a");i=PF.fn.htmlEncode(n.text());var l=t.data("privacy")||CHV.obj.resource.privacy,d="";switch(l){case"private_but_link":d=PF.fn._s("Note: This content is private but anyone with the link will be able to see this.");break;case"password":d=PF.fn._s("Note: This content is password protected. Remember to pass the content password to share.");break;case"private":d=PF.fn._s('Note: This content is private. Change privacy to "public" to share.')}s=s.replaceAll("__url__",a).replaceAll("__image__",o).replaceAll("__title__",i).replaceAll("__privacy__",l).replaceAll("__privacy_notes__",d),PF.fn.modal.call({type:"html",buttons:!1,template:s})}),$(document).on("click","[data-action=list-tools] [data-action]",function(e){if(e.isPropagationStopped())return!1;var t;t=$(".viewer:visible").exists()?$(PF.obj.listing.selectors.list_item+"[data-id="+$(".viewer").attr("data-id")+"]",".content-listing").first():$(this).closest(PF.obj.listing.selectors.list_item).first();var a=t.attr("data-id");if(void 0!==t.attr("data-type")){o=t.attr("data-type");var o,i=$("[data-type="+o+"][data-id="+a+"]");switch($(this).data("action")){case"select":CHV.fn.list_editor.toggleSelectItem(t,!t.hasClass("selected"));break;case"edit":var n="[data-modal=form-edit-single]";switch(o){case"image":$("[name=form-image-title]",n).attr({value:t.attr("data-title"),autocomplete:"off"}),$("[name=form-image-description]",n).html(PF.fn.htmlEncode(t.data("description"))),$("[name=form-album-id]",n).find("option").removeAttr("selected"),$("[name=form-album-id]",n).find("[value="+t.data("image"==o?"album-id":"id")+"]").attr("selected",!0),$("[name=form-category-id]",n).find("option").removeAttr("selected"),$("[name=form-category-id]",n).find("[value="+t.data("category-id")+"]").attr("selected",!0),$("[name=form-nsfw]",n).attr("checked","unsafe"==t.data("flag")),$("[name=form-album-name]",n).attr({value:"",autocomplete:"off"}),$("[name=form-album-description]",n).html(""),$("[name=form-privacy]",n).find("option").removeAttr("selected");break;case"album":$("[data-action=album-switch]",n).remove(),$("[name=form-album-name]",n).attr({value:t.data("name"),autocomplete:"off"}),$("[name=form-album-description]",n).html(PF.fn.htmlEncode(t.data("description"))),$("[name=form-privacy]",n).find("option").removeAttr("selected"),$("[name=form-privacy]",n).find("[value="+t.data("privacy")+"]").attr("selected",!0),"password"==t.data("privacy")?($("[data-combo-value=password]").show(),$("[name=form-album-password]",n).attr("value",t.data("password"))):($("[data-combo-value=password]").hide(),$("[name=form-album-password]",n).attr("value",""))}PF.fn.modal.call({type:"html",template:CHV.fn.modal.getTemplateWithPreview(n,t),ajax:{url:PF.obj.config.json_api,deferred:{success:function(e){CHV.fn.list_editor.updateItem("[data-type="+o+"][data-id="+a+"]",e.responseJSON[o],"edit")}}},confirm:function(){var e=$(PF.obj.modal.selectors.root);if(("image"==o||"album"==o)&&$("[data-content=form-new-album]",e).is(":visible")&&""==$("[name=form-album-name]",e).val())return PF.fn.growl.call(PF.fn._s("You must enter the album name.")),$("[name=form-album-name]",e).highlight(),!1;if(PF.fn.form_modal_has_changed()){switch(PF.obj.modal.form_data={action:"edit",edit:t.data("type"),single:!0,owner:CHV.obj.resource.user.id,editing:{id:a,description:$("[name=form-"+o+"-description]",e).val()}},o){case"image":PF.obj.modal.form_data.editing.title=$("[name=form-image-title]",e).val(),PF.obj.modal.form_data.editing.category_id=$("[name=form-category-id]",e).val()||null,PF.obj.modal.form_data.editing.nsfw=$("[name=form-nsfw]",e).prop("checked")?1:0;break;case"album":PF.obj.modal.form_data.editing.name=$("[name=form-album-name]",e).val(),PF.obj.modal.form_data.editing.privacy=$("[name=form-privacy]",e).val(),"password"==PF.obj.modal.form_data.editing.privacy&&(PF.obj.modal.form_data.editing.password=$("[name=form-album-password]",e).val())}return PF.obj.modal.form_data.editing.new_album=$("[data-content=form-new-album]",e).is(":visible"),PF.obj.modal.form_data.editing.new_album?(PF.obj.modal.form_data.editing.album_name=$("[name=form-album-name]",e).val(),PF.obj.modal.form_data.editing.album_privacy=$("[name=form-privacy]",e).val(),"password"==PF.obj.modal.form_data.editing.album_privacy&&(PF.obj.modal.form_data.editing.album_password=$("[name=form-album-password]",e).val()),PF.obj.modal.form_data.editing.album_description=$("[name=form-album-description]",e).val()):PF.obj.modal.form_data.editing.album_id=$("[name=form-album-id]",e).val(),!0}PF.fn.modal.close()}});break;case"create-album":case"move":var s="move"==$(this).data("action")?"form-move-single":"form-create-album";n="[data-modal="+s+"]";$("[name=form-album-id]",n).find("option").removeAttr("selected"),$("[name=form-album-id]",n).find("[value="+t.data("image"==o?"album-id":"id")+"]").attr("selected",!0),$("[name=form-album-name]",n).attr({value:"",autocomplete:"off"}),$("[name=form-album-description]",n).html(""),$("[name=form-privacy]",n).find("option").removeAttr("selected"),PF.fn.modal.call({type:"html",template:CHV.fn.modal.getTemplateWithPreview(n,i),ajax:{url:PF.obj.config.json_api,deferred:{success:function(e){CHV.fn.list_editor.updateMoveItemLists(e.responseJSON,o,i)}}},load:function(){},confirm:function(){var e=$(PF.obj.modal.selectors.root);return $("[data-content=form-new-album]",e).is(":visible")&&""==$("[name=form-album-name]",e).val()?(PF.fn.growl.call(PF.fn._s("You must enter the album name.")),$("[name=form-album-name]",e).highlight(),!1):PF.fn.form_modal_has_changed()?(PF.obj.modal.form_data={action:"edit",edit:t.data("type"),single:!0,owner:CHV.obj.resource.user.id,editing:{id:a}},PF.obj.modal.form_data.editing.new_album=$("[data-content=form-new-album]",e).is(":visible"),PF.obj.modal.form_data.editing.new_album?(PF.obj.modal.form_data.editing.album_name=$("[name=form-album-name]",e).val(),PF.obj.modal.form_data.editing.album_privacy=$("[name=form-privacy]",e).val(),"password"==PF.obj.modal.form_data.editing.album_privacy&&(PF.obj.modal.form_data.editing.album_password=$("[name=form-album-password]",e).val()),PF.obj.modal.form_data.editing.album_description=$("[name=form-album-description]",e).val()):PF.obj.modal.form_data.editing.album_id=$("[name=form-album-id]",e).val(),!0):void PF.fn.modal.close()}});break;case"approve":PF.fn.modal.call({type:"html",template:CHV.fn.modal.getTemplateWithPreview("[data-modal=form-approve-single]",t),button_submit:PF.fn._s("Confirm"),ajax:{url:PF.obj.config.json_api,deferred:{success:function(e){CHV.fn.list_editor.removeFromList(t,PF.fn._s("The content has been approved."))}}},confirm:function(){return PF.obj.modal.form_data={action:"approve",single:!0,approve:t.data("type"),approving:{id:a}},!0}});break;case"delete":PF.fn.modal.call({type:"html",template:CHV.fn.modal.getTemplateWithPreview("[data-modal=form-delete-single]",t),button_submit:PF.fn._s("Confirm"),ajax:{url:PF.obj.config.json_api,deferred:{success:function(e){"album"==o&&($("[name=form-album-id]","[data-modal]").find("[value="+a+"]").remove(),CHV.fn.list_editor.updateUserCounters("image",e.responseJSON.success.affected,"-")),CHV.fn.list_editor.deleteFromList(t),CHV.fn.listingViewer.close()}}},confirm:function(){return PF.obj.modal.form_data={action:"delete",single:!0,delete:t.data("type"),deleting:{id:a}},!0}});break;case"flag":$.ajax({type:"POST",data:{action:"edit",edit:"image",single:!0,editing:{id:a,nsfw:"unsafe"==t.data("flag")?0:1}}}).complete(function(e){var t=e.responseJSON;if(200==t.status_code){var a=1==t.image.nsfw?"unsafe":"safe";i.attr("data-flag",a).data("flag",a)}else PF.fn.growl.call(t.error.message);CHV.fn.list_editor.selectionCount()})}}else console.log("Error: data-type not defined")}),$(".pop-box-menu a","[data-content=list-selection]").click(function(e){var t=$(PF.obj.listing.selectors.content_listing_visible);if(void 0!==t.data("list")){dealing_with=t.data("list");var a=$(PF.obj.listing.selectors.list_item+".selected",t),o=$.map(a,function(e,t){return $(e).data("id")});switch(PF.fn.close_pops(),"list-select-all"!==$(this).data("action")&&e.stopPropagation(),$(this).data("action")){case"get-embed-codes":var i="[data-modal=form-embed-codes]",n=[];$("textarea",i).html(""),a.each(function(){var e={image:JSON.parse(decodeURIComponent($(this).data("object")))};"url"in e.image&&n.push(e)}),CHV.fn.fillEmbedCodes(n,i,"html"),PF.fn.modal.call({type:"html",template:CHV.fn.modal.getTemplateWithPreviews(i,a),buttons:!1});break;case"clear":CHV.fn.list_editor.clearSelection();break;case"list-select-all":CHV.fn.list_editor.selectAll(e);break;case"move":case"create-album":i="move"==$(this).data("action")?"form-move-multiple":"form-create-album";var s="[data-modal="+i+"]",r=/image/.test(dealing_with)?"album-id":"id";$("[name=form-album-id]",s).find("[value=null]").remove(),$("[name=form-album-id]",s).find("option").removeAttr("selected"),$("[name=form-album-name]",s).attr({value:"",autocomplete:"off"}),$("[name=form-album-description]",s).html(""),$("[name=form-privacy]",s).find("option").removeAttr("selected");var l=a.first().data(r),d=!0;a.each(function(){if($(this).data(r)!==l)return d=!1,!1}),d||$("[name=form-album-id]",s).prepend('"),$("[name=form-album-id]",s).find("[value="+(d?a.first().data(r):"null")+"]").attr("selected",!0),PF.fn.modal.call({type:"html",template:CHV.fn.modal.getTemplateWithPreviews(s,a),ajax:{url:PF.obj.config.json_api,deferred:{success:function(e){CHV.fn.list_editor.updateMoveItemLists(e.responseJSON,dealing_with,a)}}},load:function(){},confirm:function(){var e=$(PF.obj.modal.selectors.root),t=!1;if($("[data-content=form-new-album]",e).is(":visible")&&""==$("[name=form-album-name]",e).val())return PF.fn.growl.call(PF.fn._s("You must enter the album name.")),$("[name=form-album-name]",e).highlight(),!1;if($("[data-content=form-new-album]",e).is(":visible")&&(t=!0),PF.fn.form_modal_has_changed()){return PF.obj.modal.form_data={action:t?"create-album":"move",type:dealing_with,owner:CHV.obj.resource.user.id,multiple:!0,album:{ids:o,new:t}},t?(PF.obj.modal.form_data.album.name=$("[name=form-album-name]",e).val(),PF.obj.modal.form_data.album.privacy=$("[name=form-privacy]",e).val(),"password"==PF.obj.modal.form_data.album.privacy&&(PF.obj.modal.form_data.album.password=$("[name=form-album-password]",e).val()),PF.obj.modal.form_data.album.description=$("[name=form-album-description]",e).val()):PF.obj.modal.form_data.album.id=$("[name=form-album-id]",e).val(),!0}PF.fn.modal.close()}});break;case"approve":PF.fn.modal.call({template:CHV.fn.modal.getTemplateWithPreviews("[data-modal=form-approve-multiple]",a),button_submit:PF.fn._s("Confirm"),ajax:{url:PF.obj.config.json_api,deferred:{success:function(e){CHV.fn.list_editor.removeFromList(a,PF.fn._s("The content has been approved."))}}},confirm:function(){return PF.obj.modal.form_data={action:"approve",from:"list",approve:dealing_with,multiple:!0,approving:{ids:o}},!0}});break;case"delete":PF.fn.modal.call({template:CHV.fn.modal.getTemplateWithPreviews("[data-modal=form-delete-multiple]",a),button_submit:PF.fn._s("Confirm"),ajax:{url:PF.obj.config.json_api,deferred:{success:function(e){"albums"==dealing_with&&(a.each(function(){$("[name=form-album-id]","[data-modal]").find("[value="+$(this).data("id")+"]").remove()}),CHV.fn.list_editor.updateUserCounters("image",e.responseJSON.success.affected,"-")),CHV.fn.list_editor.deleteFromList(a)}}},confirm:function(){return PF.obj.modal.form_data={action:"delete",from:"list",delete:dealing_with,multiple:!0,deleting:{ids:o}},!0}});break;case"assign-category":var c=a.first().data("category-id"),u=!0;a.each(function(){if($(this).data("category-id")!==c)return u=!1,!1}),PF.fn.modal.call({type:"html",template:CHV.fn.modal.getTemplateWithPreviews("[data-modal=form-assign-category]",a),forced:!0,ajax:{url:PF.obj.config.json_api,deferred:{success:function(e){a.each(function(){var t=e.responseJSON;$(this).data("category-id",t.category_id)}),CHV.fn.list_editor.clearSelection()}}},confirm:function(){var e=$(PF.obj.modal.selectors.root),t=$("[name=form-category-id]",e).val()||null;return u&&c==t?(PF.fn.modal.close(function(){CHV.fn.list_editor.clearSelection()}),!1):(PF.obj.modal.form_data={action:"edit-category",from:"list",multiple:!0,editing:{ids:o,category_id:t}},!0)}});break;case"flag-safe":case"flag-unsafe":var m=$(this).data("action"),f="flag-safe"==m?"safe":"unsafe";PF.fn.modal.call({template:CHV.fn.modal.getTemplateWithPreviews("[data-modal=form-"+m+"]",a),button_submit:PF.fn._s("Confirm"),ajax:{url:PF.obj.config.json_api,deferred:{success:function(e){a.each(function(){$(this).removeClass("safe unsafe").addClass(f).removeAttr("data-flag").attr("data-flag",f).data("flag",f)}),CHV.fn.list_editor.clearSelection()}}},confirm:function(){return PF.obj.modal.form_data={action:m,from:"list",multiple:!0,editing:{ids:o,nsfw:"flag-safe"==m?0:1}},!0}})}return!PF.fn.isDevice(["phone","phablet"])&&void 0}console.log("Error: data-list not defined")}),$(document).on("click","[data-action=disconnect]",function(){var e=$(this),t=e.data("connection");PF.fn.modal.confirm({message:e.data("confirm-message"),ajax:{data:{action:"disconnect",disconnect:t,user_id:CHV.obj.resource.user.id},deferred:{success:function(e){var a=e.responseJSON;$("[data-connection="+t+"]").fadeOut(function(){$($("[data-connect="+t+"]")).fadeIn(),$(this).remove(),0==$("[data-connection]").length&&$("[data-content=empty-message]").show(),PF.fn.growl.expirable(a.success.message)}),""!==a.success.redirect&&(window.location.href=a.success.redirect)},error:function(e){var t=e.responseJSON;PF.fn.growl.call(t.error.message)}}}})}),$(document).on("click","[data-action=delete-avatar]",function(){var e=$(".user-settings-avatar"),t=$(".loading-placeholder",e),a=$("#top-bar");t.removeClass("hidden"),PF.fn.loading.inline(t,{center:!0}),$.ajax({type:"POST",data:{action:"delete",delete:"avatar",owner:CHV.obj.resource.user.id}}).complete(function(o){t.addClass("hidden").empty(),200==o.status?(CHV.obj.logged_user.id==CHV.obj.resource.user.id&&($("img.user-image",a).hide(),$(".default-user-image",a).removeClass("hidden")),$(".default-user-image",e).removeClass("hidden").css({opacity:0}),$('[data-action="delete-avatar"]',e).parent().addClass("soft-hidden"),$("img.user-image",e).fadeOut(function(){$(".default-user-image",e).animate({opacity:1})})):PF.fn.growl.expirable(PF.fn._s("An error occurred. Please try again later."))})}),$(document).on("change","[data-content=user-avatar-upload-input]",function(e){e.preventDefault(),e.stopPropagation();var t=$(this),a=$(".user-settings-avatar"),o=$(".loading-placeholder",".user-settings-avatar"),i=$("#top-bar"),n=$(this)[0].files[0];if(!t.data("uploading"))if(0!=/^image\/.*$/.test(n.type))if(n.size>CHV.obj.config.user.avatar_max_filesize.getBytes())PF.fn.growl.call(PF.fn._s("Please select a picture of at most %s size.",CHV.obj.config.user.avatar_max_filesize));else{var s=$('[data-action="delete-avatar"]');o.removeClass("hidden"),PF.fn.loading.inline(o,{center:!0}),t.data("uploading",!0);var r=new FormData;r.append("source",n),r.append("action","upload"),r.append("type","file"),r.append("what","avatar"),r.append("owner",CHV.obj.resource.user.id),r.append("auth_token",PF.obj.config.auth_token),avatarXHR=new XMLHttpRequest,avatarXHR.open("POST",PF.obj.config.json_api,!0),avatarXHR.send(r),avatarXHR.onreadystatechange=function(){if(4==this.readyState){var e="json"!==this.responseType?JSON.parse(this.response):this.response,n=e.success.image;o.addClass("hidden").empty(),200==this.status?(change_avatar=function(e){s.parent().removeClass("soft-hidden"),$("img.user-image",e).attr("src",n.url).removeClass("hidden").show()},hide_default=function(e){$(".default-user-image",e).addClass("hidden")},hide_default(a), -$(".btn-alt",a).closest("div").show(),change_avatar(a),CHV.obj.logged_user.id==CHV.obj.resource.user.id&&(change_avatar(i),hide_default(i)),PF.fn.growl.expirable(PF.fn._s("Profile image updated."))):PF.fn.growl.expirable(PF.fn._s("An error occurred. Please try again later.")),t.data("uploading",!1)}}}else PF.fn.growl.call(PF.fn._s("Please select a valid image file type."))}),$(document).on("change","[data-content=user-background-upload-input]",function(e){e.preventDefault(),e.stopPropagation();var t=$(this),a=$("[data-content=user-background-cover]"),o=$("[data-content=user-background-cover-src]"),i=$(".loading-placeholder",a),n=($("#top-bar"),$(this)[0].files[0]);if(!t.data("uploading"))if(0!=/^image\/.*$/.test(n.type))if(n.size>CHV.obj.config.user.background_max_filesize.getBytes())PF.fn.growl.call(PF.fn._s("Please select a picture of at most %s size.",CHV.obj.config.user.background_max_filesize));else{i.removeClass("hidden"),PF.fn.loading.inline(i,{center:!0,size:"big",color:"#FFF"}),t.data("uploading",!0);var s=new FormData;s.append("source",n),s.append("action","upload"),s.append("type","file"),s.append("what","background"),s.append("owner",CHV.obj.resource.user.id),s.append("auth_token",PF.obj.config.auth_token),avatarXHR=new XMLHttpRequest,avatarXHR.open("POST",PF.obj.config.json_api,!0),avatarXHR.send(s),avatarXHR.onreadystatechange=function(){if(4==this.readyState){var e="json"!==this.responseType?JSON.parse(this.response):this.response,n=e.success.image;if(200==this.status){var s=$("");s.attr("src",n.url).imagesLoaded(function(){i.addClass("hidden").empty(),o.css("background-image","url("+n.url+")").hide().fadeIn(),$("[data-content=user-change-background]",a).removeClass("hidden"),$(a).removeClass("no-background"),$(".top-user").removeClass("no-background"),$("[data-content=user-upload-background]").hide(),$("[data-content=user-change-background]").show(),PF.fn.growl.expirable(PF.fn._s("Profile background image updated.")),s.remove()})}else i.addClass("hidden").empty(),PF.fn.growl.expirable(PF.fn._s("An error occurred. Please try again later."));t.data("uploading",!1)}}}else PF.fn.growl.call(PF.fn._s("Please select a valid image file type."))}),CHV.fn.user_background={delete:{submit:function(){return PF.obj.modal.form_data={action:"delete",delete:"background",owner:CHV.obj.resource.user.id},!0},deferred:{success:{before:function(e){$("[data-content=user-background-cover-src]").css("background-image","none"),$("[data-content=user-background-cover], .top-user").addClass("no-background"),$("[data-content=user-background-cover]").height(""),$("[data-content=user-upload-background]").removeClass("hidden").show(),$("[data-content=user-change-background]").hide()},done:function(e){PF.fn.modal.close(function(){PF.fn.growl.expirable(PF.fn._s("Profile background image deleted."))})}},error:function(e){PF.fn.growl.expirable(PF.fn._s("Error deleting profile background image."))}}}},CHV.fn.user_api={delete:{submit:function(){return PF.obj.modal.form_data={action:"delete",delete:"api_key",owner:CHV.obj.resource.user.id},!0},deferred:{success:{before:function(e){},done:function(e){PF.fn.modal.close(function(){location.reload()})}},error:function(e){PF.fn.growl.expirable(e.responseJSON.error.message)}}}},CHV.fn.user_two_factor={delete:{submit:function(){return PF.obj.modal.form_data={action:"delete",delete:"two_factor",owner:CHV.obj.resource.user.id},!0},deferred:{success:{before:function(e){},done:function(e){PF.fn.modal.close(function(){location.reload()})}},error:function(e){PF.fn.growl.expirable(e.responseJSON.error.message)}}}},CHV.str.mainform="[data-content=main-form]",CHV.obj.timezone={selector:"[data-content=timezone]",input:"#timezone-region"},$(document).on("keyup change",CHV.str.mainform+" :input",function(){$(this).is("[name=username]")&&$("[data-text=username]").text($(this).val())}),$(document).on("change",CHV.obj.timezone.input,function(){var e=$(this).val(),t=$("#timezone-combo-"+e);t.find("option:first").prop("selected",!0),$(CHV.obj.timezone.selector).val(t.val()).change()}),$(document).on("change","[id^=timezone-combo-]",function(){var e=$(this).val();$(CHV.obj.timezone.selector).val(e).change()}),$(document).on("keyup change blur","[name^=new-password]",function(){var e=$("[name=new-password]"),t=$("[name=new-password-confirm]"),a=e.val()==t.val(),o=t.closest(".input-password").find(".input-warning");0==o.exists()&&(o=$("[data-message=new-password-confirm]")),$(this).is(t)&&t.data("touched",!0),t.data("touched")&&o.text(a?"":o.data("text"))[a?"addClass":"removeClass"]("hidden-visibility")}),$(document).on("submit",CHV.obj.mainform,function(){switch($(this).data("type")){case"password":var e=$("[name=new-password]",this),t=$("[name=new-password-confirm]",this);if((""!==e.val()||""!==t.val())&&e.val()!==t.val())return e.highlight(),t.highlight(),PF.fn.growl.expirable(PF.fn._s("Passwords don't match")),!1}}),$(document).on("click","[data-action=check-for-updates]",function(){PF.fn.loading.fullscreen(),CHV.fn.system.checkUpdates(function(e){if(PF.fn.loading.destroy("fullscreen"),200===e.status){var t=e.responseJSON.software;-1==PF.fn.versionCompare(CHV.obj.system_info.version,t.current_version)?PF.fn.modal.simple({title:' '+PF.fn._s("Update available v%s",t.current_version),message:"

"+PF.fn._s("There is an update available for this system.")+'

",html:!0}):PF.fn.growl.call(PF.fn._s("This website is running latest %s version",CHEVERETO.edition))}else PF.fn.growl.call(PF.fn._s("An error occurred. Please try again later."))})}),void 0!==PF.fn.get_url_var("checkUpdates")&&$("[data-action=check-for-updates]").click(),$(document).on("click","[data-action=system-update]",function(e){if(!$("input#system-update").prop("checked"))return PF.fn.growl.call(PF.fn._s("Please review the system requirements before proceeding")),void e.preventDefault()}),$(document).on("click","[data-action=toggle-storage-https]",function(){CHV.fn.storage.toggleHttps($(this).closest("[data-content=storage]").data("storage-id"))}),$(document).on("click","[data-action=toggle-storage-active]",function(){CHV.fn.storage.toggleActive($(this).closest("[data-content=storage]").data("storage-id"))}),$(CHV.fn.uploader.selectors.root).exists()&&(CHV.fn.uploader.$pasteCatcher=$("
",{contenteditable:"true",id:CHV.fn.uploader.selectors.paste.replace(/#/,"")}),$("body").append(CHV.fn.uploader.$pasteCatcher),$(document).on("keydown",function(e){!e.ctrlKey&&!e.metaKey||"KeyV"!=e.originalEvent.code||$(e.target).is(":input")||(PF.fn.keyFeedback.spawn(e),CHV.fn.uploader.$pasteCatcher.focus(e))}),document.addEventListener("dragover",function(e){e.preventDefault()}),document.addEventListener("drop",function(e){if(CHV.obj.config.upload.url){e.preventDefault();var t,a=e.dataTransfer.getData("text/html"),o=/src="?([^"\s]+)"?\s*/;t=o.exec(a),t&&(CHV.fn.uploader.toggle({show:!0}),CHV.fn.uploader.add({},t[1]))}}),window.addEventListener("paste",CHV.fn.uploader.pasteImageHandler)),$(document).on("click","[data-action=like]",function(){if(PF.fn.is_user_logged()){var e=$(this);if(!e.data("XHR")){e.data("XHR",!0);var t=$(this).is("[data-liked]")?$(this):$(this).closest("[data-liked]"),a=!t.closest("[data-list], .viewer").exists()&&void 0!==CHV.obj.resource,o=t.is("[data-liked=1]"),i=o?"dislike":"like",n={id:a?CHV.obj.resource.id:$(this).closest("[data-id]").attr("data-id"),type:a?CHV.obj.resource.type:$(this).closest("[data-type]").attr("data-type")},s=a?e:$("[data-type="+n.type+"][data-id="+n.id+"]"),r={type:"POST",data:{action:i},cache:!1};r.data[i]={object:n.type,id:n.id},$.ajax(r).complete(function(t){var i=t.responseJSON;e.data("XHR",!1),200===i.status_code?(a&&void 0!==i.content&&$("[data-text=likes-count]").html(i.content.likes),s.attr("data-liked",o?0:1)):PF.fn.growl.expirable(PF.fn._s("An error occurred. Please try again later."))})}}else window.location.href=CHV.obj.vars.urls.login}),$(document).on("click","[data-action=album-cover]",function(){var e=$(this);if(!e.data("XHR")){e.data("XHR",!0);var t=$(this).is("[data-cover]")?$(this):$(this).closest("[data-cover]"),a=t.is("[data-cover=1]"),o=a?"album-cover-unset":"album-cover-set",i=(CHV.obj.resource.id,e.closest("[data-cover]")),n={type:"POST",data:{action:o},cache:!1};n.data[o]={album_id:i.data("album-id"),image_id:i.data("id")},$.ajax(n).complete(function(t){var o=t.responseJSON;e.data("XHR",!1),200===o.status_code?i.attr("data-cover",a?0:1):PF.fn.growl.expirable(PF.fn._s("An error occurred. Please try again later."))})}}),$(document).on("click","[data-action=follow]",function(){if(PF.fn.is_user_logged()){var e=$(this);if(!e.data("XHR")){e.data("XHR",!0);var t=$(this).is("[data-followed]")?$(this):$(this).closest("[data-followed]"),a=void 0!==CHV.obj.resource,o=t.is("[data-followed=1]"),i=o?"unfollow":"follow",n={id:a?CHV.obj.resource.id:$(this).closest("[data-id]").data("id"),type:a?CHV.obj.resource.type:$(this).closest("[data-type]").data("type")},s={type:"POST",data:{action:i},cache:!1};s.data[i]={object:n.type,id:n.id},$.ajax(s).complete(function(i){var n=i.responseJSON;if(e.data("XHR",!1),200===n.status_code){if(a&&void 0!==n.user_followed){var s=$("[data-text=followers-label]"),r={single:s.data("label-single"),plural:s.data("label-plural")};$("[data-text=followers-count]").html(n.user_followed.followers),s.html(PF.fn._n(r.single,r.plural,n.user_followed.followers))}t.attr("data-followed",o?0:1)}else PF.fn.growl.expirable(PF.fn._s("An error occurred. Please try again later."))})}}else PF.fn.modal.call({type:"login"})}),$(document).on("click","[data-action=user_ban],[data-action=user_unban]",function(){var e=$(this);if(!e.data("XHR")){e.data("XHR",!0);var t=$(this).closest("[data-banned]"),a=!0,o=t.is("[data-banned=1]"),i=e.attr("data-action"),n={id:a?CHV.obj.resource.id:$(this).closest("[data-id]").data("id"),type:a?CHV.obj.resource.type:$(this).closest("[data-type]").data("type")},s={type:"POST",data:{action:i},cache:!1};s.data[i]={user_id:n.id},$.ajax(s).complete(function(a){var i=a.responseJSON;e.data("XHR",!1),200===i.status_code?t.attr("data-banned",o?0:1):PF.fn.growl.expirable(PF.fn._s("An error occurred. Please try again later."))})}}),$(document).on("click","[data-action=top-bar-notifications]",function(e){var a=this,o=$(this),i=$(".top-bar-notifications-container",o),n=$(".top-bar-notifications-list",o),s=$("ul",n),r=$(".loading",i);o.data("XHR")||(r.removeClass("hidden"),PF.fn.loading.inline(r,{size:"small",message:PF.fn._s("loading")}),$.ajax({type:"POST",data:{action:"notifications"},cache:!1}).complete(function(e){var l=e.responseJSON;if(200!==l.status_code)return PF.fn.growl.expirable(PF.fn._s("An error occurred. Please try again later.")),o.data("XHR",!1),void r.addClass("hidden").html("");if(o.data("XHR",!0),r.remove(),l.html){n.removeClass("hidden"),s.html(l.html),t();var d=$("li.new",s);d.addClass("transition"),setTimeout(function(){d.removeClass("new"),$("[data-content=notifications-counter]",a).removeClass("on").html("0"),setTimeout(function(){d.removeClass("transition")},150)},1500)}else $(".empty",i).removeClass("hidden")}))}),$("#g-recaptcha").is(":empty")&&CHV.obj.config.captcha.enabled&&CHV.obj.config.captcha.sitekey&&("3"!=CHV.obj.config.captcha.version&&CHV.obj.config.captcha.isNeeded||$('label[for="recaptcha_response_field"]').remove()),$(document).on("click",PF.obj.listing.selectors.list_item+" a.image-container",function(e){var t=$(this).closest(PF.obj.listing.selectors.list_item),o=t.find("[data-action=load-image]");o.length>0&&(a(o),e.preventDefault())}),$(document).on("click",PF.obj.listing.selectors.list_item+" [data-action=load-image]",function(e){a($(this)),e.preventDefault(),e.stopPropagation()}),$(document).on("click","#album [data-tab=tab-embeds]",function(e){e.preventDefault,CHV.fn.album.showEmbedCodes()}),$("body").is("#upload")&&CHV.fn.uploader.toggle({show:!0}),$(document).on("keyup",function(e){if(!($(e.target).is(":input")||e.ctrlKey||e.metaKey||e.altKey)){var t=$("#fullscreen-modal:visible").exists(),a=$(".viewer"),o=$(".list-selection:visible"),i=o.find("[data-content=pop-selection]:visible:not(.disabled)"),n=$("body").hasClass("--viewer-shown"),s=$(CHV.fn.uploader.selectors.root+CHV.fn.uploader.selectors.show).exists(),r=e.originalEvent.code;if("Escape"===e.originalEvent.code){if(t)return;s&&CHV.fn.uploader.toggle({reset:!1})}if(a.exists()&&n){if(r in CHV.fn.listingViewer.keys){var l=["KeyW","Escape","ArrowLeft","ArrowRight"],d=CHV.fn.listingViewer.keys[r];-1==l.indexOf(r)?$("[data-action="+d+"]",CHV.fn.listingViewer.selectors.root).click():d in CHV.fn.listingViewer&&CHV.fn.listingViewer[d](),PF.fn.keyFeedback.spawn(e)}}else{var c,u={Period:"list-select-all",KeyK:"get-embed-codes",KeyZ:"clear",KeyA:"create-album",KeyM:"move",KeyO:"approve",Delete:"delete",KeyC:"assign-category",KeyV:"flag-safe",KeyF:"flag-unsafe",KeyH:"album-cover"},m={KeyE:"edit",KeyL:"like",KeyS:"share",KeyJ:"sub-album",KeyP:"upload-to-album"};d=u[r]||m[r];void 0!==d&&(o.exists()&&(n||t||parseInt($("[data-text=selection-count]:visible",i).text())>0&&(c=$("[data-action="+d+"]",o.closest(".list-selection")))),void 0===c&&(c=$("[data-action="+d+"]:visible").not("#content-listing-tabs *")),c instanceof jQuery&&c.length>0&&(c.first().trigger("click"),PF.fn.keyFeedback.spawn(e)))}}}),$(document).on("click",CHV.fn.listingViewer.selectors.root+" [data-action^=viewer-]",function(){var e=$(this).data("action").substring("viewer-".length);e in CHV.fn.listingViewer&&CHV.fn.listingViewer[e]()}),$(document).on("click","a[data-href]:not([rel=popup-link]):not(.popup-link)",function(){var e=$(this).attr("data-href"),t=$(this).attr("href");(e||t)&&(location.href=t||e)});var v,b=PF.obj.listing.selectors.list_item+", .image-container";($(document).on("contextmenu click",b,function(e){$(".list-selection:visible").exists()&&!$(this).closest(CHV.fn.listingViewer.selectors.root).exists()&&("click"!=e.type||e.ctrlKey||e.metaKey)&&o(this,e)}),navigator.userAgent.match(/(iPad|iPhone|iPod)/i))&&$(document).on("mouseup mousemove",b,function(e){return clearTimeout(v),!1}).on("mousedown",b,function(e){var t=this,a=e;return v=window.setTimeout(function(){$(".list-selection:visible").exists()&&!$(t).closest(CHV.fn.listingViewer.selectors.root).exists()&&o(t,a)},500),!1});void 0!==CHV.obj.config&&CHV.obj.config.listing.viewer&&$(document).on("click",PF.obj.listing.selectors.list_item+"[data-type=image] .image-container",function(e){if(e.preventDefault(),e.stopPropagation(),0!==e.clientX||0!==e.clientY){var t=$(this).closest(PF.obj.listing.selectors.list_item);t.exists()&&(e.ctrlKey||e.metaKey||CHV.fn.listingViewer.open(t))}else PF.fn.keyFeedback.spawn(e)}),$(document).on("contextmenu",CHV.fn.listingViewer.selectors.root,function(e){return e.preventDefault(),CHV.fn.listingViewer.zoom(),PF.fn.keyFeedback.spawn(e),!1});var _,w=PF.fn.deparam(window.location.search);if(w&&"viewer"in w){var C=$(PF.obj.listing.selectors.content_listing_visible);if("images"==C.data("list")){var P=$(PF.obj.listing.selectors.list_item,C)["next"==w.viewer?"first":"last"]();CHV.fn.listingViewer.open(P)}}$(window).on("DOMContentLoaded load resize scroll",function(){clearTimeout(_),_=setTimeout(function(){$(PF.obj.listing.selectors.list_item+":visible").each(function(){var e=$(this).find('[data-action="load-image"]').first(),t=PF.fn.deparam($(PF.obj.listing.selectors.list_item+"[data-id="+$(this).attr("data-id")+"]").closest(".content-listing").data("params-hidden")),o=t&&"is_animated"in t?t.is_animated:$(this).data("size")<=CHV.obj.config.image.load_max_filesize.getBytes();e.exists()&&o&&$(this).is_within_viewport(50)&&a(e)})},1e3)}),$(document).on("click","[data-action=logout]",function(){let e=$("form#form-logout");e.submit()}),Boolean(window.navigator.vibrate)&&$(document).on("click","button, .btn, .pop-btn, .top-btn-el, [data-action], .content-tabs a, .top-bar-logo a, .login-provider-button, .panel-share-networks li a, #image-viewer-loader",function(e){$(this).is("[data-action=top-bar-menu-full]")||(window.navigator.vibrate(0),window.navigator.vibrate(15))})}),"undefined"==typeof CHV&&(CHV={obj:{},fn:{},str:{}}),window.opener&&(CHV.obj.opener={uploadPlugin:{}}),CHV.fn.album={showEmbedCodes:function(){var e=$(".content-listing-loading","#tab-embeds");if(e.exists()){var t=$("#embed-codes");$.ajax({url:PF.obj.config.json_api,type:"POST",dataType:"json",data:{action:"get-album-contents",albumid:CHV.obj.resource.id,auth_token:PF.obj.config.auth_token},cache:!1}).always(function(a){PF.fn.loading.destroy(e),200==a.status_code&&(CHV.fn.fillEmbedCodes(a.contents,"#tab-embeds"),$("#tab-embeds").addClass("visible"),t.removeClass("soft-hidden"))})}}},CHV.fn.modal={getTemplateWithPreview:function(e,t){var a=$(e).html(),o=$("
"),i="",n=t.find(".image-container img").attr("src");return void 0!==n&&(i+='';var e=$(this).find(".image-container img");e.exists()?n+='':(n+='',n+=''),n+="",s++}),i.html(o).find(".image-preview").html(n),i.html()}},CHV.fn.listingViewer={selectors:{bodyShown:".--viewer-shown",content:".viewer-content",template:"#viewer-template",root:".viewer",rootShow:".viewer--show",rootHide:".viewer--hide",rootZero:".viewer--zero",rootNavPrev:".viewer--nav-prev",rootNavNext:".viewer--nav-next",src:".viewer-src",tools:".viewer-tools",loader:".viewer-loader",owner:".viewer-owner",ownerGuest:".viewer-owner--guest",ownerUser:".viewer-owner--user",inputMap:".viewer-kb-input"},keys:{Period:"select",KeyL:"like",KeyF:"flag",KeyE:"edit",KeyM:"move",KeyO:"approve",Delete:"delete",Escape:"close",ArrowLeft:"prev",ArrowRight:"next",KeyW:"zoom"},keymap:{select:[".",PF.fn._s("Toggle select")],like:["L",PF.fn._s("Like")],flag:["F",PF.fn._s("Toggle flag")],edit:["E",PF.fn._s("Edit")],move:["M",PF.fn._s("Album")],approve:["O",PF.fn._s("Approve")],delete:["Del",PF.fn._s("Delete")],close:["Esc",PF.fn._s("Close")],prev:["◄",PF.fn._s("Previous")],next:["►",PF.fn._s("Next")],zoom:["W",PF.fn._s("Zoom")]},loading:null,idleTimer:0,$item:null,show:function(){var e=PF.fn.deparam(this.$item.closest(PF.obj.listing.selectors.content_listing_visible).data("params-hidden")),t=e&&"is_animated"in e?e.is_animated:0;this.getEl("root").removeClass(this.selectors.rootHide.substring(1)).addClass(this.selectors.rootShow.substring(1)).attr("data-cover",t),$("body").addClass(this.selectors.bodyShown.substring(1));var a=new Hammer($(CHV.fn.listingViewer.selectors.root).get(0),{direction:Hammer.DIRECTION_VERTICAL});a.on("swipeleft swiperight",function(e){var t="left"==e.type.substring("swipe".length)?"next":"prev";CHV.fn.listingViewer[t]()}),this.getEl("root")[(PF.fn.isDevice(["phone","phablet"])?"add":"remove")+"Class"]("--over")},getItem:function(){return this.$item},getEl:function(e){var t=!e.startsWith("template")&&!e.startsWith("root")&&this.selectors.root;return t?$(this.selectors[e],t):$(this.selectors[e])},getObject:function(e){if(e||void 0===this.object){var t=decodeURIComponent(this.getItem().attr("data-object"));this.object=JSON&&JSON.parse(t)||$.parseJSON(t)}return this.object},placeholderSizing:function(){if(this.getEl("root").exists()){var e=Math.max(document.documentElement.clientWidth,window.innerWidth||0),t=Math.max(document.documentElement.clientHeight,window.innerHeight||0),a=e/t,o=this.getEl("src")[0],i=o.getAttribute("width"),n=o.getAttribute("height"),s=i/n,r=a0?"add":t.getItem()[o]().exists()?"add":"remove";a[n+"Class"](i.substring(1))}),$.each(this.getItem().get(0).attributes,function(e,t){if(!t.name.startsWith("data-"))return!0;a.attr(t.name,t.value)});var n=void 0===this.object.user?"user":"guest";n="owner"+(n.charAt(0).toUpperCase()+n.slice(1).toLowerCase()),this.getEl(n).remove(),void 0!==this.object.user&&$(this.object.user.avatar?".default-user-image":"img.user-image",this.getEl("ownerUser")).remove();var s=this.getItem().find(".list-item-image-tools[data-action='list-tools']");this.getEl("tools").append(s.html());var r=!1;$.each(s.find("[data-action]"),function(e,a){var o=$(this).attr("data-action"),i=t.keymap[o];if(void 0===i||"flag"===o&&r)return!1;$('
'+i[0]+""+PF.fn._s(i[1])+"
").appendTo(t.getEl("inputMap")),"flag"===o&&(r=!0)}),this.placeholderSizing(),this.trickyLoad()},zoom:function(){this.getEl("root").attr("data-cover","1"==this.getEl("root").attr("data-cover")?"0":"1")},remove:function(){this.getEl("root").remove()},getParsedTemplate:function(){var e=this.getObject(!0),t=this.getEl("template").html(),a=t.match(/%(\S+)%/g);return a&&$.each(a,function(a,o){var i,n=o.slice(1,-1).split(".");n.map(function(t){var a=i||e;t in a&&(i=a[t])});var s=new RegExp(o,"g");t=t.replace(s,i)}),t},insertEl:function(){var e=this.getParsedTemplate();this.getEl("rootZero").remove(),$(e).appendTo("body")},toggleIdle:function(e,t){var a=this;t=void 0===t||t;$("html")[(e?"add":"remove")+"Class"]("--idle"),e||(clearTimeout(a.idleTimer),t&&(a.idleTimer=setTimeout(function(){var e=$(".fullscreen"),t=a.getEl("root");a.toggleIdle(t.length>0&&0==e.length)},5e3)))},open:function(e){if(e.exists()){this.setItem(e),this.insertEl(),this.filler(),this.show(),this.toggleIdle(!1);var t=this;this.getEl("root").on("mousemove mouseout",function(){t.toggleIdle(!1)})}else this.getEl("rootZero").remove()},setItem:function(e){this.$item=e},trickyLoad:function(){if(this.object.image.url!=this.object.display_url){var e=this.getEl("src").parent().html(),t=$(e).attr("src",this.object.image.url);t.insertBefore(this.getEl("src")),t.imagesLoaded(function(){t.next().remove()})}},close:function(){var e=this;$(this.selectors.root).removeClass(this.selectors.rootShow.substring(1)).addClass(this.selectors.rootHide.substring(1)),$("body").removeClass(this.selectors.bodyShown.substring(1)),this.toggleIdle(!1,!1),null!==this.getItem()&&$(window).scrollTop(this.getItem().offset().top);var t=$("#top-bar, .follow-scroll");t.attr("data-scroll-lock","1"),setTimeout(function(){e.remove()},250),setTimeout(function(){t.removeAttr("data-scroll-lock")},300)},browse:function(e){var t=this.getItem()[e]();if(t.exists()){this.setItem(t),this.filler(!0);var a=$(PF.obj.listing.selectors.content_listing_visible).find("[data-action=load-more]"),o=t[e+"All"]().length;a.length>0&&o<=5&&!PF.obj.listing.calling&&"next"==e&&$("[data-action=load-more]").click()}else{var i=$("[data-pagination="+e+"]",PF.obj.listing.selectors.content_listing_pagination+":visible"),n=i.attr("href");if(!n)return;PF.fn.deparam(window.location.search);window.location.href=n+"&viewer="+e}},prev:function(){this.browse("prev")},next:function(){this.browse("next")}},CHV.obj.image_viewer={selector:"#image-viewer",container:"#image-viewer-container",navigation:".image-viewer-navigation",loading:"#image-viewer-loading",loader:"#image-viewer-loader"},CHV.obj.image_viewer.$container=$(CHV.obj.image_viewer.container),CHV.obj.image_viewer.$navigation=$(CHV.obj.image_viewer.navigation),CHV.obj.image_viewer.$loading=$(CHV.obj.image_viewer.loading),CHV.fn.system={checkUpdates:function(e){$.ajax({url:CHEVERETO.api.get.info+"/",data:{id:CHEVERETO.id},cache:!1}).always(function(t,a,o){"function"==typeof e&&e(o)})}},("MacIntel"===navigator.platform&&navigator.maxTouchPoints>0||"iPad"===navigator.platform)&&$("html").removeClass("device-nonmobile"),CHV.fn.bindSelectableItems=function(){var e="content-listing-wrapper",t="#"+e;$(t).exists()?$(t).hasClass("ui-selectable")&&$(t).selectable("destroy"):$("#content-listing-tabs").wrap("
"),$("[data-content=list-selection]").exists()&&$("html.device-nonmobile "+t).selectable({delay:150,filter:PF.obj.listing.selectors.list_item,cancel:".content-empty, .header, #tab-share, #tab-info, .viewer-title, .header-link, .top-bar, .content-listing-pagination *, #fullscreen-modal, #top-user, #background-cover, .list-item-desc, .list-item-image-tools, [data-action=load-image], #tab-embeds",classes:{"ui-selected":"selected"},selected:function(e,t){$(t.selected).removeClass("ui-selected")},selecting:function(e,t){var a=$(t.selecting),o=a.hasClass("selected");CHV.fn.list_editor[(o?"unselect":"select")+"Item"](a)},unselecting:function(e,t){CHV.fn.list_editor.unselectItem($(t.unselecting))}})},CHV.fn.isCachedImage=function(e){var t=new Image;return t.src=e,t.complete||t.width+t.height>0},CHV.fn.viewerLoadImage=function(){if(CHV.obj.image_viewer.$loading.exists()&&(CHV.obj.image_viewer.$loading.removeClass("soft-hidden").css({zIndex:2}),PF.fn.loading.inline(CHV.obj.image_viewer.$loading,{color:"white",size:"small",center:!0,valign:!0}),CHV.obj.image_viewer.$loading.hide().fadeIn("slow")),$(CHV.obj.image_viewer.loader).remove(),CHV.obj.image_viewer.image.is_360)return PF.fn.loading.destroy(CHV.obj.image_viewer.$loading),pannellum.viewer("image-viewer-360",{autoLoad:!0,type:"equirectangular",panorama:CHV.obj.image_viewer.image.url,preview:CHV.obj.image_viewer.$container.find("img").eq(0).attr("src"),pitch:2.3,yaw:-135.4,hfov:120}),$("#image-viewer-360").removeClass("soft-hidden"),void CHV.obj.image_viewer.$container.find("img").eq(0).remove();CHV.obj.image_viewer.image.html=CHV.obj.image_viewer.$container.html(),CHV.obj.image_viewer.$container.prepend($(CHV.obj.image_viewer.image.html).css({top:0,zIndex:0,opacity:0,position:"absolute"})),CHV.obj.image_viewer.$container.find("img").eq(0).css("zIndex",1),CHV.obj.image_viewer.$container.find("img").eq(1).attr("src",CHV.obj.image_viewer.image.url),CHV.obj.image_viewer.$container.find("img").eq(1).imagesLoaded(function(){CHV.obj.image_viewer.$container.find("img").eq(1).css({position:"",display:""}),CHV.obj.image_viewer.$container.find("img").eq(0).remove(),PF.fn.loading.destroy(CHV.obj.image_viewer.$loading)})},CHV.obj.embed_share_tpl={},CHV.obj.embed_upload_tpl={},CHV.obj.topBar={transparencyScrollToggle:function(){var e=$(window).scrollTop();$("#top-bar")[(e>0?"remove":"add")+"Class"]("transparent")}},CHV.obj.uploaderReset={isUploading:!1,canAdd:!0,queueStatus:"ready",uploadThreads:0,uploadParsedIds:[],uploadProcessedIds:[],files:{},results:{success:{},error:{}},toggleWorking:0,filesAddId:0,clipboardImages:[]},CHV.fn.uploader={files:{},selectors:{root:"#anywhere-upload",show:".upload-box--show",queue:"#anywhere-upload-queue",queue_complete:".queue-complete",queue_item:".queue-item",close_cancel:"[data-button=close-cancel]",file:"#anywhere-upload-input",camera:"#anywhere-upload-input-camera",upload_item_template:"#anywhere-upload-item-template",item_progress_bar:"[data-content=progress-bar]",failed_result:"[data-content=failed-upload-result]",fullscreen_mask:"#fullscreen-uploader-mask",dropzone:"#uploader-dropzone",paste:"#anywhere-upload-paste",input:"[data-action=anywhere-upload-input]"},toggle:function(e,t){this.queueSize();var a=$("[data-action=top-bar-upload]",".top-bar"),o=!$(CHV.fn.uploader.selectors.root).data("shown");e=$.extend({callback:null,reset:!0},e);if(void 0!==e.show&&e.show&&(o=!0),PF.fn.growl.close(!0),PF.fn.close_pops(),!(1==this.toggleWorking||$(CHV.fn.uploader.selectors.root).is(":animated")||CHV.fn.uploader.isUploading||a.data("login-needed")&&!PF.fn.is_user_logged())){this.toggleWorking=1;var i={time:500,easing:null},n=function(){!o&&e.reset&&CHV.fn.uploader.reset(),PF.fn.topMenu.hide(),"function"==typeof e.callback&&e.callback(t),CHV.fn.uploader.boxSizer(),CHV.fn.uploader.toggleWorking=0};if($(CHV.fn.uploader.selectors.root)[(o?"add":"remove")+"Class"](this.selectors.show.substring(1)),o){if($("html").data({"followed-scroll":$("html").hasClass("followed-scroll"),"top-bar-box-shadow-prevent":!0}).removeClass("followed-scroll").addClass("overflow-hidden top-bar-box-shadow-none"),$("#top-bar").data({stock_classes:$("#top-bar").attr("class")}),$(".current[data-nav]",".top-bar").each(function(){$(this).is("[data-action=top-bar-menu-full]")||$(this).removeClass("current").attr("data-current",1)}),PF.fn.isDevice("mobile")){var s=$(".upload-box-heading",$(CHV.fn.uploader.selectors.root));s.css({position:"relative",top:.5*($(window).height()-s.height())+"px"})}CHV.fn.uploader.focus(function(){setTimeout(function(){n()},i.time)})}else{$("[data-nav][data-current=1]",".top-bar").each(function(){$(this).addClass("current")}),setTimeout(function(){$(CHV.fn.uploader.selectors.fullscreen_mask).css({opacity:0})},.1*i.time),setTimeout(function(){$(CHV.fn.uploader.selectors.fullscreen_mask).remove()},i.time);var r=$(CHV.fn.uploader.selectors.root).outerHeight(),l=r-parseInt($(CHV.fn.uploader.selectors.root).data("initial-height"))+"px";$(CHV.fn.uploader.selectors.root).css({transform:"translate(0,-"+l+")"}),setTimeout(function(){$(CHV.fn.uploader.selectors.root).css({top:""}),n(),$("html,body").removeClass("overflow-hidden").data({"top-bar-box-shadow-prevent":!1}),$("#top-bar *").trigger("blur")},i.time)}$(CHV.fn.uploader.selectors.root).data("shown",o),a.toggleClass("current").removeClass("opened")}},reset:function(){$.extend(this,$.extend(!0,{},CHV.obj.uploaderReset)),$("li",this.selectors.queue).remove(),$(this.selectors.root).height("").css({"overflow-y":"","overflow-x":""}),$(this.selectors.queue).addClass("queueEmpty").removeClass(this.selectors.queue_complete.substring(1)),$(this.selectors.input,this.selectors.root).each(function(){$(this).prop("value",null)}),$("[data-group=upload-result] textarea",this.selectors.root).prop("value",""),$.each(["upload-queue-ready","uploading","upload-result","upload-queue-ready","upload-queue"],function(e,t){$("[data-group="+t+"]").hide()}),$("[data-group=upload]",this.selectors.root).show(),$("[name=upload-album-id]",this.selectors.root).prop("value",function(){var e=$("option[selected]",this);if(e.exists())return e.attr("value")}),$(this.selectors.root).removeClass("queueCompleted queueReady queueHasResults").addClass("queueEmpty").attr("data-queue-size",0),$("[name=upload-category-id]",this.selectors.root).prop("value",""),$("[name=upload-nsfw]",this.selectors.root).prop("checked",this.defaultChecked),this.boxSizer(!0)},focus:function(e){$(this.selectors.fullscreen_mask).exists()||($("body").is("#upload")||$("body").append($("
",{id:this.selectors.fullscreen_mask.replace("#",""),class:"fullscreen black"}).css({top:PF.fn.isDevice("phone")?0:$(CHV.fn.uploader.selectors.root).data("top")})),setTimeout(function(){$("body").is("#upload")||$(CHV.fn.uploader.selectors.fullscreen_mask).css({opacity:1}),setTimeout(function(){"function"==typeof e&&e()},PF.fn.isDevice(["phone","phablet"])?0:250)},1))},boxSizer:function(e){var t=$(this.selectors.root).is(this.selectors.show),a=t||e;t&&$("html").addClass("overflow-hidden"), -a&&($(this.selectors.root).height(""),!$("body").is("#upload")&&$(this.selectors.root).height()>$(window).height()?($(this.selectors.root).height($(window).height()-$("#top-bar").height()).css({"overflow-y":"scroll","overflow-x":"auto"}),$("body").addClass("overflow-hidden")):$(this.selectors.root).css("overflow-y",""))},pasteURL:function(){var e=$("[name=urls]",PF.obj.modal.selectors.root),t=e.val();t&&(CHV.fn.uploader.toggle({show:!0}),CHV.fn.uploader.add({},t))},pasteImageHandler:function(e){if(!$(e.target).is(":input")){if(void 0!==e.clipboardData&&e.clipboardData.items)var t=e.clipboardData.items;else setTimeout(function(){return e.clipboardData={},e.clipboardData.items=[],$.each($("img",CHV.fn.uploader.$pasteCatcher),function(t,a){e.clipboardData.items.push(PF.fn.dataURItoBlob($(this).attr("src")))}),$(CHV.fn.uploader.selectors.paste).html(""),CHV.fn.uploader.pasteImageHandler(e)},1);if(t){const e=new Array,i=new Array;let n=$(CHV.fn.uploader.selectors.root).data("shown");for(var a=0;ap||f==p){var h=pp&&$img.height(h).width(h*g)}if(f0){var b="";for(l=0;l"+PF.fn.htmlEncode(m[l].name)+"",delete CHV.fn.uploader.files[m[l].uid],$("li[data-id="+m[l].uid+"]",CHV.fn.uploader.selectors.queue).find("[data-action=cancel]").click();PF.fn.modal.simple({title:PF.fn._s("Some files couldn't be added"),message:"
    "+b+"
"})}else CHV.fn.uploader.focus();CHV.fn.uploader.boxSizer()}},$.extend({},C,{orientation:a.exif?a.exif.get("Orientation"):1})),setTimeout(function(){o(e+1)},25)}))}else PF.fn.loading.destroy("fullscreen")}var i;if(!this.canAdd){e=e.originalEvent;return e.preventDefault(),e.stopPropagation(),!1}$fileinput=$(this.selectors.file),$fileinput.replaceWith($fileinput=$fileinput.clone(!0));var n=$(this.selectors.upload_item_template).html();let s=[],r=[];if(void 0===t){e=e.originalEvent;e.preventDefault(),e.stopPropagation();var l=e.dataTransfer||e.target;if("items"in l)for(var d=l.items,c=0;cCHV.obj.config.image.max_filesize.getBytes()?m.push({uid:c,name:p.name.truncate_middle()+" - "+PF.fn._s("File too big.")}):-1!=CHV.obj.config.upload.image_types.indexOf(f)||0!=/android/i.test(navigator.userAgent)?(i&&(p.md5=i),p.fromClipboard=1==e.clipboard,p.uid=c):m.push({uid:c,name:p.name.truncate_middle()+" - "+PF.fn._s("Invalid or unsupported file format.")})}for(c=0;c0&&0==s.length){var h="";for(c=0;c"+PF.fn.htmlEncode(m[c].name)+"";return void PF.fn.modal.simple({title:PF.fn._s("Some files couldn't be added"),message:"
  • "+h+"
"})}if(0==s.length)return}else{if(t=t.replace(/(<([^>]+)>)/g,"").replace(/(\[([^\]]+)\])/g,""),s=t.match_urls(),!s)return;s=s.array_unique(),s=$.map(s,function(e,t){return{uid:t,name:e,url:e}})}if($.isEmptyObject(this.files))for(c=0;c0){var i=[];for(var o in this.results.error)"object"==typeof this.results.error[o]&&(i[o]=this.results.error[o].error.message);i.length>0&&$(this.selectors.failed_result).html("
  • "+i.join("
  • ")+"
  • ")}else $(a.error,this.selectors.root).hide();if(!window.opener&&0==CHV.obj.config.upload.moderation&&CHV.obj.config.upload.redirect_single_upload&&1==Object.size(this.results.success)&&0==Object.size(this.results.error))return window.location.href=this.results.success[Object.keys(this.results.success)[0]].image.path_viewer,!1;if($("[data-text=queue-progress]",this.selectors.root).text(100),$("[data-group=uploading]",this.selectors.root).hide(),$(this.selectors.root).removeClass("queueUploading queueHasResults").addClass("queueCompleted"),$(this.selectors.queue).addClass(this.selectors.queue_complete.substring(1)),Object.size(this.results.success)>0&&$("[data-group=upload-result] textarea",this.selectors.root).exists()&&CHV.fn.fillEmbedCodes(this.results.success,CHV.fn.uploader.selectors.root,"val"),Object.size(this.results.success)>0&&Object.size(this.results.error)>0?$(a.mixed+", "+a.success,this.selectors.root).show():Object.size(this.results.success)>0?$(a.success,this.selectors.root).show():Object.size(this.results.error)>0&&$(a.error,this.selectors.root).show(),$(a.success,this.selectors.root).is(":visible")){$(a.success,this.selectors.root).find("[data-group^=user], [data-group=guest]").hide(),$(a.success,this.selectors.root).find("[data-group="+(PF.fn.is_user_logged()?"user":"guest")+"]").show();var n=Object.keys(this.results.success)[0];if(void 0!==this.results.success[n].image.album){var s=[];for(var r in this.results.success){var l=this.results.success[r].image;l.album&&l.album.id_encoded&&-1==s.indexOf(l.album.id_encoded)&&s.push(l.album.id_encoded)}var d={link:null,text:null};if(s.length<=1?(d.link=this.results.success[n].image.album.url,d.text=this.results.success[n].image.album.name):(d.link=this.results.success[n].image.user.url_albums,d.text=PF.fn._s("%s's Albums",this.results.success[n].image.user.name_short_html)),$("[data-text=upload-target]",this.selectors.root).text(d.text),$("[data-link=upload-target]",this.selectors.root).attr("href",d.link),PF.fn.is_user_logged()){var c=s.length>0?"album":"stream";$("[data-group=user-"+c+"]",this.selectors.root).show()}}}if(this.boxSizer(),this.queueStatus="done",window.opener&&void 0!==CHV.obj.opener.uploadPlugin[window.name]){if($('[data-action="copy"]',this.selectors.root).remove(),CHV.obj.opener.uploadPlugin[window.name].hasOwnProperty("autoInsert")&&CHV.obj.opener.uploadPlugin[window.name].autoInsert){var u=$(':input[name="'+CHV.obj.opener.uploadPlugin[window.name].autoInsert+'"]',CHV.fn.uploader.selectors.root),m=u.val();if(m)return window.opener.postMessage({id:window.name,message:m},"*"),void window.close()}}else $('[data-action="openerPostMessage"]',this.selectors.root).remove()}},$.extend(CHV.fn.uploader,$.extend(!0,{},CHV.obj.uploaderReset)),CHV.fn.fillEmbedCodes=function(e,t,a){void 0===a&&(a="val");var o=CHV.fn.uploader.selectors.root==t?"embed_upload_tpl":"embed_share_tpl";$.each(e,function(e,i){if(void 0!==i){var n="id_encoded"in i?i:i.image;if(!n.medium){n.medium={};for(var s=["filename","name","width","height","extension","size","size_formatted","url"],r=0;r0&&$.each(CHV.obj.categories,function(o,i){return void 0!==e&&i.id==e||(i.url_key==$("[name=form-category-url_key]",t).val()?(a=!0,!1):void 0)}),!a||(PF.fn.growl.call(PF.fn._s("Category URL key already being used.")),$("[name=form-category-url_key]",t).highlight(),!1)))},edit:{before:function(e){var t=$(e.target),a=t.data("category-id"),o=CHV.obj.categories[a],i="[data-modal="+t.data("target")+"]";$.each(CHV.fn.category.formFields,function(e,t){e="form-category-"+t,t=o[t];var a=$("[name="+e+"]",i);a.is("textarea")?a.html(PF.fn.htmlEncode(t)):a.attr("value",t)})},submit:function(){var e=PF.obj.modal.selectors.root,t=$("[name=form-category-id]",e).val();return!!CHV.fn.category.validateForm(t)&&(PF.obj.modal.form_data={action:"edit",edit:"category",editing:{}},$.each(CHV.fn.category.formFields,function(t,a){PF.obj.modal.form_data.editing[a]=$("[name=form-category-"+a+"]",e).val()}),!0)},complete:{success:function(e){var t=e.responseJSON.category,a="[data-content=category][data-category-id="+t.id+"]";$.each(t,function(e,t){$("[data-content=category-"+e+"]",a).html(PF.fn.htmlEncode(t))}),$("[data-link=category-url]").attr("href",t.url),CHV.obj.categories[t.id]=t}}},delete:{before:function(e){var t=$(e.target),a=t.data("category-id"),o=CHV.obj.categories[a];t.attr("data-confirm",t.attr("data-confirm").replace("%s",'"'+o.name+'"'))},submit:function(e){return PF.obj.modal.form_data={action:"delete",delete:"category",deleting:{id:e}},!0},complete:{success:function(e){PF.fn.growl.expirable(PF.fn._s("Category successfully deleted."));var t=e.responseJSON.request.deleting.id;$("[data-content=category][data-category-id="+t+"]").remove(),delete CHV.obj.categories[t]}}},add:{submit:function(){var e=PF.obj.modal.selectors.root;return!!CHV.fn.category.validateForm()&&(PF.obj.modal.form_data={action:"add-category",category:{}},$.each(CHV.fn.category.formFields,function(t,a){"id"!=a&&(PF.obj.modal.form_data.category[a]=$("[name=form-category-"+a+"]",e).val())}),!0)},complete:{success:function(e){var t=e.responseJSON.category,a="[data-content=dashboard-categories-list]",o=$("[data-content=category-dashboard-template]").html();$.each(t,function(e,t){o=o.replace(new RegExp("%"+e.toUpperCase()+"%","g"),t||"")}),$(a).append(o),0==Object.size(CHV.obj.categories)&&(CHV.obj.categories={}),CHV.obj.categories[t.id]=t,PF.fn.growl.call(PF.fn._s("Category %s added.",'"'+t.name+'"'))}}}},CHV.fn.ip_ban={formFields:["id","ip","expires","message"],validateForm:function(e){var t=PF.obj.modal.selectors.root,a=!1,o=$("[name=form-ip_ban-ip]",t).val();return!!CHV.fn.common.validateForm(t)&&(""!==$("[name=form-ip_ban-expires]",t).val()&&0==/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test($("[name=form-ip_ban-expires]",t).val())?(PF.fn.growl.call(PF.fn._s("Invalid expiration date.")),$("[name=form-ip_ban-expires]",t).highlight(),!1):(Object.size(CHV.obj.ip_bans)>0&&$.each(CHV.obj.ip_bans,function(t,i){return void 0!==e&&i.id==e||(i.ip==o?(a=!0,!1):void 0)}),!a||(PF.fn.growl.call(PF.fn._s("IP %s already banned.",o)),$("[name=form-ip_ban-ip]",t).highlight(),!1)))},add:{submit:function(){var e=PF.obj.modal.selectors.root;return!!CHV.fn.ip_ban.validateForm()&&(PF.obj.modal.form_data={action:"add-ip_ban",ip_ban:{}},$.each(CHV.fn.ip_ban.formFields,function(t,a){"id"!=a&&(PF.obj.modal.form_data.ip_ban[a]=$("[name=form-ip_ban-"+a+"]",e).val())}),!0)},complete:{success:function(e){var t=e.responseJSON.ip_ban,a="[data-content=dashboard-ip_bans-list]",o=$("[data-content=ip_ban-dashboard-template]").html();void 0!==o&&($.each(t,function(e,t){o=o.replace(new RegExp("%"+e.toUpperCase()+"%","g"),t||"")}),$(a).append(o)),0==Object.size(CHV.obj.ip_bans)&&(CHV.obj.ip_bans={}),CHV.obj.ip_bans[t.id]=t,$("[data-content=ban_ip]").addClass("hidden"),$("[data-content=banned_ip]").removeClass("hidden"),PF.fn.growl.call(PF.fn._s("IP %s banned.",t.ip))},error:function(e){var t=e.responseJSON.error;PF.fn.growl.call(PF.fn._s(t.message))}}},edit:{before:function(e){var t=$(e.target),a=t.data("ip_ban-id"),o=CHV.obj.ip_bans[a],i="[data-modal="+t.data("target")+"]";$.each(CHV.fn.ip_ban.formFields,function(e,t){e="form-ip_ban-"+t,t=o[t];var a=$("[name="+e+"]",i);a.is("textarea")?a.html(PF.fn.htmlEncode(t)):a.attr("value",t)})},submit:function(){var e=PF.obj.modal.selectors.root,t=$("[name=form-ip_ban-id]",e).val();return!!CHV.fn.ip_ban.validateForm(t)&&(PF.obj.modal.form_data={action:"edit",edit:"ip_ban",editing:{}},$.each(CHV.fn.ip_ban.formFields,function(t,a){PF.obj.modal.form_data.editing[a]=$("[name=form-ip_ban-"+a+"]",e).val()}),!0)},complete:{success:function(e){var t=e.responseJSON.ip_ban,a="[data-content=ip_ban][data-ip_ban-id="+t.id+"]";$.each(t,function(e,t){$("[data-content=ip_ban-"+e+"]",a).html(PF.fn.htmlEncode(t))}),CHV.obj.ip_bans[t.id]=t},error:function(e){var t=e.responseJSON.error;PF.fn.growl.call(PF.fn._s(t.message))}}},delete:{before:function(e){var t=$(e.target),a=t.data("ip_ban-id"),o=CHV.obj.ip_bans[a];t.attr("data-confirm",t.attr("data-confirm").replace("%s",o.ip))},submit:function(e){return PF.obj.modal.form_data={action:"delete",delete:"ip_ban",deleting:{id:e}},!0},complete:{success:function(e){PF.fn.growl.expirable(PF.fn._s("IP ban successfully deleted."));var t=e.responseJSON.request.deleting.id;$("[data-content=ip_ban][data-ip_ban-id="+t+"]").remove(),delete CHV.obj.ip_bans[t]}}}},CHV.fn.storage={formFields:["id","name","api_id","bucket","server","service","capacity","region","key","secret","url","account_id","account_name"],calling:!1,validateForm:function(){var e=PF.obj.modal.selectors.root,t=$("[name=form-storage-id]",e).val(),a=!0;if($.each($(":input",e),function(e,t){$(this).is(":hidden")?$(this).attr("required")&&$(this).removeAttr("required").attr("data-required",1):1==$(this).attr("data-required")&&$(this).attr("required","required"),$(this).is(":visible")&&""==$(this).val()&&$(this).attr("required")&&($(this).highlight(),a=!1)}),!a)return PF.fn.growl.call(PF.fn._s("Please fill all the required fields.")),!1;var o,i=$("[name=form-storage-capacity]",e),n=i.val();return""!==n&&(0==/^[\d\.]+\s*[A-Za-z]{2}$/.test(n)||void 0===n.getBytes()?o=PF.fn._s("Invalid storage capacity value. Make sure to use a valid format."):void 0!==CHV.obj.storages[t]&&n.getBytes()0&&(t=String(t).formatBytes(2)),r.attr("value",t))}),$("[data-combo-value]").addClass("soft-hidden"),$(n).removeClass("soft-hidden")},submit:function(){var e=PF.obj.modal.selectors.root;$("[name=form-storage-id]",e).val();return!!CHV.fn.storage.validateForm()&&(PF.obj.modal.form_data={action:"edit",edit:"storage",editing:{}},$.each(CHV.fn.storage.formFields,function(t,a){var o;o="[name=form-storage-"+a+"]","hidden"!==$(o,e).attr("type")&&(o+=":visible"),PF.obj.modal.form_data.editing[a]=$(o,e).val()}),!0)},complete:{success:function(e){var t=e.responseJSON.storage,a="[data-content=storage][data-storage-id="+t.id+"]",o=$("[data-action=toggle-storage-https]",a);$.each(t,function(e,t){$("[data-content=storage-"+e+"]",a).html(PF.fn.htmlEncode(t))}),CHV.obj.storages[t.id]=t,CHV.fn.storage.toggleBoolDisplay(o,1==t.is_https)},error:function(e){var t=e.responseJSON,a=t.error.message;PF.fn.growl.call(a)}}},add:{submit:function(){if(!CHV.fn.storage.validateForm())return!1;var e=PF.obj.modal.selectors.root;return PF.obj.modal.form_data={action:"add-storage",storage:{}},$.each(CHV.fn.storage.formFields,function(t,a){var o;"id"!=a&&(o="[name=form-storage-"+a+"]","hidden"!==$(o,e).attr("type")&&(o+=":visible"),PF.obj.modal.form_data.storage[a]=$(o,e).val())}),!0},complete:{success:function(e){var t=e.responseJSON.storage,a="[data-content=dashboard-storages-list]",o=$("[data-content=storage-dashboard-template]").html();$.each(t,function(e,t){var a=e.toUpperCase();if("is_https"==e||"is_active"==e)t=CHV.obj.storageTemplate.icon.replace("%TITLE%",CHV.obj.storageTemplate.messages[e]).replace("%ICON%",CHV.obj.storageTemplate.checkboxes[t]).replace("%PROP%",e.replace("is_",""));o=o.replace(new RegExp("%"+a+"%","g"),t||"")}),$(a).append(o),PF.fn.bindtipTip($("[data-storage-id="+t.id+"]")),0==CHV.obj.storages.length&&(CHV.obj.storages={}),CHV.obj.storages[t.id]=t},error:function(e){var t=e.responseJSON,a=t.error.message;PF.fn.growl.call(a)}}},toggleBoolDisplay:function(e,t){var a={0:e.data("unchecked-icon"),1:e.data("checked-icon")};e.removeClass(a[0]+" "+a[1]).addClass(a[t?1:0])}},CHV.fn.common={validateForm:function(e){if(void 0===e)e=PF.obj.modal.selectors.root;var t=!0 -;return $.each($(":input:visible",e),function(e,a){""==$(this).val()&&$(this).attr("required")&&($(this).highlight(),t=!1)}),!!t||(PF.fn.growl.call(PF.fn._s("Please fill all the required fields.")),!1)},updateDoctitle:function(e){void 0!==CHV.obj.page_info&&(CHV.obj.page_info.pre_doctitle=e,CHV.obj.page_info.doctitle=CHV.obj.page_info.pre_doctitle+CHV.obj.page_info.pos_doctitle,document.title=CHV.obj.page_info.doctitle)}},CHV.fn.user={add:{submit:function(){var e=$(PF.obj.modal.selectors.root),t=!0;return $.each($(":input",e),function(e,a){""==$(this).val()&&$(this).attr("required")&&($(this).highlight(),t=!1)}),t?(PF.obj.modal.form_data={action:"add-user",user:{username:$("[name=form-username]",e).val(),email:$("[name=form-email]",e).val(),password:$("[name=form-password]",e).val(),role:$("[name=form-role]",e).val()}},!0):(PF.fn.growl.call(PF.fn._s("Please fill all the required fields.")),!1)},complete:{success:function(e){e.responseJSON;PF.fn.growl.expirable(PF.fn._s("User added successfully."))},error:function(e){var t=e.responseJSON;PF.fn.growl.call(PF.fn._s(t.error.message))}}},delete:{submit:function(){return PF.obj.modal.form_data={action:"delete",delete:"user",owner:CHV.obj.resource.user.id,deleting:CHV.obj.resource.user},!0}},ban:{submit:function(){return PF.obj.modal.form_data={action:"ban",ban:"user",banning:CHV.obj.resource.user.id},!0},success:function(){}}},CHV.fn.submit_resource_approve=function(){return PF.obj.modal.form_data={action:"approve",approve:CHV.obj.resource.type,from:"resource",owner:void 0!==CHV.obj.resource.user?CHV.obj.resource.user.id:null,approving:CHV.obj.resource},!0},CHV.fn.complete_resource_approve={success:function(e){e.responseJSON;$("body").fadeOut("normal",function(){redir=CHV.obj.resource.url,window.location=redir})}},CHV.fn.submit_resource_delete=function(){return PF.obj.modal.form_data={action:"delete",delete:CHV.obj.resource.type,from:"resource",owner:void 0!==CHV.obj.resource.user?CHV.obj.resource.user.id:null,deleting:CHV.obj.resource},!0},CHV.fn.complete_resource_delete={success:function(e){e.responseJSON;$("body").fadeOut("normal",function(){var e;e="album"==CHV.obj.resource.type||"image"==CHV.obj.resource.type?CHV.obj.resource.parent_url:CHV.obj.resource.user?CHV.obj.resource.user.url:CHV.obj.resource.url,void 0!==e&&(window.location=e.replace(/\/?$/,"/")+"?deleted")})}},CHV.fn.list_editor={blink:function(e){e.addClass("ui-selecting"),setTimeout(function(){e.removeClass("ui-selecting")},200)},selectionCount:function(){var e=$(PF.obj.listing.selectors.content_listing);e.each(function(){var t=$("[data-content=pop-selection]","[data-content=list-selection][data-tab="+$(this).attr("id")+"]"),a=$(PF.obj.listing.selectors.list_item+".selected",this).length;if(all_count=$(PF.obj.listing.selectors.list_item,this).length,t.toggleClass("disabled",0==a),$("[data-text=selection-count]",t).text(a>0?a:""),"images"==e.data("list")&&a>0){var o=$(PF.obj.listing.selectors.list_item+".selected[data-flag=safe]",this).length>0,i=$(PF.obj.listing.selectors.list_item+".selected[data-flag=unsafe]",this).length>0;$("[data-action=flag-safe]",t)[(i?"remove":"add")+"Class"]("hidden"),$("[data-action=flag-unsafe]",t)[(o?"remove":"add")+"Class"]("hidden")}$(this).is(":visible")&&($("body").toggleClass("--has-selection",a>0),CHV.fn.list_editor.listMassActionSet(all_count==a?"clear":"select"))})},removeFromList:function(e,t){if(void 0!==e){e=e instanceof jQuery==0?$(e):e;var a=$(PF.obj.listing.selectors.content_listing_visible),o=e.length;e.fadeOut("fast");var i=e.first().data("type"),n=parseInt($("[data-text="+i+"-count]").text())-o;CHV.fn.list_editor.updateUserCounters(e.first().data("type"),o,"-"),e.promise().done(function(){$(document).removeClass(CHV.fn.listingViewer.selectors.bodyShown.substr(1));var i={};if(e.each(function(){$("[data-id="+$(this).data("id")+"]").each(function(){var e=$(this).closest(PF.obj.listing.selectors.content_listing).attr("id");i[e]||(i[e]=0),i[e]+=1})}),1==o?$("[data-id="+$(this).data("id")+"]").remove():e.each(function(){$("[data-id="+$(this).data("id")+"]").remove()}),PF.fn.listing.columnizerQueue(),PF.fn.listing.refresh(),CHV.fn.list_editor.selectionCount(),void 0!==t&&"string"==typeof t&&PF.fn.growl.expirable(t),$(PF.obj.listing.selectors.content_listing_pagination,a).exists()||0!=$(PF.obj.listing.selectors.list_item,a).length||(n=0),0==n)a.html(PF.obj.listing.template.empty),$(PF.obj.listing.selectors.content_listing+":not("+PF.obj.listing.selectors.content_listing_visible+")").data({empty:null,load:"ajax"}),$("[data-content=list-selection][data-tab="+a.attr("id")+"]").addClass("disabled");else if(0==$(PF.obj.listing.selectors.list_item,a).length){if($(PF.obj.listing.selectors.pad_content).height(0),$("[data-action=load-more]",a).exists())return $(PF.obj.listing.selectors.content_listing_visible).data("page",0),$("[data-action=load-more]",a).click(),void(PF.obj.listing.recolumnize=!0);var s=$("[data-pagination=next]",a);if(s.exists()){var r=s.attr("href"),l=PF.fn.deparam(r);return"page"in l&&l.page>1&&(r=r.changeURLParameterValue("page",l.page-1)),void(window.location=r)}}})}},deleteFromList:function(e){if(void 0===t)var t=!0;e=e instanceof jQuery==0?$(e):e;this.removeFromList(e,t?PF.fn._s("The content has been deleted."):null)},moveFromList:function(e,t){if(void 0===t)t=!0;e=e instanceof jQuery==0?$(e):e;this.removeFromList(e,t?PF.fn._s("The content has been moved."):null)},toggleSelectItem:function(e,t){if("boolean"!=typeof t)t=!e.hasClass("selected");var a,o,i,n=$(".viewer").is(":visible")?$("[data-type=image][data-id="+e.attr("data-id")+"]"):e,s=$("[data-action=select] .btn-icon",n);n.hasClass("unselect")||(n.addClass("unselect"),t?(Boolean(window.navigator.vibrate)&&window.navigator.vibrate([15,125,25]),n.addClass("selected"),a=s.data("icon-selected"),o=s.data("icon-unselected"),i=PF.fn._s("Unselect")):(n.removeClass("selected ui-selected"),a=s.data("icon-unselected"),o=s.data("icon-selected"),i=PF.fn._s("Select")),s.removeClass(o).addClass(a),setTimeout(function(){n.removeClass("unselect")},350),$("[data-action=select] .label",n).text(i),CHV.fn.list_editor.selectionCount())},selectItem:function(e){this.toggleSelectItem(e,!0)},unselectItem:function(e){this.toggleSelectItem(e,!1),e.removeClass("selected")},selectAll:function(e){this.selectItem($(PF.obj.listing.selectors.list_item+":visible:not(.selected)")),this.listMassActionSet("clear"),e.stopPropagation()},clearSelection:function(e){var t=$(PF.obj.listing.selectors.list_item+".selected",PF.obj.listing.selectors[e?"content_listing":"content_listing_visible"]);this.unselectItem(t),this.listMassActionSet("select")},listMassActionSet:function(e){var t="select"==e?"clear":"select",a=$("[data-text-select-all][data-action=list-"+t+"-all]:visible"),o=a.data("text-"+e+"-all");a.text(o).attr("data-action","list-"+e+"-all"),PF.fn.close_pops()},updateItem:function(e,t,a,o){if(e instanceof jQuery==0)e=$(e);var i=e.data("type"),n="image"==i?t.album:t;if(this.addAlbumtoModals(n),$("option[value="+n.id_encoded+"]","[name=form-album-id]").html(PF.fn.htmlEncode(n.name_with_privacy_readable_html)),void 0===a)a="edit";if("edit"==a||"move"==a){if("move"==a&&"album"==CHV.obj.resource.type)return void CHV.fn.list_editor.moveFromList(e,o);e.attr("data-description",t.description),"image"==i?(void 0!==t.title&&(e.attr("data-title",t.title),e.find("[title]").attr("title",t.title),$("[data-text=image-title]",e).text(PF.fn.htmlEncode(t.title))),void 0!==t.title_truncated&&$("[data-text=image-title-truncated]",e).html(PF.fn.htmlEncode(t.title_truncated)),void 0!==t.category_id&&e.attr("data-category-id",t.category_id),e.attr({"data-album-id":n.id_encoded,"data-flag":1==t.nsfw?"unsafe":"safe"}),$("[data-content=album-link]",e).attr("href",n.url)):e.attr({"data-privacy":n.privacy,"data-password":n.password,"data-name":n.name}),e.attr("data-privacy",n.privacy),$("[data-text=album-name]",e).html(PF.fn.htmlEncode(n.name)),PF.fn.growl.expirable("edit"==a?PF.fn._s("The content has been edited."):PF.fn._s("The content has been moved."))}},addAlbumtoModals:function(e){var t=!1;$("[name=form-album-id]","[data-modal]").each(function(){e.id_encoded&&!$("option[value="+e.id_encoded+"]",this).exists()&&($(this).append('"),t=!0)}),t&&CHV.fn.list_editor.updateUserCounters("album",1,"+")},updateAlbum:function(e){$("[data-id="+e.id_encoded+"]").each(function(){""!==e.html&&($(this).after(e.html),$(this).remove())})},updateUserCounters:function(e,t,a){if(void 0===a)a="+";var o,i,n=$("[data-text="+e+"-count]"),s=$("[data-text="+e+"-label]"),r=(t=parseInt(t),parseInt(n.html()));switch(a){case"+":o=r+t;break;case"-":o=r-t;break;case"=":o=t}i=o-r;var l=$("[data-text=total-"+n.data("text")+"]"),d=$("[data-text="+l.data("text")+"-label]"),c=parseInt(l.html()),u=c+i;n.text(o),l.text(u),s.text(s.data(1==o?"label-single":"label-plural")),d.text(s.data(1==u?"label-single":"label-plural"))},updateMoveItemLists:function(e,t,a){if(CHV.fn.list_editor.clearSelection(),/image/.test(t))"image"==t?CHV.fn.list_editor.updateItem("[data-type=image][data-id="+a.data("id")+"]",e.image,"move"):(a.each(function(){CHV.fn.list_editor.updateItem("[data-type=image][data-id="+$(this).data("id")+"]",e,"move",!1)}),PF.fn.growl.expirable(PF.fn._s("The content has been moved.")));else{if(CHV.fn.list_editor.moveFromList(a,!1),PF.fn.growl.expirable(PF.fn._s("The content has been moved.")),e.album)if(void 0!==e.albums_old?"true"==e.request.album.new:"true"==e.request.editing.new_album){CHV.fn.list_editor.addAlbumtoModals(e.album);var o=parseInt($("[data-text=album-count]").text())-1;$(PF.obj.listing.selectors.pad_content).each(function(){var t=$(this).find(PF.obj.listing.selectors.list_item).length;if(0!=t){var a=PF.fn.deparam($(this).closest(PF.obj.listing.selectors.content_listing).data("params"));"date_desc"!=a.sort&&o!=t||$(this)["date_desc"==a.sort?"prepend":"append"](e.album.html)}})}else CHV.fn.list_editor.updateAlbum(e.album);PF.fn.listing.columnizerQueue(),PF.fn.listing.refresh(0)}}},CHV.fn.import={errorHandler:function(e){PF.fn.growl.call(e.error.message)},reset:function(e){e=parseInt(e);CHV.obj.import.working[e].stats=$.ajax({type:"POST",data:{action:"importReset",id:e}}),CHV.obj.import.working[e].stats.complete(function(t){var a=t.responseJSON;if(a){var o=CHV.fn.import.parseTemplate(a.import);$("[data-id="+a.import.id+"]",CHV.obj.import.sel.root).replaceWith(o),"working"!=a.import.status&&clearInterval(CHV.obj.import.working[e].interval)}})},updateStats:function(e){e=parseInt(e);"readyState"in CHV.obj.import.working[e].stats&&4!=CHV.obj.import.working[e].stats.readyState?console.log("Aborting stats timeout call (previous call is still not ready)"):(CHV.obj.import.working[e].stats=$.ajax({type:"POST",data:{action:"importStats",id:e}}),CHV.obj.import.working[e].stats.complete(function(t){var a=t.responseJSON;if(a){var o=CHV.fn.import.parseTemplate(a.import);$("[data-id="+a.import.id+"]",CHV.obj.import.sel.root).replaceWith(o),"working"!=a.import.status&&clearInterval(CHV.obj.import.working[e].interval)}}))},delete:{submit:function(e){return PF.obj.modal.form_data={action:"importDelete",id:e},!0},deferred:{success:function(e){var t=e.responseJSON;PF.fn.growl.call(PF.fn._s("Import ID %s removed",t.import.id)),$("[data-id="+t.import.id+"]",CHV.obj.import.sel.root).remove(),1==$("li",CHV.obj.import.sel.root).size()&&$(CHV.obj.import.sel.root).addClass("hidden")},error:function(e){CHV.fn.import.errorHandler(e.responseJSON)}}},parseTemplate:function(e,t){var a=CHV.obj.import.rowTpl;for(var o in CHV.obj.import.importTr)void 0!==e[o]&&(a=a.replaceAll("%"+o+"%",e[o]));a=a.replaceAll("%parse%",e.options.root),a=a.replaceAll("%shortParse%",e.options.root.charAt(0)),a=a.replaceAll("%displayStatus%",CHV.obj.import.statusesDisplay[e.status]);var i=$($.parseHTML(a)).attr("data-object",JSON.stringify(e));return i}},CHV.fn.Palettes={timeout:{},get:function(){return($("html").get(0).className.match(/(^|\s)palette-\S+/g)||[]).join(" ")},set:function(e){$("html").attr("data-palette",e).removeClass(this.get()).addClass("palette-"+e)},preview:function(e){$("html").removeClass(this.get()).addClass("palette-"+e)},save:function(){clearTimeout(this.timeout),this.timeout=setTimeout(function(){$.ajax({type:"POST",data:{action:"paletteSet",palette_id:CHV.obj.config.palettesId[$("html").attr("data-palette")]},cache:!1})},400)}}; \ No newline at end of file +$(".btn-alt",a).closest("div").show(),change_avatar(a),CHV.obj.logged_user.id==CHV.obj.resource.user.id&&(change_avatar(i),hide_default(i)),PF.fn.growl.expirable(PF.fn._s("Profile image updated."))):PF.fn.growl.expirable(PF.fn._s("An error occurred. Please try again later.")),t.data("uploading",!1)}}}else PF.fn.growl.call(PF.fn._s("Please select a valid image file type."))}),$(document).on("change","[data-content=user-background-upload-input]",function(e){e.preventDefault(),e.stopPropagation();var t=$(this),a=$("[data-content=user-background-cover]"),o=$("[data-content=user-background-cover-src]"),i=$(".loading-placeholder",a),n=($("#top-bar"),$(this)[0].files[0]);if(!t.data("uploading"))if(0!=/^image\/.*$/.test(n.type))if(n.size>CHV.obj.config.user.background_max_filesize.getBytes())PF.fn.growl.call(PF.fn._s("Please select a picture of at most %s size.",CHV.obj.config.user.background_max_filesize));else{i.removeClass("hidden"),PF.fn.loading.inline(i,{center:!0,size:"big",color:"#FFF"}),t.data("uploading",!0);var s=new FormData;s.append("source",n),s.append("action","upload"),s.append("type","file"),s.append("what","background"),s.append("owner",CHV.obj.resource.user.id),s.append("auth_token",PF.obj.config.auth_token),avatarXHR=new XMLHttpRequest,avatarXHR.open("POST",PF.obj.config.json_api,!0),avatarXHR.send(s),avatarXHR.onreadystatechange=function(){if(4==this.readyState){var e="json"!==this.responseType?JSON.parse(this.response):this.response,n=e.success.image;if(200==this.status){var s=$("");s.attr("src",n.url).imagesLoaded(function(){i.addClass("hidden").empty(),o.css("background-image","url("+n.url+")").hide().fadeIn(),$("[data-content=user-change-background]",a).removeClass("hidden"),$(a).removeClass("no-background"),$(".top-user").removeClass("no-background"),$("[data-content=user-upload-background]").hide(),$("[data-content=user-change-background]").show(),PF.fn.growl.expirable(PF.fn._s("Profile background image updated.")),s.remove()})}else i.addClass("hidden").empty(),PF.fn.growl.expirable(PF.fn._s("An error occurred. Please try again later."));t.data("uploading",!1)}}}else PF.fn.growl.call(PF.fn._s("Please select a valid image file type."))}),CHV.fn.user_background={delete:{submit:function(){return PF.obj.modal.form_data={action:"delete",delete:"background",owner:CHV.obj.resource.user.id},!0},deferred:{success:{before:function(e){$("[data-content=user-background-cover-src]").css("background-image","none"),$("[data-content=user-background-cover], .top-user").addClass("no-background"),$("[data-content=user-background-cover]").height(""),$("[data-content=user-upload-background]").removeClass("hidden").show(),$("[data-content=user-change-background]").hide()},done:function(e){PF.fn.modal.close(function(){PF.fn.growl.expirable(PF.fn._s("Profile background image deleted."))})}},error:function(e){PF.fn.growl.expirable(PF.fn._s("Error deleting profile background image."))}}}},CHV.fn.user_api={delete:{submit:function(){return PF.obj.modal.form_data={action:"delete",delete:"api_key",owner:CHV.obj.resource.user.id},!0},deferred:{success:{before:function(e){},done:function(e){PF.fn.modal.close(function(){location.reload()})}},error:function(e){PF.fn.growl.expirable(e.responseJSON.error.message)}}}},CHV.fn.user_two_factor={delete:{submit:function(){return PF.obj.modal.form_data={action:"delete",delete:"two_factor",owner:CHV.obj.resource.user.id},!0},deferred:{success:{before:function(e){},done:function(e){PF.fn.modal.close(function(){location.reload()})}},error:function(e){PF.fn.growl.expirable(e.responseJSON.error.message)}}}},CHV.str.mainform="[data-content=main-form]",CHV.obj.timezone={selector:"[data-content=timezone]",input:"#timezone-region"},$(document).on("keyup change",CHV.str.mainform+" :input",function(){$(this).is("[name=username]")&&$("[data-text=username]").text($(this).val())}),$(document).on("change",CHV.obj.timezone.input,function(){var e=$(this).val(),t=$("#timezone-combo-"+e);t.find("option:first").prop("selected",!0),$(CHV.obj.timezone.selector).val(t.val()).change()}),$(document).on("change","[id^=timezone-combo-]",function(){var e=$(this).val();$(CHV.obj.timezone.selector).val(e).change()}),$(document).on("keyup change blur","[name^=new-password]",function(){var e=$("[name=new-password]"),t=$("[name=new-password-confirm]"),a=e.val()==t.val(),o=t.closest(".input-password").find(".input-warning");0==o.exists()&&(o=$("[data-message=new-password-confirm]")),$(this).is(t)&&t.data("touched",!0),t.data("touched")&&o.text(a?"":o.data("text"))[a?"addClass":"removeClass"]("hidden-visibility")}),$(document).on("submit",CHV.obj.mainform,function(){switch($(this).data("type")){case"password":var e=$("[name=new-password]",this),t=$("[name=new-password-confirm]",this);if((""!==e.val()||""!==t.val())&&e.val()!==t.val())return e.highlight(),t.highlight(),PF.fn.growl.expirable(PF.fn._s("Passwords don't match")),!1}}),$(document).on("click","[data-action=check-for-updates]",function(){PF.fn.loading.fullscreen(),CHV.fn.system.checkUpdates(function(e){if(PF.fn.loading.destroy("fullscreen"),200===e.status){var t=e.responseJSON.software;-1==PF.fn.versionCompare(CHV.obj.system_info.version,t.current_version)?PF.fn.modal.simple({title:' '+PF.fn._s("Update available v%s",t.current_version),message:"

    "+PF.fn._s("There is an update available for this system.")+'

    ",html:!0}):PF.fn.growl.call(PF.fn._s("This website is running latest %s version",CHEVERETO.edition))}else PF.fn.growl.call(PF.fn._s("An error occurred. Please try again later."))})}),void 0!==PF.fn.get_url_var("checkUpdates")&&$("[data-action=check-for-updates]").click(),$(document).on("click","[data-action=system-update]",function(e){if(!$("input#system-update").prop("checked"))return PF.fn.growl.call(PF.fn._s("Please review the system requirements before proceeding")),void e.preventDefault()}),$(document).on("click","[data-action=toggle-storage-https]",function(){CHV.fn.storage.toggleHttps($(this).closest("[data-content=storage]").data("storage-id"))}),$(document).on("click","[data-action=toggle-storage-active]",function(){CHV.fn.storage.toggleActive($(this).closest("[data-content=storage]").data("storage-id"))}),$(CHV.fn.uploader.selectors.root).exists()&&(CHV.fn.uploader.$pasteCatcher=$("
    ",{contenteditable:"true",id:CHV.fn.uploader.selectors.paste.replace(/#/,"")}),$("body").append(CHV.fn.uploader.$pasteCatcher),$(document).on("keydown",function(e){!e.ctrlKey&&!e.metaKey||"KeyV"!=e.originalEvent.code||$(e.target).is(":input")||(PF.fn.keyFeedback.spawn(e),CHV.fn.uploader.$pasteCatcher.focus(e))}),document.addEventListener("dragover",function(e){e.preventDefault()}),document.addEventListener("drop",function(e){if(CHV.obj.config.upload.url){e.preventDefault();var t,a=e.dataTransfer.getData("text/html"),o=/src="?([^"\s]+)"?\s*/;t=o.exec(a),t&&(CHV.fn.uploader.toggle({show:!0}),CHV.fn.uploader.add({},t[1]))}}),window.addEventListener("paste",CHV.fn.uploader.pasteImageHandler)),$(document).on("click","[data-action=like]",function(){if(PF.fn.is_user_logged()){var e=$(this);if(!e.data("XHR")){e.data("XHR",!0);var t=$(this).is("[data-liked]")?$(this):$(this).closest("[data-liked]"),a=!t.closest("[data-list], .viewer").exists()&&void 0!==CHV.obj.resource,o=t.is("[data-liked=1]"),i=o?"dislike":"like",n={id:a?CHV.obj.resource.id:$(this).closest("[data-id]").attr("data-id"),type:a?CHV.obj.resource.type:$(this).closest("[data-type]").attr("data-type")},s=a?e:$("[data-type="+n.type+"][data-id="+n.id+"]"),r={type:"POST",data:{action:i},cache:!1};r.data[i]={object:n.type,id:n.id},$.ajax(r).complete(function(t){var i=t.responseJSON;e.data("XHR",!1),200===i.status_code?(a&&void 0!==i.content&&$("[data-text=likes-count]").html(i.content.likes),s.closest("[data-liked]").attr("data-liked",o?0:1)):PF.fn.growl.expirable(PF.fn._s("An error occurred. Please try again later."))})}}else window.location.href=CHV.obj.vars.urls.login}),$(document).on("click","[data-action=album-cover]",function(){var e=$(this);if(!e.data("XHR")){e.data("XHR",!0);var t=$(this).is("[data-cover]")?$(this):$(this).closest("[data-cover]"),a=t.is("[data-cover=1]"),o=a?"album-cover-unset":"album-cover-set",i=(CHV.obj.resource.id,e.closest("[data-cover]")),n={type:"POST",data:{action:o},cache:!1};n.data[o]={album_id:i.data("album-id"),image_id:i.data("id")},$.ajax(n).complete(function(t){var o=t.responseJSON;e.data("XHR",!1),200===o.status_code?i.attr("data-cover",a?0:1):PF.fn.growl.expirable(PF.fn._s("An error occurred. Please try again later."))})}}),$(document).on("click","[data-action=follow]",function(){if(PF.fn.is_user_logged()){var e=$(this);if(!e.data("XHR")){e.data("XHR",!0);var t=$(this).is("[data-followed]")?$(this):$(this).closest("[data-followed]"),a=void 0!==CHV.obj.resource,o=t.is("[data-followed=1]"),i=o?"unfollow":"follow",n={id:a?CHV.obj.resource.id:$(this).closest("[data-id]").data("id"),type:a?CHV.obj.resource.type:$(this).closest("[data-type]").data("type")},s={type:"POST",data:{action:i},cache:!1};s.data[i]={object:n.type,id:n.id},$.ajax(s).complete(function(i){var n=i.responseJSON;if(e.data("XHR",!1),200===n.status_code){if(a&&void 0!==n.user_followed){var s=$("[data-text=followers-label]"),r={single:s.data("label-single"),plural:s.data("label-plural")};$("[data-text=followers-count]").html(n.user_followed.followers),s.html(PF.fn._n(r.single,r.plural,n.user_followed.followers))}t.attr("data-followed",o?0:1)}else PF.fn.growl.expirable(PF.fn._s("An error occurred. Please try again later."))})}}else PF.fn.modal.call({type:"login"})}),$(document).on("click","[data-action=user_ban],[data-action=user_unban]",function(){var e=$(this);if(!e.data("XHR")){e.data("XHR",!0);var t=$(this).closest("[data-banned]"),a=!0,o=t.is("[data-banned=1]"),i=e.attr("data-action"),n={id:a?CHV.obj.resource.id:$(this).closest("[data-id]").data("id"),type:a?CHV.obj.resource.type:$(this).closest("[data-type]").data("type")},s={type:"POST",data:{action:i},cache:!1};s.data[i]={user_id:n.id},$.ajax(s).complete(function(a){var i=a.responseJSON;e.data("XHR",!1),200===i.status_code?t.attr("data-banned",o?0:1):PF.fn.growl.expirable(PF.fn._s("An error occurred. Please try again later."))})}}),$(document).on("click","[data-action=top-bar-notifications]",function(e){var a=this,o=$(this),i=$(".top-bar-notifications-container",o),n=$(".top-bar-notifications-list",o),s=$("ul",n),r=$(".loading",i);o.data("XHR")||(r.removeClass("hidden"),PF.fn.loading.inline(r,{size:"small",message:PF.fn._s("loading")}),$.ajax({type:"POST",data:{action:"notifications"},cache:!1}).complete(function(e){var l=e.responseJSON;if(200!==l.status_code)return PF.fn.growl.expirable(PF.fn._s("An error occurred. Please try again later.")),o.data("XHR",!1),void r.addClass("hidden").html("");if(o.data("XHR",!0),r.remove(),l.html){n.removeClass("hidden"),s.html(l.html),t();var d=$("li.new",s);d.addClass("transition"),setTimeout(function(){d.removeClass("new"),$("[data-content=notifications-counter]",a).removeClass("on").html("0"),setTimeout(function(){d.removeClass("transition")},150)},1500)}else $(".empty",i).removeClass("hidden")}))}),$("#g-recaptcha").is(":empty")&&CHV.obj.config.captcha.enabled&&CHV.obj.config.captcha.sitekey&&("3"!=CHV.obj.config.captcha.version&&CHV.obj.config.captcha.isNeeded||$('label[for="recaptcha_response_field"]').remove()),$(document).on("click",PF.obj.listing.selectors.list_item+" a.image-container",function(e){var t=$(this).closest(PF.obj.listing.selectors.list_item),o=t.find("[data-action=load-image]");o.length>0&&(a(o),e.preventDefault())}),$(document).on("click",PF.obj.listing.selectors.list_item+" [data-action=load-image]",function(e){a($(this)),e.preventDefault(),e.stopPropagation()}),$(document).on("click","#album [data-tab=tab-embeds]",function(e){e.preventDefault,CHV.fn.album.showEmbedCodes()}),$("body").is("#upload")&&CHV.fn.uploader.toggle({show:!0}),$(document).on("keyup",function(e){if(!($(e.target).is(":input")||e.ctrlKey||e.metaKey||e.altKey)){var t=$("#fullscreen-modal:visible").exists(),a=$(".viewer"),o=$(".list-selection:visible"),i=o.find("[data-content=pop-selection]:visible:not(.disabled)"),n=$("body").hasClass("--viewer-shown"),s=$(CHV.fn.uploader.selectors.root+CHV.fn.uploader.selectors.show).exists(),r=e.originalEvent.code;if("Escape"===e.originalEvent.code){if(t)return;s&&CHV.fn.uploader.toggle({reset:!1})}if(a.exists()&&n){if(r in CHV.fn.listingViewer.keys){var l=["KeyW","Escape","ArrowLeft","ArrowRight"],d=CHV.fn.listingViewer.keys[r];-1==l.indexOf(r)?$("[data-action="+d+"]",CHV.fn.listingViewer.selectors.root).click():d in CHV.fn.listingViewer&&CHV.fn.listingViewer[d](),PF.fn.keyFeedback.spawn(e)}}else{var c,u={Period:"list-select-all",KeyK:"get-embed-codes",KeyZ:"clear",KeyA:"create-album",KeyM:"move",KeyO:"approve",Delete:"delete",KeyC:"assign-category",KeyV:"flag-safe",KeyF:"flag-unsafe",KeyH:"album-cover"},m={KeyE:"edit",KeyL:"like",KeyS:"share",KeyJ:"sub-album",KeyP:"upload-to-album"};d=u[r]||m[r];void 0!==d&&(o.exists()&&(n||t||parseInt($("[data-text=selection-count]:visible",i).text())>0&&(c=$("[data-action="+d+"]",o.closest(".list-selection")))),void 0===c&&(c=$("[data-action="+d+"]:visible").not("#content-listing-tabs *")),c instanceof jQuery&&c.length>0&&(c.first().trigger("click"),PF.fn.keyFeedback.spawn(e)))}}}),$(document).on("click",CHV.fn.listingViewer.selectors.root+" [data-action^=viewer-]",function(){var e=$(this).data("action").substring("viewer-".length);e in CHV.fn.listingViewer&&CHV.fn.listingViewer[e]()}),$(document).on("click","a[data-href]:not([rel=popup-link]):not(.popup-link)",function(){var e=$(this).attr("data-href"),t=$(this).attr("href");(e||t)&&(location.href=t||e)});var b,v=PF.obj.listing.selectors.list_item+", .image-container";($(document).on("contextmenu click",v,function(e){$(".list-selection:visible").exists()&&!$(this).closest(CHV.fn.listingViewer.selectors.root).exists()&&("click"!=e.type||e.ctrlKey||e.metaKey)&&o(this,e)}),navigator.userAgent.match(/(iPad|iPhone|iPod)/i))&&$(document).on("mouseup mousemove",v,function(e){return clearTimeout(b),!1}).on("mousedown",v,function(e){var t=this,a=e;return b=window.setTimeout(function(){$(".list-selection:visible").exists()&&!$(t).closest(CHV.fn.listingViewer.selectors.root).exists()&&o(t,a)},500),!1});void 0!==CHV.obj.config&&CHV.obj.config.listing.viewer&&$(document).on("click",PF.obj.listing.selectors.list_item+"[data-type=image] .image-container",function(e){if(e.preventDefault(),e.stopPropagation(),0!==e.clientX||0!==e.clientY){var t=$(this).closest(PF.obj.listing.selectors.list_item);t.exists()&&(e.ctrlKey||e.metaKey||CHV.fn.listingViewer.open(t))}else PF.fn.keyFeedback.spawn(e)}),$(document).on("contextmenu",CHV.fn.listingViewer.selectors.root,function(e){return e.preventDefault(),CHV.fn.listingViewer.zoom(),PF.fn.keyFeedback.spawn(e),!1});var _,w=PF.fn.deparam(window.location.search);if(w&&"viewer"in w){var C=$(PF.obj.listing.selectors.content_listing_visible);if("images"==C.data("list")){var H=$(PF.obj.listing.selectors.list_item,C)["next"==w.viewer?"first":"last"]();CHV.fn.listingViewer.open(H)}}$(window).on("DOMContentLoaded load resize scroll",function(){clearTimeout(_),_=setTimeout(function(){$(PF.obj.listing.selectors.list_item+":visible").each(function(){var e=$(this).find('[data-action="load-image"]').first(),t=PF.fn.deparam($(PF.obj.listing.selectors.list_item+"[data-id="+$(this).attr("data-id")+"]").closest(".content-listing").data("params-hidden")),o=t&&"is_animated"in t?t.is_animated:$(this).data("size")<=CHV.obj.config.image.load_max_filesize.getBytes();e.exists()&&o&&$(this).is_within_viewport(50)&&a(e)})},1e3)}),$(document).on("click","[data-action=logout]",function(){let e=$("form#form-logout");e.submit()}),Boolean(window.navigator.vibrate)&&$(document).on("click","button, .btn, .pop-btn, .top-btn-el, [data-action], .content-tabs a, .top-bar-logo a, .login-provider-button, .panel-share-networks li a, #image-viewer-loader",function(e){$(this).is("[data-action=top-bar-menu-full]")||(window.navigator.vibrate(0),window.navigator.vibrate(15))}),$(document).on("change keyup",CHV.fn.ctaForm.selectors.rows+" input[name^='cta-']",function(){CHV.fn.ctaForm.update($(this))}),$(document).on("click",CHV.fn.ctaForm.selectors.rows+" [data-action=cta-add]",function(){CHV.fn.ctaForm.insert($(this))}),$(document).on("click",CHV.fn.ctaForm.selectors.rows+" [data-action=cta-remove]",function(){CHV.fn.ctaForm.remove($(this)),0==CHV.fn.ctaForm.array.length&&$(CHV.fn.ctaForm.selectors.root+" "+CHV.fn.ctaForm.selectors.enable).prop("checked",!1).trigger("change")}),$(document).on("change",CHV.fn.ctaForm.selectors.root+" "+CHV.fn.ctaForm.selectors.enable,function(){let e=$(CHV.fn.ctaForm.selectors.combo,CHV.fn.ctaForm.selectors.root),t=$(this).is(":checked");e.toggleClass("soft-hidden",!t),t&&(0==CHV.fn.ctaForm.array.length&&CHV.fn.ctaForm.add(),CHV.fn.ctaForm.render()),CHV.fn.ctaForm.setEnable(t?1:0)}),$(document).on("change keyup",CHV.fn.ctaForm.selectors.root+" input[name^='cta-icon_']",function(){let e=CHV.fn.ctaForm.getRow($(this)),t=e.find("label[for^='cta-icon_'] [data-content=icon]");t.removeClass();let a=CHV.fn.ctaForm.getIconClass($(this).val());t.addClass(a)})}),"undefined"==typeof CHV&&(CHV={obj:{},fn:{},str:{}}),window.opener&&(CHV.obj.opener={uploadPlugin:{}}),CHV.fn.ctaButtons={selectors:{container:"[data-contains=cta-album]"},render:function(e=""){$(this.selectors.container).each(function(){$(this).html(e)})}},CHV.fn.ctaForm={enable:0,array:[],selectors:{root:"#cta-form",rows:"#cta-rows",enable:"#cta-enable",template:"#cta-row-template",combo:"#cta-combo",row:".cta-row"},update:function(e){let t=this.getPos(e),a=e.attr("name").match(/cta-(.*)?_\d+/)[1];this.array[t-1][a]=e.val()},add:function(e="",t="",a=""){this.array.push(this.getRowObject(e,t,a)),this.render()},insert:function(e){let t=this.getPos(e);this.array.splice(t,0,this.getRowObject()),this.render()},remove:function(e){let t=this.getPos(e);this.array.splice(t-1,1),this.render()},getRowObject:function(e="",t="",a=""){return{label:e,icon:t,href:a}},getIconClass:function(e){return/\s/g.test(e)?e:"fa-solid fa-"+e},getRow:function(e){return e.closest(this.selectors.row)},getPos:function(e){return this.getRow(e).data("pos")},getTemplateHtml:function(){return $(this.selectors.template).html()},getRowHtml:function(e,t){return this.getTemplateHtml().replaceAll(/%pos%/g,e).replaceAll(/%label%/g,t.label).replaceAll(/%href%/g,t.href).replaceAll(/%icon%/g,t.icon).replaceAll(/%iconClass%/g,this.getIconClass(t.icon))},render:function(){let e=$(this.selectors.root),t=e.find(this.selectors.rows),a=this;this.destroy(),$.each(this.array,function(e,o){t.append(a.getRowHtml(e+1,o))}),this.setEnable(this.enable),t.sortable({cursor:"grabbing",axis:"y",update:function(){let e=[];$(this).find(a.selectors.row).each(function(){let t=a.getPos($(this));e.push(a.array[t-1])}),a.array=e,a.render()}})},setEnable:function(e){let t=$(this.selectors.rows,this.selectors.root);this.enable=e;let a=1===this.enable;$("input[data-required]",t).each(function(){$(this).attr("required",a)})},destroy:function(){let e=$(this.selectors.root),t=e.find(this.selectors.rows);try{t.sortable("destroy")}catch(e){}t.empty()}},CHV.fn.album={showEmbedCodes:function(){var e=$(".content-listing-loading","#tab-embeds");if(e.exists()){var t=$("#embed-codes");$.ajax({url:PF.obj.config.json_api,type:"POST",dataType:"json",data:{action:"get-album-contents",albumid:CHV.obj.resource.id,auth_token:PF.obj.config.auth_token},cache:!1}).always(function(a){PF.fn.loading.destroy(e),200==a.status_code&&(CHV.fn.fillEmbedCodes(a.contents,"#tab-embeds"),$("#tab-embeds").addClass("visible"),t.removeClass("soft-hidden"))})}}},CHV.fn.modal={getTemplateWithPreview:function(e,t){var a=$(e).html(),o=$("
    "),i="",n=t.find(".image-container img").attr("src");return void 0!==n&&(i+='';var e=$(this).find(".image-container img");e.exists()?n+='':(n+='',n+=''),n+="",s++}),i.html(o).find(".image-preview").html(n),i.html()}},CHV.fn.listingViewer={selectors:{bodyShown:".--viewer-shown",content:".viewer-content",template:"#viewer-template",root:".viewer",rootShow:".viewer--show",rootHide:".viewer--hide",rootZero:".viewer--zero",rootNavPrev:".viewer--nav-prev",rootNavNext:".viewer--nav-next",src:".viewer-src",tools:".viewer-tools",loader:".viewer-loader",owner:".viewer-owner",ownerGuest:".viewer-owner--guest",ownerUser:".viewer-owner--user",inputMap:".viewer-kb-input"},keys:{Period:"select",KeyL:"like",KeyF:"flag",KeyE:"edit",KeyM:"move",KeyA:"create-album",KeyO:"approve",Delete:"delete",Escape:"close",ArrowLeft:"prev",ArrowRight:"next",KeyW:"zoom"},keymap:{select:[".",PF.fn._s("Toggle select")],like:["L",PF.fn._s("Like")],"create-album":["A",PF.fn._s("Create album")],flag:["F",PF.fn._s("Toggle flag")],edit:["E",PF.fn._s("Edit")],move:["M",PF.fn._s("Album")],approve:["O",PF.fn._s("Approve")],delete:["Del",PF.fn._s("Delete")],close:["Esc",PF.fn._s("Close")],prev:["◄",PF.fn._s("Previous")],next:["►",PF.fn._s("Next")],zoom:["W",PF.fn._s("Zoom")]},loading:null,idleTimer:0,$item:null,show:function(){PF.fn.deparam(this.$item.closest(PF.obj.listing.selectors.content_listing_visible).data("params-hidden"));this.getEl("root").removeClass(this.selectors.rootHide.substring(1)).addClass(this.selectors.rootShow.substring(1)),$("body").addClass(this.selectors.bodyShown.substring(1));var e=new Hammer($(CHV.fn.listingViewer.selectors.root).get(0),{direction:Hammer.DIRECTION_VERTICAL});e.on("swipeleft swiperight",function(e){var t="left"==e.type.substring("swipe".length)?"next":"prev";CHV.fn.listingViewer[t]()}),this.getEl("root")[(PF.fn.isDevice(["phone","phablet"])?"add":"remove")+"Class"]("--over")},getItem:function(){return this.$item},getEl:function(e){var t=!e.startsWith("template")&&!e.startsWith("root")&&this.selectors.root;return t?$(this.selectors[e],t):$(this.selectors[e])},getObject:function(e){if(e||void 0===this.object){var t=decodeURIComponent(this.getItem().attr("data-object"));this.object=JSON&&JSON.parse(t)||$.parseJSON(t)}return this.object},placeholderSizing:function(){if(this.getEl("root").exists()){var e=Math.max(document.documentElement.clientWidth,window.innerWidth||0),t=Math.max(document.documentElement.clientHeight,window.innerHeight||0),a=e/t,o=this.getEl("src")[0],i=o.getAttribute("width"),n=o.getAttribute("height"),s=i/n,r=a0?"add":t.getItem()[o]().exists()?"add":"remove";a[n+"Class"](i.substring(1))}),$.each(this.getItem().get(0).attributes,function(e,t){if(!t.name.startsWith("data-"))return!0;a.attr(t.name,t.value)});var n=void 0===this.object.user?"user":"guest";n="owner"+(n.charAt(0).toUpperCase()+n.slice(1).toLowerCase()),this.getEl(n).remove(),void 0!==this.object.user&&$(this.object.user.avatar?".default-user-image":"img.user-image",this.getEl("ownerUser")).remove();var s=this.getItem().find(".list-item-image-tools[data-action='list-tools']");this.getEl("tools").append(s.html());let r=this;this.getEl("tools").find(".list-tool[data-action]").each(function(){$(this).attr("title",$(this).attr("title")+" ("+r.keymap[$(this).attr("data-action")][0]+")")}),console.log("aaaa"),this.placeholderSizing(),this.trickyLoad()},zoom:function(){this.getEl("root").attr("data-cover","1"==this.getEl("root").attr("data-cover")?"0":"1")},remove:function(){this.getEl("root").remove()},getParsedTemplate:function(){var e=this.getObject(!0),t=this.getEl("template").html(),a=t.match(/%(\S+)%/g);return console.log(e),a&&$.each(a,function(a,o){var i,n=o.slice(1,-1).split(".");n.map(function(t){var a=i||e;t in a&&(i=a[t])});var s=new RegExp(o,"g");t=t.replace(s,i)}),t},insertEl:function(){var e=this.getParsedTemplate();this.getEl("rootZero").remove(),$(e).appendTo("body")},toggleIdle:function(e,t){var a=this;t=void 0===t||t;$("html")[(e?"add":"remove")+"Class"]("--idle"),e||(clearTimeout(a.idleTimer),t&&(a.idleTimer=setTimeout(function(){var e=$(".fullscreen"),t=a.getEl("root");a.toggleIdle(t.length>0&&0==e.length)},5e3)))},open:function(e){if(e.exists()){this.setItem(e),this.insertEl(),this.filler(),this.show(),this.toggleIdle(!1);var t=this;this.getEl("root").on("mousemove mouseout",function(){t.toggleIdle(!1)})}else this.getEl("rootZero").remove()},setItem:function(e){this.$item=e},trickyLoad:function(){if(this.object.image.url!=this.object.display_url){var e=this.getEl("src").parent().html(),t=$(e).attr("src",this.object.image.url);t.insertBefore(this.getEl("src")),t.imagesLoaded(function(){t.next().remove()})}},close:function(){var e=this;$(this.selectors.root).removeClass(this.selectors.rootShow.substring(1)).addClass(this.selectors.rootHide.substring(1)),$("body").removeClass(this.selectors.bodyShown.substring(1)),this.toggleIdle(!1,!1),null!==this.getItem()&&$(window).scrollTop(this.getItem().offset().top);var t=$("#top-bar, .follow-scroll");t.attr("data-scroll-lock","1"),setTimeout(function(){e.remove()},250),setTimeout(function(){t.removeAttr("data-scroll-lock")},300)},browse:function(e){var t=this.getItem()[e]();if(t.exists()){this.setItem(t),this.filler(!0);var a=$(PF.obj.listing.selectors.content_listing_visible).find("[data-action=load-more]"),o=t[e+"All"]().length;a.length>0&&o<=5&&!PF.obj.listing.calling&&"next"==e&&$("[data-action=load-more]").click()}else{var i=$("[data-pagination="+e+"]",PF.obj.listing.selectors.content_listing_pagination+":visible"),n=i.attr("href");if(!n)return;PF.fn.deparam(window.location.search);window.location.href=n+"&viewer="+e}},prev:function(){this.browse("prev")},next:function(){this.browse("next")}},CHV.obj.image_viewer={selector:"#image-viewer",container:"#image-viewer-container",navigation:".image-viewer-navigation",loading:"#image-viewer-loading",loader:"#image-viewer-loader"},CHV.obj.image_viewer.$container=$(CHV.obj.image_viewer.container),CHV.obj.image_viewer.$navigation=$(CHV.obj.image_viewer.navigation),CHV.obj.image_viewer.$loading=$(CHV.obj.image_viewer.loading),CHV.fn.system={checkUpdates:function(e){$.ajax({url:CHEVERETO.api.get.info+"/",data:{id:CHEVERETO.id},cache:!1}).always(function(t,a,o){"function"==typeof e&&e(o)})}},("MacIntel"===navigator.platform&&navigator.maxTouchPoints>0||"iPad"===navigator.platform)&&$("html").removeClass("device-nonmobile"),CHV.fn.bindSelectableItems=function(){var e="content-listing-wrapper",t="#"+e;$(t).exists()?$(t).hasClass("ui-selectable")&&$(t).selectable("destroy"):$("#content-listing-tabs").wrap("
    "),$("[data-content=list-selection]").exists()&&$("html.device-nonmobile "+t).selectable({delay:150,filter:PF.obj.listing.selectors.list_item,cancel:".content-empty, .header, #tab-share, #tab-info, .viewer-title, .header-link, .top-bar, .content-listing-pagination *, #fullscreen-modal, #top-user, #background-cover, .list-item-desc, .list-item-image-tools, [data-action=load-image], #tab-embeds",classes:{"ui-selected":"selected"},selected:function(e,t){$(t.selected).removeClass("ui-selected")},selecting:function(e,t){var a=$(t.selecting),o=a.hasClass("selected");CHV.fn.list_editor[(o?"unselect":"select")+"Item"](a)},unselecting:function(e,t){CHV.fn.list_editor.unselectItem($(t.unselecting))}})},CHV.fn.isCachedImage=function(e){var t=new Image;return t.src=e,t.complete||t.width+t.height>0},CHV.fn.viewerLoadImage=function(){if(CHV.obj.image_viewer.$loading.exists()&&(CHV.obj.image_viewer.$loading.removeClass("soft-hidden").css({zIndex:2}),PF.fn.loading.inline(CHV.obj.image_viewer.$loading,{color:"white",size:"small",center:!0,valign:!0}),CHV.obj.image_viewer.$loading.hide().fadeIn("slow")),$(CHV.obj.image_viewer.loader).remove(),CHV.obj.image_viewer.image.is_360)return PF.fn.loading.destroy(CHV.obj.image_viewer.$loading),pannellum.viewer("image-viewer-360",{autoLoad:!0,type:"equirectangular",panorama:CHV.obj.image_viewer.image.url,preview:CHV.obj.image_viewer.$container.find("img").eq(0).attr("src"),pitch:2.3,yaw:-135.4,hfov:120}),$("#image-viewer-360").removeClass("soft-hidden"),void CHV.obj.image_viewer.$container.find("img").eq(0).remove();CHV.obj.image_viewer.image.html=CHV.obj.image_viewer.$container.html(),CHV.obj.image_viewer.$container.prepend($(CHV.obj.image_viewer.image.html).css({top:0,zIndex:0,opacity:0,position:"absolute"})),CHV.obj.image_viewer.$container.find("img").eq(0).css("zIndex",1),CHV.obj.image_viewer.$container.find("img").eq(1).attr("src",CHV.obj.image_viewer.image.url),CHV.obj.image_viewer.$container.find("img").eq(1).imagesLoaded(function(){CHV.obj.image_viewer.$container.find("img").eq(1).css({position:"",display:""}),CHV.obj.image_viewer.$container.find("img").eq(0).remove(),PF.fn.loading.destroy(CHV.obj.image_viewer.$loading)})},CHV.obj.embed_share_tpl={},CHV.obj.embed_upload_tpl={},CHV.obj.topBar={transparencyScrollToggle:function(){var e=$(window).scrollTop();$("#top-bar")[(e>0?"remove":"add")+"Class"]("transparent")}},CHV.obj.uploaderReset={isUploading:!1,canAdd:!0,queueStatus:"ready",uploadThreads:0,uploadParsedIds:[],uploadProcessedIds:[],files:{},results:{success:{},error:{}},toggleWorking:0,filesAddId:0,clipboardImages:[]},CHV.fn.uploader={files:{},selectors:{root:"#anywhere-upload",show:".upload-box--show",queue:"#anywhere-upload-queue",queue_complete:".queue-complete",queue_item:".queue-item",close_cancel:"[data-button=close-cancel]",file:"#anywhere-upload-input",camera:"#anywhere-upload-input-camera",upload_item_template:"#anywhere-upload-item-template",item_progress_bar:"[data-content=progress-bar]",failed_result:"[data-content=failed-upload-result]",fullscreen_mask:"#fullscreen-uploader-mask",dropzone:"#uploader-dropzone",paste:"#anywhere-upload-paste",input:"[data-action=anywhere-upload-input]"},toggle:function(e,t){this.queueSize();var a=$("[data-action=top-bar-upload]",".top-bar"),o=!$(CHV.fn.uploader.selectors.root).data("shown");e=$.extend({callback:null,reset:!0},e);if(void 0!==e.show&&e.show&&(o=!0),PF.fn.growl.close(!0),PF.fn.close_pops(),!(1==this.toggleWorking||$(CHV.fn.uploader.selectors.root).is(":animated")||CHV.fn.uploader.isUploading||a.data("login-needed")&&!PF.fn.is_user_logged())){this.toggleWorking=1;var i={time:500,easing:null},n=function(){!o&&e.reset&&CHV.fn.uploader.reset(),PF.fn.topMenu.hide(),"function"==typeof e.callback&&e.callback(t),CHV.fn.uploader.boxSizer(),CHV.fn.uploader.toggleWorking=0};if($(CHV.fn.uploader.selectors.root)[(o?"add":"remove")+"Class"](this.selectors.show.substring(1)),o){if($("html").data({"followed-scroll":$("html").hasClass("followed-scroll"),"top-bar-box-shadow-prevent":!0 +}).removeClass("followed-scroll").addClass("overflow-hidden top-bar-box-shadow-none"),$("#top-bar").data({stock_classes:$("#top-bar").attr("class")}),$(".current[data-nav]",".top-bar").each(function(){$(this).is("[data-action=top-bar-menu-full]")||$(this).removeClass("current").attr("data-current",1)}),PF.fn.isDevice("mobile")){var s=$(".upload-box-heading",$(CHV.fn.uploader.selectors.root));s.css({position:"relative",top:.5*($(window).height()-s.height())+"px"})}CHV.fn.uploader.focus(function(){setTimeout(function(){n()},i.time)})}else{$("[data-nav][data-current=1]",".top-bar").each(function(){$(this).addClass("current")}),setTimeout(function(){$(CHV.fn.uploader.selectors.fullscreen_mask).css({opacity:0})},.1*i.time),setTimeout(function(){$(CHV.fn.uploader.selectors.fullscreen_mask).remove()},i.time);var r=$(CHV.fn.uploader.selectors.root).outerHeight(),l=r-parseInt($(CHV.fn.uploader.selectors.root).data("initial-height"))+"px";$(CHV.fn.uploader.selectors.root).css({transform:"translate(0,-"+l+")"}),setTimeout(function(){$(CHV.fn.uploader.selectors.root).css({top:""}),n(),$("html,body").removeClass("overflow-hidden").data({"top-bar-box-shadow-prevent":!1}),$("#top-bar *").trigger("blur")},i.time)}$(CHV.fn.uploader.selectors.root).data("shown",o),a.toggleClass("current").removeClass("opened")}},reset:function(){$.extend(this,$.extend(!0,{},CHV.obj.uploaderReset)),$("li",this.selectors.queue).remove(),$(this.selectors.root).height("").css({"overflow-y":"","overflow-x":""}),$(this.selectors.queue).addClass("queueEmpty").removeClass(this.selectors.queue_complete.substring(1)),$(this.selectors.input,this.selectors.root).each(function(){$(this).prop("value",null)}),$("[data-group=upload-result] textarea",this.selectors.root).prop("value",""),$.each(["upload-queue-ready","uploading","upload-result","upload-queue-ready","upload-queue"],function(e,t){$("[data-group="+t+"]").hide()}),$("[data-group=upload]",this.selectors.root).show(),$("[name=upload-album-id]",this.selectors.root).prop("value",function(){var e=$("option[selected]",this);if(e.exists())return e.attr("value")}),$(this.selectors.root).removeClass("queueCompleted queueReady queueHasResults").addClass("queueEmpty").attr("data-queue-size",0),$("[name=upload-category-id]",this.selectors.root).prop("value",""),$("[name=upload-nsfw]",this.selectors.root).prop("checked",this.defaultChecked),this.boxSizer(!0)},focus:function(e){$(this.selectors.fullscreen_mask).exists()||($("body").is("#upload")||$("body").append($("
    ",{id:this.selectors.fullscreen_mask.replace("#",""),class:"fullscreen black"}).css({top:PF.fn.isDevice("phone")?0:$(CHV.fn.uploader.selectors.root).data("top")})),setTimeout(function(){$("body").is("#upload")||$(CHV.fn.uploader.selectors.fullscreen_mask).css({opacity:1}),setTimeout(function(){"function"==typeof e&&e()},PF.fn.isDevice(["phone","phablet"])?0:250)},1))},boxSizer:function(e){var t=$(this.selectors.root).is(this.selectors.show),a=t||e;t&&$("html").addClass("overflow-hidden"),a&&($(this.selectors.root).height(""),!$("body").is("#upload")&&$(this.selectors.root).height()>$(window).height()?($(this.selectors.root).height($(window).height()-$("#top-bar").height()).css({"overflow-y":"scroll","overflow-x":"auto"}),$("body").addClass("overflow-hidden")):$(this.selectors.root).css("overflow-y",""))},pasteURL:function(){var e=$("[name=urls]",PF.obj.modal.selectors.root),t=e.val();t&&(CHV.fn.uploader.toggle({show:!0}),CHV.fn.uploader.add({},t))},pasteImageHandler:function(e){if(!$(e.target).is(":input")){if(void 0!==e.clipboardData&&e.clipboardData.items)var t=e.clipboardData.items;else setTimeout(function(){return e.clipboardData={},e.clipboardData.items=[],$.each($("img",CHV.fn.uploader.$pasteCatcher),function(t,a){e.clipboardData.items.push(PF.fn.dataURItoBlob($(this).attr("src")))}),$(CHV.fn.uploader.selectors.paste).html(""),CHV.fn.uploader.pasteImageHandler(e)},1);if(t){const e=new Array,i=new Array;let n=$(CHV.fn.uploader.selectors.root).data("shown");for(var a=0;ap||f==p){var h=pp&&$img.height(h).width(h*g)}if(f0){var v="";for(l=0;l"+PF.fn.htmlEncode(m[l].name)+"",delete CHV.fn.uploader.files[m[l].uid],$("li[data-id="+m[l].uid+"]",CHV.fn.uploader.selectors.queue).find("[data-action=cancel]").click();PF.fn.modal.simple({title:PF.fn._s("Some files couldn't be added"),message:"
      "+v+"
    "})}else CHV.fn.uploader.focus();CHV.fn.uploader.boxSizer()}},$.extend({},C,{orientation:a.exif?a.exif.get("Orientation"):1})),setTimeout(function(){o(e+1)},25)}))}else PF.fn.loading.destroy("fullscreen")}var i;if(!this.canAdd){e=e.originalEvent;return e.preventDefault(),e.stopPropagation(),!1}$fileinput=$(this.selectors.file),$fileinput.replaceWith($fileinput=$fileinput.clone(!0));var n=$(this.selectors.upload_item_template).html();let s=[],r=[];if(void 0===t){e=e.originalEvent;e.preventDefault(),e.stopPropagation();var l=e.dataTransfer||e.target;if("items"in l)for(var d=l.items,c=0;cCHV.obj.config.image.max_filesize.getBytes()?m.push({uid:c,name:p.name.truncate_middle()+" - "+PF.fn._s("File too big.")}):-1!=CHV.obj.config.upload.image_types.indexOf(f)||0!=/android/i.test(navigator.userAgent)?(i&&(p.md5=i),p.fromClipboard=1==e.clipboard,p.uid=c):m.push({uid:c,name:p.name.truncate_middle()+" - "+PF.fn._s("Invalid or unsupported file format.")})}for(c=0;c0&&0==s.length){var h="";for(c=0;c"+PF.fn.htmlEncode(m[c].name)+"";return void PF.fn.modal.simple({title:PF.fn._s("Some files couldn't be added"),message:"
    • "+h+"
    "})}if(0==s.length)return}else{if(t=t.replace(/(<([^>]+)>)/g,"").replace(/(\[([^\]]+)\])/g,""),s=t.match_urls(),!s)return;s=s.array_unique(),s=$.map(s,function(e,t){return{uid:t,name:e,url:e}})}if($.isEmptyObject(this.files))for(c=0;c0){var i=[];for(var o in this.results.error)"object"==typeof this.results.error[o]&&(i[o]=this.results.error[o].error.message);i.length>0&&$(this.selectors.failed_result).html("
  • "+i.join("
  • ")+"
  • ")}else $(a.error,this.selectors.root).hide();if(!window.opener&&0==CHV.obj.config.upload.moderation&&CHV.obj.config.upload.redirect_single_upload&&1==Object.size(this.results.success)&&0==Object.size(this.results.error))return window.location.href=this.results.success[Object.keys(this.results.success)[0]].image.path_viewer,!1;if($("[data-text=queue-progress]",this.selectors.root).text(100),$("[data-group=uploading]",this.selectors.root).hide(),$(this.selectors.root).removeClass("queueUploading queueHasResults").addClass("queueCompleted"),$(this.selectors.queue).addClass(this.selectors.queue_complete.substring(1)),Object.size(this.results.success)>0&&$("[data-group=upload-result] textarea",this.selectors.root).exists()&&CHV.fn.fillEmbedCodes(this.results.success,CHV.fn.uploader.selectors.root,"val"),Object.size(this.results.success)>0&&Object.size(this.results.error)>0?$(a.mixed+", "+a.success,this.selectors.root).show():Object.size(this.results.success)>0?$(a.success,this.selectors.root).show():Object.size(this.results.error)>0&&$(a.error,this.selectors.root).show(),$(a.success,this.selectors.root).is(":visible")){$(a.success,this.selectors.root).find("[data-group^=user], [data-group=guest]").hide(),$(a.success,this.selectors.root).find("[data-group="+(PF.fn.is_user_logged()?"user":"guest")+"]").show();var n=Object.keys(this.results.success)[0];if(void 0!==this.results.success[n].image.album){var s=[];for(var r in this.results.success){var l=this.results.success[r].image;l.album&&l.album.id_encoded&&-1==s.indexOf(l.album.id_encoded)&&s.push(l.album.id_encoded)}var d={link:null,text:null};if(s.length<=1?(d.link=this.results.success[n].image.album.url,d.text=this.results.success[n].image.album.name):(d.link=this.results.success[n].image.user.url_albums,d.text=PF.fn._s("%s's Albums",this.results.success[n].image.user.name_short_html)),$("[data-text=upload-target]",this.selectors.root).text(d.text),$("[data-link=upload-target]",this.selectors.root).attr("href",d.link),PF.fn.is_user_logged()){var c=s.length>0?"album":"stream";$("[data-group=user-"+c+"]",this.selectors.root).show()}}}if(this.boxSizer(),this.queueStatus="done",window.opener&&void 0!==CHV.obj.opener.uploadPlugin[window.name]){if($('[data-action="copy"]',this.selectors.root).remove(),CHV.obj.opener.uploadPlugin[window.name].hasOwnProperty("autoInsert")&&CHV.obj.opener.uploadPlugin[window.name].autoInsert){var u=$(':input[name="'+CHV.obj.opener.uploadPlugin[window.name].autoInsert+'"]',CHV.fn.uploader.selectors.root),m=u.val();if(m)return window.opener.postMessage({id:window.name,message:m},"*"),void window.close()}}else $('[data-action="openerPostMessage"]',this.selectors.root).remove()}},$.extend(CHV.fn.uploader,$.extend(!0,{},CHV.obj.uploaderReset)),CHV.fn.fillEmbedCodes=function(e,t,a){void 0===a&&(a="val");var o=CHV.fn.uploader.selectors.root==t?"embed_upload_tpl":"embed_share_tpl";$.each(e,function(e,i){if(void 0!==i){var n="id_encoded"in i?i:i.image;if(!n.medium){n.medium={};for(var s=["filename","name","width","height","extension","size","size_formatted","url"],r=0;r0&&$.each(CHV.obj.categories,function(o,i){return void 0!==e&&i.id==e||(i.url_key==$("[name=form-category-url_key]",t).val()?(a=!0,!1):void 0)}),!a||(PF.fn.growl.call(PF.fn._s("Category URL key already being used.")),$("[name=form-category-url_key]",t).highlight(),!1)))},edit:{before:function(e){var t=$(e.target),a=t.data("category-id"),o=CHV.obj.categories[a],i="[data-modal="+t.data("target")+"]";$.each(CHV.fn.category.formFields,function(e,t){e="form-category-"+t,t=o[t];var a=$("[name="+e+"]",i);a.is("textarea")?a.html(PF.fn.htmlEncode(t)):a.attr("value",t)})},submit:function(){var e=PF.obj.modal.selectors.root,t=$("[name=form-category-id]",e).val();return!!CHV.fn.category.validateForm(t)&&(PF.obj.modal.form_data={action:"edit",edit:"category",editing:{}},$.each(CHV.fn.category.formFields,function(t,a){PF.obj.modal.form_data.editing[a]=$("[name=form-category-"+a+"]",e).val()}),!0)},complete:{success:function(e){var t=e.responseJSON.category,a="[data-content=category][data-category-id="+t.id+"]";$.each(t,function(e,t){$("[data-content=category-"+e+"]",a).html(PF.fn.htmlEncode(t))}),$("[data-link=category-url]").attr("href",t.url),CHV.obj.categories[t.id]=t}}},delete:{before:function(e){var t=$(e.target),a=t.data("category-id"),o=CHV.obj.categories[a];t.attr("data-confirm",t.attr("data-confirm").replace("%s",'"'+o.name+'"'))},submit:function(e){return PF.obj.modal.form_data={action:"delete",delete:"category",deleting:{id:e}},!0},complete:{success:function(e){PF.fn.growl.expirable(PF.fn._s("Category successfully deleted."));var t=e.responseJSON.request.deleting.id;$("[data-content=category][data-category-id="+t+"]").remove(),delete CHV.obj.categories[t]}}},add:{submit:function(){var e=PF.obj.modal.selectors.root;return!!CHV.fn.category.validateForm()&&(PF.obj.modal.form_data={action:"add-category",category:{}},$.each(CHV.fn.category.formFields,function(t,a){"id"!=a&&(PF.obj.modal.form_data.category[a]=$("[name=form-category-"+a+"]",e).val())}),!0)},complete:{success:function(e){var t=e.responseJSON.category,a="[data-content=dashboard-categories-list]",o=$("[data-content=category-dashboard-template]").html();$.each(t,function(e,t){o=o.replace(new RegExp("%"+e.toUpperCase()+"%","g"),t||"")}),$(a).append(o),0==Object.size(CHV.obj.categories)&&(CHV.obj.categories={}),CHV.obj.categories[t.id]=t,PF.fn.growl.call(PF.fn._s("Category %s added.",'"'+t.name+'"'))}}}},CHV.fn.ip_ban={formFields:["id","ip","expires","message"],validateForm:function(e){var t=PF.obj.modal.selectors.root,a=!1,o=$("[name=form-ip_ban-ip]",t).val();return!!CHV.fn.common.validateForm(t)&&(""!==$("[name=form-ip_ban-expires]",t).val()&&0==/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test($("[name=form-ip_ban-expires]",t).val())?(PF.fn.growl.call(PF.fn._s("Invalid expiration date.")),$("[name=form-ip_ban-expires]",t).highlight(),!1):(Object.size(CHV.obj.ip_bans)>0&&$.each(CHV.obj.ip_bans,function(t,i){return void 0!==e&&i.id==e||(i.ip==o?(a=!0,!1):void 0)}),!a||(PF.fn.growl.call(PF.fn._s("IP %s already banned.",o)),$("[name=form-ip_ban-ip]",t).highlight(),!1)))},add:{submit:function(){var e=PF.obj.modal.selectors.root;return!!CHV.fn.ip_ban.validateForm()&&(PF.obj.modal.form_data={action:"add-ip_ban",ip_ban:{}},$.each(CHV.fn.ip_ban.formFields,function(t,a){"id"!=a&&(PF.obj.modal.form_data.ip_ban[a]=$("[name=form-ip_ban-"+a+"]",e).val())}),!0)},complete:{success:function(e){var t=e.responseJSON.ip_ban,a="[data-content=dashboard-ip_bans-list]",o=$("[data-content=ip_ban-dashboard-template]").html();void 0!==o&&($.each(t,function(e,t){o=o.replace(new RegExp("%"+e.toUpperCase()+"%","g"),t||"")}),$(a).append(o)),0==Object.size(CHV.obj.ip_bans)&&(CHV.obj.ip_bans={}),CHV.obj.ip_bans[t.id]=t,$("[data-content=ban_ip]").addClass("hidden"),$("[data-content=banned_ip]").removeClass("hidden"),PF.fn.growl.call(PF.fn._s("IP %s banned.",t.ip))},error:function(e){var t=e.responseJSON.error;PF.fn.growl.call(PF.fn._s(t.message))}}},edit:{before:function(e){var t=$(e.target),a=t.data("ip_ban-id"),o=CHV.obj.ip_bans[a],i="[data-modal="+t.data("target")+"]";$.each(CHV.fn.ip_ban.formFields,function(e,t){e="form-ip_ban-"+t,t=o[t];var a=$("[name="+e+"]",i);a.is("textarea")?a.html(PF.fn.htmlEncode(t)):a.attr("value",t)})},submit:function(){var e=PF.obj.modal.selectors.root,t=$("[name=form-ip_ban-id]",e).val();return!!CHV.fn.ip_ban.validateForm(t)&&(PF.obj.modal.form_data={action:"edit",edit:"ip_ban",editing:{}},$.each(CHV.fn.ip_ban.formFields,function(t,a){PF.obj.modal.form_data.editing[a]=$("[name=form-ip_ban-"+a+"]",e).val()}),!0)},complete:{success:function(e){var t=e.responseJSON.ip_ban,a="[data-content=ip_ban][data-ip_ban-id="+t.id+"]";$.each(t,function(e,t){$("[data-content=ip_ban-"+e+"]",a).html(PF.fn.htmlEncode(t))}),CHV.obj.ip_bans[t.id]=t},error:function(e){var t=e.responseJSON.error;PF.fn.growl.call(PF.fn._s(t.message))}}},delete:{before:function(e){var t=$(e.target),a=t.data("ip_ban-id"),o=CHV.obj.ip_bans[a];t.attr("data-confirm",t.attr("data-confirm").replace("%s",o.ip))},submit:function(e){return PF.obj.modal.form_data={action:"delete",delete:"ip_ban",deleting:{id:e}},!0},complete:{success:function(e){PF.fn.growl.expirable(PF.fn._s("IP ban successfully deleted."));var t=e.responseJSON.request.deleting.id;$("[data-content=ip_ban][data-ip_ban-id="+t+"]").remove(),delete CHV.obj.ip_bans[t]}}}},CHV.fn.storage={formFields:["id","name","api_id","bucket","server","service","capacity","region","key","secret","url","account_id","account_name"],calling:!1,validateForm:function(){var e=PF.obj.modal.selectors.root,t=$("[name=form-storage-id]",e).val(),a=!0;if($.each($(":input",e),function(e,t){$(this).is(":hidden")?$(this).attr("required")&&$(this).removeAttr("required").attr("data-required",1):1==$(this).attr("data-required")&&$(this).attr("required","required"),$(this).is(":visible")&&""==$(this).val()&&$(this).attr("required")&&($(this).highlight(),a=!1)}),!a)return PF.fn.growl.call(PF.fn._s("Please fill all the required fields.")),!1;var o,i=$("[name=form-storage-capacity]",e),n=i.val();return""!==n&&(0==/^[\d\.]+\s*[A-Za-z]{2}$/.test(n)||void 0===n.getBytes()?o=PF.fn._s("Invalid storage capacity value. Make sure to use a valid format."):void 0!==CHV.obj.storages[t]&&n.getBytes()0&&(t=String(t).formatBytes(2)),r.attr("value",t))}),$("[data-combo-value]").addClass("soft-hidden"),$(n).removeClass("soft-hidden")},submit:function(){var e=PF.obj.modal.selectors.root;$("[name=form-storage-id]",e).val();return!!CHV.fn.storage.validateForm()&&(PF.obj.modal.form_data={action:"edit",edit:"storage",editing:{}},$.each(CHV.fn.storage.formFields,function(t,a){var o;o="[name=form-storage-"+a+"]","hidden"!==$(o,e).attr("type")&&(o+=":visible"),PF.obj.modal.form_data.editing[a]=$(o,e).val()}),!0)},complete:{success:function(e){var t=e.responseJSON.storage,a="[data-content=storage][data-storage-id="+t.id+"]",o=$("[data-action=toggle-storage-https]",a);$.each(t,function(e,t){$("[data-content=storage-"+e+"]",a).html(PF.fn.htmlEncode(t))}),CHV.obj.storages[t.id]=t,CHV.fn.storage.toggleBoolDisplay(o,1==t.is_https)},error:function(e){var t=e.responseJSON,a=t.error.message;PF.fn.growl.call(a)}}},add:{submit:function(){if(!CHV.fn.storage.validateForm())return!1;var e=PF.obj.modal.selectors.root;return PF.obj.modal.form_data={action:"add-storage",storage:{}},$.each(CHV.fn.storage.formFields,function(t,a){var o;"id"!=a&&(o="[name=form-storage-"+a+"]","hidden"!==$(o,e).attr("type")&&(o+=":visible"),PF.obj.modal.form_data.storage[a]=$(o,e).val())}),!0},complete:{success:function(e){var t=e.responseJSON.storage,a="[data-content=dashboard-storages-list]",o=$("[data-content=storage-dashboard-template]").html();$.each(t,function(e,t){var a=e.toUpperCase();if("is_https"==e||"is_active"==e)t=CHV.obj.storageTemplate.icon.replace("%TITLE%",CHV.obj.storageTemplate.messages[e]).replace("%ICON%",CHV.obj.storageTemplate.checkboxes[t]).replace("%PROP%",e.replace("is_",""));o=o.replace(new RegExp("%"+a+"%","g"),t||"")}),$(a).append(o),PF.fn.bindtipTip($("[data-storage-id="+t.id+"]")),0==CHV.obj.storages.length&&(CHV.obj.storages={}),CHV.obj.storages[t.id]=t},error:function(e){var t=e.responseJSON,a=t.error.message;PF.fn.growl.call(a)}}},toggleBoolDisplay:function(e,t){var a={0:e.data("unchecked-icon"),1:e.data("checked-icon")};e.removeClass(a[0]+" "+a[1]).addClass(a[t?1:0])}},CHV.fn.common={validateForm:function(e){if(void 0===e)e=PF.obj.modal.selectors.root;var t=!0;return $.each($(":input:visible",e),function(e,a){""==$(this).val()&&$(this).attr("required")&&($(this).highlight(),t=!1)}),!!t||(PF.fn.growl.call(PF.fn._s("Please fill all the required fields.")),!1)},updateDoctitle:function(e){void 0!==CHV.obj.page_info&&(CHV.obj.page_info.pre_doctitle=e,CHV.obj.page_info.doctitle=CHV.obj.page_info.pre_doctitle+CHV.obj.page_info.pos_doctitle,document.title=CHV.obj.page_info.doctitle)}},CHV.fn.user={add:{submit:function(){var e=$(PF.obj.modal.selectors.root),t=!0;return $.each($(":input",e),function(e,a){""==$(this).val()&&$(this).attr("required")&&($(this).highlight(),t=!1)}),t?(PF.obj.modal.form_data={action:"add-user",user:{username:$("[name=form-username]",e).val(),email:$("[name=form-email]",e).val(),password:$("[name=form-password]",e).val(),role:$("[name=form-role]",e).val()}},!0):(PF.fn.growl.call(PF.fn._s("Please fill all the required fields.")),!1)},complete:{success:function(e){e.responseJSON;PF.fn.growl.expirable(PF.fn._s("User added successfully."))},error:function(e){var t=e.responseJSON;PF.fn.growl.call(PF.fn._s(t.error.message))}}},delete:{submit:function(){return PF.obj.modal.form_data={action:"delete",delete:"user",owner:CHV.obj.resource.user.id,deleting:CHV.obj.resource.user},!0}},ban:{submit:function(){return PF.obj.modal.form_data={action:"ban",ban:"user",banning:CHV.obj.resource.user.id},!0},success:function(){}}},CHV.fn.submit_resource_approve=function(){return PF.obj.modal.form_data={action:"approve",approve:CHV.obj.resource.type,from:"resource",owner:void 0!==CHV.obj.resource.user?CHV.obj.resource.user.id:null,approving:CHV.obj.resource},!0},CHV.fn.complete_resource_approve={success:function(e){e.responseJSON;$("body").fadeOut("normal",function(){redir=CHV.obj.resource.url,window.location=redir})}},CHV.fn.submit_resource_delete=function(){return PF.obj.modal.form_data={action:"delete",delete:CHV.obj.resource.type,from:"resource",owner:void 0!==CHV.obj.resource.user?CHV.obj.resource.user.id:null,deleting:CHV.obj.resource},!0},CHV.fn.complete_resource_delete={success:function(e){e.responseJSON;$("body").fadeOut("normal",function(){var e;e="album"==CHV.obj.resource.type||"image"==CHV.obj.resource.type?CHV.obj.resource.parent_url:CHV.obj.resource.user?CHV.obj.resource.user.url:CHV.obj.resource.url,void 0!==e&&(window.location=e.replace(/\/?$/,"/")+"?deleted")})}},CHV.fn.list_editor={blink:function(e){e.addClass("ui-selecting"),setTimeout(function(){e.removeClass("ui-selecting")},200)},selectionCount:function(){var e=$(PF.obj.listing.selectors.content_listing);e.each(function(){var t=$("[data-content=pop-selection]","[data-content=list-selection][data-tab="+$(this).attr("id")+"]"),a=$(PF.obj.listing.selectors.list_item+".selected",this).length;if(all_count=$(PF.obj.listing.selectors.list_item,this).length,t.toggleClass("disabled",0==a),$("[data-text=selection-count]",t).text(a>0?a:""),"images"==e.data("list")&&a>0){var o=$(PF.obj.listing.selectors.list_item+".selected[data-flag=safe]",this).length>0,i=$(PF.obj.listing.selectors.list_item+".selected[data-flag=unsafe]",this).length>0;$("[data-action=flag-safe]",t)[(i?"remove":"add")+"Class"]("hidden"),$("[data-action=flag-unsafe]",t)[(o?"remove":"add")+"Class"]("hidden")}$(this).is(":visible")&&($("body").toggleClass("--has-selection",a>0),CHV.fn.list_editor.listMassActionSet(all_count==a?"clear":"select"))})},removeFromList:function(e,t){if(void 0!==e){e=e instanceof jQuery==0?$(e):e;var a=$(PF.obj.listing.selectors.content_listing_visible),o=e.length;e.fadeOut("fast");var i=e.first().data("type"),n=parseInt($("[data-text="+i+"-count]").text())-o;CHV.fn.list_editor.updateUserCounters(e.first().data("type"),o,"-"),e.promise().done(function(){$(document).removeClass(CHV.fn.listingViewer.selectors.bodyShown.substr(1));var i={};if(e.each(function(){$("[data-id="+$(this).data("id")+"]").each(function(){var e=$(this).closest(PF.obj.listing.selectors.content_listing).attr("id");i[e]||(i[e]=0),i[e]+=1})}),1==o?$("[data-id="+$(this).data("id")+"]").remove():e.each(function(){$("[data-id="+$(this).data("id")+"]").remove()}),PF.fn.listing.columnizerQueue(),PF.fn.listing.refresh(),CHV.fn.list_editor.selectionCount(),void 0!==t&&"string"==typeof t&&PF.fn.growl.expirable(t),$(PF.obj.listing.selectors.content_listing_pagination,a).exists()||0!=$(PF.obj.listing.selectors.list_item,a).length||(n=0),0==n)a.html(PF.obj.listing.template.empty),$(PF.obj.listing.selectors.content_listing+":not("+PF.obj.listing.selectors.content_listing_visible+")").data({empty:null,load:"ajax"}),$("[data-content=list-selection][data-tab="+a.attr("id")+"]").addClass("disabled");else if(0==$(PF.obj.listing.selectors.list_item,a).length){if($(PF.obj.listing.selectors.pad_content).height(0),$("[data-action=load-more]",a).exists())return $(PF.obj.listing.selectors.content_listing_visible).data("page",0),$("[data-action=load-more]",a).click(),void(PF.obj.listing.recolumnize=!0);var s=$("[data-pagination=next]",a);if(s.exists()){var r=s.attr("href"),l=PF.fn.deparam(r);return"page"in l&&l.page>1&&(r=r.changeURLParameterValue("page",l.page-1)),void(window.location=r)}}})}},deleteFromList:function(e){if(void 0===t)var t=!0;e=e instanceof jQuery==0?$(e):e;this.removeFromList(e,t?PF.fn._s("The content has been deleted."):null)},moveFromList:function(e,t){if(void 0===t)t=!0;e=e instanceof jQuery==0?$(e):e;this.removeFromList(e,t?PF.fn._s("The content has been moved."):null)},toggleSelectItem:function(e,t){if("boolean"!=typeof t)t=!e.hasClass("selected");var a,o,i,n=$(".viewer").is(":visible")?$("[data-type=image][data-id="+e.attr("data-id")+"]"):e,s=$("[data-action=select] .btn-icon",n);n.hasClass("unselect")||(n.addClass("unselect"),t?(Boolean(window.navigator.vibrate)&&window.navigator.vibrate([15,125,25]),n.addClass("selected"),a=s.data("icon-selected"),o=s.data("icon-unselected"),i=PF.fn._s("Unselect")):(n.removeClass("selected ui-selected"),a=s.data("icon-unselected"),o=s.data("icon-selected"),i=PF.fn._s("Select")),s.removeClass(o).addClass(a),setTimeout(function(){n.removeClass("unselect")},350),$("[data-action=select] .label",n).text(i),CHV.fn.list_editor.selectionCount())},selectItem:function(e){this.toggleSelectItem(e,!0)},unselectItem:function(e){this.toggleSelectItem(e,!1),e.removeClass("selected")},selectAll:function(e){this.selectItem($(PF.obj.listing.selectors.list_item+":visible:not(.selected)")),this.listMassActionSet("clear"),e.stopPropagation()},clearSelection:function(e){var t=$(PF.obj.listing.selectors.list_item+".selected",PF.obj.listing.selectors[e?"content_listing":"content_listing_visible"]);this.unselectItem(t),this.listMassActionSet("select")},listMassActionSet:function(e){var t="select"==e?"clear":"select",a=$("[data-text-select-all][data-action=list-"+t+"-all]:visible"),o=a.data("text-"+e+"-all");a.text(o).attr("data-action","list-"+e+"-all"),PF.fn.close_pops()},updateItem:function(e,t,a,o){if(e instanceof jQuery==0)e=$(e);var i=e.data("type"),n="image"==i?t.album:t;if(this.addAlbumtoModals(n),$("option[value="+n.id_encoded+"]","[name=form-album-id]").html(PF.fn.htmlEncode(n.name_with_privacy_readable_html)),void 0===a)a="edit";if("edit"==a||"move"==a){if("move"==a&&"album"==CHV.obj.resource.type)return void CHV.fn.list_editor.moveFromList(e,o);e.attr("data-description",t.description),"image"==i?(void 0!==t.title&&(e.attr("data-title",t.title),e.find("[title]").attr("title",t.title),$("[data-text=image-title]",e).text(PF.fn.htmlEncode(t.title))),void 0!==t.title_truncated&&$("[data-text=image-title-truncated]",e).html(PF.fn.htmlEncode(t.title_truncated)),void 0!==t.category_id&&e.attr("data-category-id",t.category_id),e.attr({"data-album-id":n.id_encoded,"data-flag":1==t.nsfw?"unsafe":"safe"}),$("[data-content=album-link]",e).attr("href",n.url)):e.attr({"data-privacy":n.privacy,"data-password":n.password,"data-name":n.name}),e.attr("data-privacy",n.privacy),$("[data-text=album-name]",e).html(PF.fn.htmlEncode(n.name)),PF.fn.growl.expirable("edit"==a?PF.fn._s("The content has been edited."):PF.fn._s("The content has been moved."))}},addAlbumtoModals:function(e){var t=!1;$("[name=form-album-id]","[data-modal]").each(function(){e.id_encoded&&!$("option[value="+e.id_encoded+"]",this).exists()&&($(this).append('"),t=!0)}),t&&CHV.fn.list_editor.updateUserCounters("album",1,"+")},updateAlbum:function(e){$("[data-id="+e.id_encoded+"]").each(function(){""!==e.html&&($(this).after(e.html),$(this).remove())})},updateUserCounters:function(e,t,a){if(void 0===a)a="+";var o,i,n=$("[data-text="+e+"-count]"),s=$("[data-text="+e+"-label]"),r=(t=parseInt(t),parseInt(n.html()));switch(a){case"+":o=r+t;break;case"-":o=r-t;break;case"=":o=t}i=o-r;var l=$("[data-text=total-"+n.data("text")+"]"),d=$("[data-text="+l.data("text")+"-label]"),c=parseInt(l.html()),u=c+i;n.text(o),l.text(u),s.text(s.data(1==o?"label-single":"label-plural")),d.text(s.data(1==u?"label-single":"label-plural"))},updateMoveItemLists:function(e,t,a){if(CHV.fn.list_editor.clearSelection(),/image/.test(t))"image"==t?CHV.fn.list_editor.updateItem("[data-type=image][data-id="+a.data("id")+"]",e.image,"move"):(a.each(function(){CHV.fn.list_editor.updateItem("[data-type=image][data-id="+$(this).data("id")+"]",e,"move",!1)}),PF.fn.growl.expirable(PF.fn._s("The content has been moved.")));else{if(CHV.fn.list_editor.moveFromList(a,!1),PF.fn.growl.expirable(PF.fn._s("The content has been moved.")),e.album)if(void 0!==e.albums_old?"true"==e.request.album.new:"true"==e.request.editing.new_album){CHV.fn.list_editor.addAlbumtoModals(e.album);var o=parseInt($("[data-text=album-count]").text())-1;$(PF.obj.listing.selectors.pad_content).each(function(){var t=$(this).find(PF.obj.listing.selectors.list_item).length;if(0!=t){var a=PF.fn.deparam($(this).closest(PF.obj.listing.selectors.content_listing).data("params"));"date_desc"!=a.sort&&o!=t||$(this)["date_desc"==a.sort?"prepend":"append"](e.album.html)}})}else CHV.fn.list_editor.updateAlbum(e.album);PF.fn.listing.columnizerQueue(),PF.fn.listing.refresh(0)}}},CHV.fn.import={errorHandler:function(e){PF.fn.growl.call(e.error.message)},reset:function(e){e=parseInt(e);CHV.obj.import.working[e].stats=$.ajax({type:"POST",data:{action:"importReset",id:e}}),CHV.obj.import.working[e].stats.complete(function(t){var a=t.responseJSON;if(a){var o=CHV.fn.import.parseTemplate(a.import);$("[data-id="+a.import.id+"]",CHV.obj.import.sel.root).replaceWith(o),"working"!=a.import.status&&clearInterval(CHV.obj.import.working[e].interval)}})},updateStats:function(e){e=parseInt(e);"readyState"in CHV.obj.import.working[e].stats&&4!=CHV.obj.import.working[e].stats.readyState?console.log("Aborting stats timeout call (previous call is still not ready)"):(CHV.obj.import.working[e].stats=$.ajax({type:"POST",data:{action:"importStats",id:e}}),CHV.obj.import.working[e].stats.complete(function(t){var a=t.responseJSON;if(a){var o=CHV.fn.import.parseTemplate(a.import);$("[data-id="+a.import.id+"]",CHV.obj.import.sel.root).replaceWith(o),"working"!=a.import.status&&clearInterval(CHV.obj.import.working[e].interval)}}))},delete:{submit:function(e){return PF.obj.modal.form_data={action:"importDelete",id:e},!0},deferred:{success:function(e){var t=e.responseJSON;PF.fn.growl.call(PF.fn._s("Import ID %s removed",t.import.id)),$("[data-id="+t.import.id+"]",CHV.obj.import.sel.root).remove(),1==$("li",CHV.obj.import.sel.root).size()&&$(CHV.obj.import.sel.root).addClass("hidden")},error:function(e){CHV.fn.import.errorHandler(e.responseJSON)}}},parseTemplate:function(e,t){var a=CHV.obj.import.rowTpl;for(var o in CHV.obj.import.importTr)void 0!==e[o]&&(a=a.replaceAll("%"+o+"%",e[o]));a=a.replaceAll("%parse%",e.options.root),a=a.replaceAll("%shortParse%",e.options.root.charAt(0)),a=a.replaceAll("%displayStatus%",CHV.obj.import.statusesDisplay[e.status]);var i=$($.parseHTML(a)).attr("data-object",JSON.stringify(e));return i}},CHV.fn.Palettes={timeout:{},get:function(){return($("html").get(0).className.match(/(^|\s)palette-\S+/g)||[]).join(" ")},set:function(e){$("html").attr("data-palette",e).removeClass(this.get()).addClass("palette-"+e)},preview:function(e){$("html").removeClass(this.get()).addClass("palette-"+e)},save:function(){clearTimeout(this.timeout),this.timeout=setTimeout(function(){$.ajax({type:"POST",data:{action:"paletteSet",palette_id:CHV.obj.config.palettesId[$("html").attr("data-palette")]},cache:!1})},400)}}; \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/lib/peafowl.css b/content/legacy/themes/Peafowl/lib/peafowl.css index 43d9963..9628d94 100644 --- a/content/legacy/themes/Peafowl/lib/peafowl.css +++ b/content/legacy/themes/Peafowl/lib/peafowl.css @@ -197,16 +197,16 @@ body.no-margin-top { .content-width { width: 100%; - margin-right: auto; - margin-left: auto; + margin-inline-end: auto; + margin-inline-start: auto; position: relative; - padding-left: 10px; - padding-right: 10px; + padding-inline-start: 10px; + padding-inline-end: 10px; } .phone .top-bar .content-width { - padding-left: 0; - padding-right: 0; + padding-inline-start: 0; + padding-inline-end: 0; } a { @@ -226,7 +226,7 @@ a[rel=external]::after { font-variant: normal; text-rendering: auto; line-height: 1; - margin-left: 0.25em; + margin-inline-start: 0.25em; content: "\f35d"; font-size: 90%; } @@ -320,10 +320,6 @@ h1, h2, h3, h4, h5, h6 { top: -10px; } -.tone-dark .or-separator span { - background: #0b0b0b; -} - .highlight { color: var(--alertText); background: var(--alertBackground); @@ -350,10 +346,10 @@ h1, h2, h3, h4, h5, h6 { line-height: 1.21em; color: inherit; text-decoration: none; - padding-left: 10px; - padding-right: 10px; - margin-left: 0; - border-left: 1px solid var(--bodySeparator); + padding-inline-start: 10px; + padding-inline-end: 10px; + margin-inline-start: 0; + border-inline-start: 1px solid var(--bodySeparator); text-align: center; } @@ -362,12 +358,12 @@ h1, h2, h3, h4, h5, h6 { } .number-figures:first-child { - padding-left: 0; - border-left: none; + padding-inline-start: 0; + border-inline-start: none; } .number-figures:last-child { - padding-right: 0; + padding-inline-end: 0; } .number-figures b { @@ -389,18 +385,14 @@ a.number-figures:hover, a.number-figures:hover * { color: var(--linkText); } -.loading {} - .loading-indicator, .loading-text { display: inline-block; line-height: inherit; vertical-align: top; } -.loading-indicator {} - .loading-text { - margin-left: 5px; + margin-inline-start: 5px; } .btn-alt { @@ -420,7 +412,7 @@ a.number-figures:hover, a.number-figures:hover * { } .btn-alt a { - margin-left: 5px; + margin-inline-start: 5px; cursor: pointer; } @@ -492,7 +484,7 @@ a.link:hover span { .close-box .icon-close-box { color: #fff; position: absolute; - left: 0; + inset-inline-start: 0; top: 0; } @@ -620,16 +612,16 @@ textarea, .text-input, input[type="text"]:not(.text-input) { .input-label .btn-alt { position: absolute; - left: 100%; + inset-inline-start: 100%; top: 23px; line-height: 36px; - margin-left: 10px; - margin-right: 0; + margin-inline-start: 10px; + margin-inline-end: 0; } .phone .input-label .btn-alt { position: static; - margin-left: 0; + margin-inline-start: 0; } .input-label, .checkbox-label { @@ -642,7 +634,7 @@ textarea, .text-input, input[type="text"]:not(.text-input) { font-size: 1.82em; color: #d9d9d9; position: absolute; - right: 0.21em; + inset-inline-end: 0.21em; top: 0.21em; cursor: pointer; line-height: 1; @@ -679,7 +671,7 @@ textarea, .text-input, input[type="text"]:not(.text-input) { .autocomplete-list .ui-autocomplete { position: absolute; top: 0; - left: 0; + inset-inline-start: 0; } .autocomplete-list ul { @@ -707,7 +699,7 @@ textarea, .text-input, input[type="text"]:not(.text-input) { .input-warning { color: var(--bodyTextSubtle); position: absolute; - right: 0; + inset-inline-end: 0; top: 0; } @@ -723,7 +715,7 @@ textarea, .text-input, input[type="text"]:not(.text-input) { .input-password .input-password-strength { position: absolute; - right: 11px; + inset-inline-end: 11px; top: 50%; margin-top: 5px; } @@ -734,7 +726,7 @@ textarea, .text-input, input[type="text"]:not(.text-input) { } .fancy-fieldset .input-password-strength { - right: 0; + inset-inline-end: 0; top: auto; margin-top: 0; } @@ -785,13 +777,13 @@ textarea, .text-input, input[type="text"]:not(.text-input) { position: absolute; padding: 0; margin: 0; - margin-left: -20px; + margin-inline-start: -20px; } .btn-alt.checkbox-label input { position: static; vertical-align: text-top; - margin-right: 4px; + margin-inline-end: 4px; } .phone .btn-alt.checkbox-label { @@ -800,7 +792,7 @@ textarea, .text-input, input[type="text"]:not(.text-input) { } .checkbox-label label { - padding-left: 20px; + padding-inline-start: 20px; font-weight: normal; margin: 0; padding-bottom: 0; @@ -819,35 +811,35 @@ input.search { font-size: 1em; border-radius: 200px; padding: 0 25px 0 32px; - padding-right: 3.0666rem; - padding-left: 2.3571rem; + padding-inline-end: 3.0666rem; + padding-inline-start: 2.3571rem; line-height: 100%; height: 26px; height: 1.86rem; width: 100%; border: 1px solid transparent; top: 0; - left: 0; + inset-inline-start: 0; outline: 0; vertical-align: text-bottom; } input.search.one-icon-padding, input.search.two-icon-padding { - padding-right: 30px; - padding-right: 2rem; + padding-inline-end: 30px; + padding-inline-end: 2rem; } input.search.two-icon-padding { - padding-left: 30px; - padding-left: 2rem; + padding-inline-start: 30px; + padding-inline-start: 2rem; } .top-bar input.search { - padding-left: 39px; - padding-left: 2.46rem; + padding-inline-start: 39px; + padding-inline-start: 2.46rem; top: -2px; position: relative; - padding-right: 34px; + padding-inline-end: 34px; background: transparent; border: transparent; box-shadow: none !important; @@ -858,7 +850,7 @@ input.search.two-icon-padding { } .ie7 input.search, .ie8 input.search, .ie9 input.search { - padding-right: 10px; + padding-inline-end: 10px; line-height: 26px; height: 26px; } @@ -874,7 +866,7 @@ input.search.two-icon-padding { } .input-search .icon--search { - left: 12px; + inset-inline-start: 12px; top: 6px; color: var(--inputText); } @@ -902,11 +894,11 @@ input.search.two-icon-padding { } .input-search .icon--settings { - right: 22px; + inset-inline-end: 22px; } .input-search .icon--close { - right: 4px; + inset-inline-end: 4px; color: var(--inputText); } @@ -915,7 +907,7 @@ input.search.two-icon-padding { } select { - padding-left: 7px !important; + padding-inline-start: 7px !important; } .ie7 select { @@ -955,7 +947,7 @@ textarea { .user-settings-avatar .loading-placeholder { position: absolute; - left: 0; + inset-inline-start: 0; top: 0; background: var(--bodyEmpty); } @@ -973,7 +965,7 @@ textarea { } .input-upload .btn-alt { - margin-left: 0; + margin-inline-start: 0; } .arrow-down { @@ -1037,15 +1029,15 @@ textarea { .link-service .btn-icon { width: 28px; height: 28px; - margin-right: 4px; + margin-inline-end: 4px; position: absolute; - left: 0; + inset-inline-start: 0; top: 0; } .link-service span.sign-text { padding: 0 20px; - margin-left: 32px; + margin-inline-start: 32px; } .sign-service .icon, .btn-social .btn-icon { @@ -1091,7 +1083,10 @@ textarea { } .btn-text { - margin-left: 4px; + margin-inline-start: 4px; +} +.btn-text:empty { + display: none; } .btn-big { @@ -1099,8 +1094,8 @@ textarea { font-size: 1.143rem; height: 38px; line-height: 38px; - padding-left: 1em; - padding-right: 1em; + padding-inline-start: 1em; + padding-inline-end: 1em; } .btn-small { @@ -1112,8 +1107,8 @@ textarea { .btn-input { font-weight: 600; font-size: 0.93em; - padding-left: 20px; - padding-right: 20px; + padding-inline-start: 20px; + padding-inline-end: 20px; } .btn-32 { @@ -1520,12 +1515,12 @@ textarea { } .ie7 .pop-btn-text, .ie8 .pop-btn-text { - padding-right: 0; + padding-inline-end: 0; } .pop-btn-text .arrow-down { vertical-align: middle; - margin-left: 5px; + margin-inline-start: 5px; border-top-color: var(--linkText); } @@ -1589,16 +1584,16 @@ textarea { } .pop-box.left-anchor, .pop-box { - left: 0; + inset-inline-start: 0; } .pop-box.anchor-center { - left: 50% !important; + inset-inline-start: 50% !important; } .pop-box.anchor-right { - left: auto; - right: 0; + inset-inline-start: auto; + inset-inline-end: 0; } .pop-box.pbcols1 { @@ -1639,6 +1634,9 @@ textarea { float: left; margin: 0 0 0 5px; } + [dir="rtl"] .pop-box-menucols li { + float: right; + } .pop-box-menucols li:first-child a, .pop-box-menucols li:last-child a { border-radius: 0; @@ -1675,7 +1673,7 @@ textarea { font-variant: normal; text-rendering: auto; line-height: 1; - margin-right: 0.25em; + margin-inline-end: 0.25em; content: "\f205"; font-size: 90%; } @@ -1746,27 +1744,27 @@ html:not(.phone) .pop-box-menu a:hover, .pop-box-menu a.focus { .pop-box-menu li { display: block; - text-align: left; + text-align: start; overflow: hidden; position: relative; } .pop-box-menu li.with-icon a { - padding-left: 36px; + padding-inline-start: 36px; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } html:not(.phone):not(.phablet) .header--height .pop-box-menu li a { - padding-right: 25px; + padding-inline-end: 25px; } .pop-box-menu li a kbd { position: absolute; top: 50%; transform: translateY(-50%); - right: 10px; + inset-inline-end: 10px; border-radius: 2px; display: block; line-height: 1; @@ -1784,7 +1782,7 @@ html:not(.phone):not(.phablet) .header--height .pop-box-menu li a { .pop-box-menu li.with-icon a .btn-icon { position: absolute; - left: 10px; + inset-inline-start: 10px; top: 8px; } @@ -1801,7 +1799,7 @@ html:not(.phone):not(.phablet) .header--height .pop-box-menu li a { width: 120%; min-width: 230px; cursor: default; - left: 42px; + inset-inline-start: 42px; line-height: normal; top: 0 !important; margin-top: 0 !important; @@ -1810,7 +1808,7 @@ html:not(.phone):not(.phablet) .header--height .pop-box-menu li a { .phone .pop-box, .phablet .pop-box { position: fixed; bottom: 0; - left: 0 !important; + inset-inline-start: 0 !important; width: 100%; top: auto !important; background: var(--topBarBackground); @@ -1821,17 +1819,17 @@ html:not(.phone):not(.phablet) .header--height .pop-box-menu li a { font-weight: bold; padding: 15px 10px; position: relative; - text-align: left; + text-align: start; color: var(--topBarText); } .pop-box-header .icon--close { position: absolute; - right: 10px; + inset-inline-end: 10px; top: 50%; margin-top: -7px; font-size: 14px; - text-align: right; + text-align: end; } @media (min-width: 992px) { @@ -1934,8 +1932,8 @@ body.split .top-bar, body.landing .top-bar { .top-sub-bar .content-width, .top-bar .content-width { position: relative; height: 100%; - padding-left: 5px; - padding-right: 5px; + padding-inline-start: 5px; + padding-inline-end: 5px; } .top-bar-logo { @@ -1944,7 +1942,7 @@ body.split .top-bar, body.landing .top-bar { position: absolute; top: 0; text-align: center; - left: 0; + inset-inline-start: 0; } .top-bar-logo img { @@ -1965,8 +1963,8 @@ body.split .top-bar, body.landing .top-bar { .top-bar-logo img { display: block; - margin-left: auto; - margin-right: auto; + margin-inline-start: auto; + margin-inline-end: auto; } .top-bar ul { @@ -1975,19 +1973,23 @@ body.split .top-bar, body.landing .top-bar { .top-bar li.pop-btn, .top-bar li.top-btn-el { float: left; - padding-right: 5px; - padding-left: 5px; + padding-inline-end: 5px; + padding-inline-start: 5px; position: relative; } +[dir="rtl"] .top-bar li.pop-btn, +[dir="rtl"] .top-bar li.top-btn-el { + float: right; +} @media (min-width: 992px) { .top-bar li.pop-btn, .top-bar li.top-btn-el { - padding-right: 10px; - padding-left: 10px; + padding-inline-end: 10px; + padding-inline-start: 10px; } .top-bar .top-bar-notifications.pop-btn { - padding-right: 0; + padding-inline-end: 0; } } @@ -2010,7 +2012,7 @@ body.split .top-bar, body.landing .top-bar { } .top-bar-right li.pop-btn:last-child, .top-bar-right li.pop-btn:last-child .arrow-down { - margin-right: 0; + margin-inline-end: 0; } .top-btn-text, .top-btn-create-account { @@ -2038,7 +2040,7 @@ body.landing .top-btn-text { } .top-btn-text .icon { - margin-right: 7px; + margin-inline-end: 7px; position: relative; top: 0; display: inline-block; @@ -2055,7 +2057,7 @@ body.landing .top-btn-text { } .top-btn-text .btn-text { - margin-left: 0; + margin-inline-start: 0; } .top-btn-text .arrow-down { @@ -2068,7 +2070,7 @@ body.landing .top-btn-text { } .top-btn-text .icon { - margin-right: 0; + margin-inline-end: 0; } #menu-fullscreen .top-bar-notifications .btn-text { @@ -2080,12 +2082,12 @@ body.landing .top-btn-text { } #top-bar [data-nav=upload] { - padding-right: 5px; - padding-left: 5px; + padding-inline-end: 5px; + padding-inline-start: 5px; } .top-bar-notifications-container { - margin-right: 2px; + margin-inline-end: 2px; cursor: default; } @@ -2109,10 +2111,16 @@ body.landing .top-btn-text { font-weight: bold; float: left; } +[dir="rtl"] .top-bar-notifications-header h2 { + float: right; +} .top-bar-notifications-header a { float: right; } +[dir="rtl"] .top-bar-notifications-header a { + float: left; +} .top-bar-notifications-list li { font-size: 0.93em; @@ -2121,7 +2129,7 @@ body.landing .top-btn-text { padding: 10px; position: relative; min-height: 68px; - padding-left: 68px; + padding-inline-start: 68px; } .top-bar-notifications-list li:last-child { @@ -2170,7 +2178,7 @@ body.landing .top-btn-text { font-size: 30px; width: 30px; height: 30px; - margin-left: -15px; + margin-inline-start: -15px; margin-top: -15px; } @@ -2185,7 +2193,7 @@ body.landing .top-btn-text { z-index: 1; border-radius: 100px; zoom: 0.75; - right: -8px; + inset-inline-end: -8px; top: 10px; visibility: hidden; } @@ -2202,16 +2210,16 @@ body.landing .top-btn-text { } .top-bar-search-input { - margin-left: -10px; - margin-right: 10px !important; + margin-inline-start: -10px; + margin-inline-end: 10px !important; } .top-bar-search-input .icon--close { - right: -4px; + inset-inline-end: -4px; } .top-bar-search-input .icon--settings { - right: 14px; + inset-inline-end: 14px; } .top-bar .top-bar-search-input .icon--search { @@ -2227,7 +2235,7 @@ body.landing .top-btn-text { .top-bar-search-input input { font-size: 1em; border-width: 0; - padding-left: 36px; + padding-inline-start: 36px; } .tone-light .top-bar .top-bar-search-input input { @@ -2235,20 +2243,20 @@ body.landing .top-btn-text { } .top-bar-left .pop-box { - left: -10px; + inset-inline-start: -10px; } .phone .top-bar-left li { - padding-right: 0; + padding-inline-end: 0; } .phone .top-bar-right li { - padding-left: 0; + padding-inline-start: 0; } .top-bar-right .pop-box { - left: auto; - right: -10px; + inset-inline-start: auto; + inset-inline-end: -10px; } .top-bar--main .pop-box { @@ -2257,7 +2265,7 @@ body.landing .top-btn-text { #top-predictive-search.pop-box { width: 200px; - left: 0; + inset-inline-start: 0; font-size: 100%; } @@ -2323,11 +2331,11 @@ body.landing .top-btn-text { #menu-fullscreen .top-btn-number { display: inline-block; position: absolute; - margin-right: 5px; + margin-inline-end: 5px; top: 10px; vertical-align: text-bottom; - left: 30px; - right: auto; + inset-inline-start: 30px; + inset-inline-end: auto; } .tone-light.top-bar .top-btn-number.on, .top-btn-number.on, .top-btn-number.on:hover, .opened .top-btn-number.on, .tone-light.ios .top-bar .top-btn-number.on { @@ -2376,9 +2384,11 @@ body.landing .top-btn-text { font-size: 26px; background: none; color: inherit; - margin-right: 0; + margin-inline-end: 0; +} +[dir="rtl"] #top-bar-user .top-btn-text .user-image { + float: right; } - #top-bar-user-menu.pop-box { width: 150px; } @@ -2396,10 +2406,10 @@ body.landing .top-btn-text { } .header.follow-scroll { - margin-right: -10px; - margin-left: -10px; - padding-left: 10px; - padding-right: 10px; + margin-inline-end: -10px; + margin-inline-start: -10px; + padding-inline-start: 10px; + padding-inline-end: 10px; overflow: visible; position: -webkit-sticky; position: sticky; @@ -2458,8 +2468,8 @@ body.landing .top-btn-text { .header.header-tabs .header-title, .header.header-tabs h1 { - margin-right: 5px; - margin-left: 5px; + margin-inline-end: 5px; + margin-inline-start: 5px; } .header ul.content-tabs { @@ -2478,8 +2488,8 @@ body.landing .top-btn-text { .phone .header.follow-scroll ul.content-tabs, .phablet .header.follow-scroll ul.content-tabs { position: absolute; - padding-left: 10px; - padding-right: 10px; + padding-inline-start: 10px; + padding-inline-end: 10px; } .phablet .header:not(.follow-scroll) ul.content-tabs, .phone .header:not(.follow-scroll) ul.content-tabs { @@ -2489,39 +2499,45 @@ body.landing .top-btn-text { .header-content-left { float: left; } - +[dir=rtl] .header-content-left { + float: right; +} .header-content-right { float: right; height: auto; - margin-left: auto; + margin-inline-start: auto; +} +[dir=rtl] .header-content-right { + float: left; } @media (max-width: 340px) { .header-content-right.breaks-ui { clear: both; position: static !important; - margin-left: 0; + margin-inline-start: 0; } - /* .header-content-right.breaks-ui .btn { - margin-right: 5px; - margin-left: 0; - } */ } -.phablet .header-content-right:not(.phablet-float-none), .phone .header-content-right:not(.phone-float-none) { +.phablet .header-content-right:not(.phablet-float-none), +.phone .header-content-right:not(.phone-float-none) { position: absolute; - right: 0; + inset-inline-end: 0; top: 0; float: right; } +[dir=rtl].phablet .header-content-right:not(.phablet-float-none), +[dir=rtl].phone .header-content-right:not(.phone-float-none) { + float: left; +} .header-content-right .number-figures { margin-top: 14px; - border-left: 1px solid var(--bodySeparator); + border-inline-start: 1px solid var(--bodySeparator); } .header-content-right .number-figures:first-child { - border-left: 0; + border-inline-start: 0; } .header .header-link { @@ -2540,6 +2556,9 @@ body.landing .top-btn-text { margin-top: 10px; float: left; } +[dir="rtl"] .header .user-image { + float: right; +} .header.header-content { position: relative; @@ -2588,8 +2607,11 @@ body.landing .top-btn-text { .header-content-breadcrum { float: left; } +[dir="rtl"] .header-content-breadcrum { + float: right; +} -.breadcrum-item * { +.breadcrum-item *:not(.btn) { line-height: normal; } @@ -2606,10 +2628,13 @@ body.landing .top-btn-text { } .breadcrum-item { - margin-right: 10px; + margin-inline-end: 10px; position: relative; float: left; } +[dir="rtl"] .breadcrum-item { + float: right; +} .breadcrum-text a:hover { color: var(--linkText); @@ -2617,11 +2642,11 @@ body.landing .top-btn-text { } .breadcrum-text .user-link { - margin-left: 5px; + margin-inline-start: 5px; } .header-content-breadcrum .arrow, .header-content-breadcrum .arrow-down, .header-content-breadcrum .arrow-right { - margin-left: 5px; + margin-inline-start: 5px; position: relative; } @@ -2643,18 +2668,21 @@ body.landing .top-btn-text { } .header-content .btn { - margin-left: 5px; + margin-inline-start: 5px; float: left; display: block; } +[dir="rtl"] .header-content .btn { + float: right; +} .header-content .btn:last-child { - margin-right: 0; + margin-inline-end: 0; } .follow-scroll { - margin-left: auto; - margin-right: auto; + margin-inline-start: auto; + margin-inline-end: auto; z-index: 1; } @@ -2719,7 +2747,7 @@ body.landing .top-btn-text { .phone .content-tabs-container--mobile, .phablet .content-tabs-container--mobile { box-shadow: 0 6px 4px rgba(0, 0, 0, 0.25); - left: -10px; + inset-inline-start: -10px; width: calc(100% + 15px); } @@ -2759,12 +2787,12 @@ body.landing .top-btn-text { font-weight: normal; color: inherit; text-decoration: none; - padding-left: 10px; - padding-right: 10px; + padding-inline-start: 10px; + padding-inline-end: 10px; } .phone .content-tabs li:last-child { - margin-right: 15px; + margin-inline-end: 15px; } .content-tabs-shade { @@ -2773,11 +2801,15 @@ body.landing .top-btn-text { width: 15px; height: 100%; position: absolute; - right: 0; + inset-inline-end: 0; top: 0; pointer-events: none; z-index: 2; } +[dir="rtl"] .content-tabs-shade { + background: -webkit-linear-gradient(180deg, rgba(255, 255, 255, 0), var(--bodyBackground)); + +} .phone .content-tabs a, .phablet .content-tabs a { color: var(--menuItemText); @@ -2803,6 +2835,9 @@ body.landing .top-btn-text { float: left; font-size: 1em; } +[dir="rtl"] .content-tabs li { + float: right; +} .phablet .content-tabs li, .phone .content-tabs li { float: none; @@ -2813,17 +2848,17 @@ body.landing .top-btn-text { .content-tabs-vertical li { float: none; margin: 0; - border-left: 2px solid transparent; + border-inline-start: 2px solid transparent; } .content-tabs-vertical li>* { - padding-right: 20px; - padding-left: 20px; + padding-inline-end: 20px; + padding-inline-start: 20px; } .header-content-right .content-tabs li { - margin-left: 10px; - margin-right: 0; + margin-inline-start: 10px; + margin-inline-end: 0; } .content-tabs li, .content-tabs a { @@ -2955,8 +2990,8 @@ body.landing .top-btn-text { #content-listing-tabs { padding-bottom: 0; - margin-left: -10px; - margin-right: -10px; + margin-inline-start: -10px; + margin-inline-end: -10px; } .tabbed-content { @@ -2972,14 +3007,14 @@ body.landing .top-btn-text { } .title.grid-columns { - margin-right: 10px; - text-align: right; + margin-inline-end: 10px; + text-align: end; line-height: 2; } .phone .title.grid-columns, .phablet .title.grid-columns { - margin-right: 0 !important; - text-align: left; + margin-inline-end: 0 !important; + text-align: start; } .tabbed-content-section { @@ -3031,7 +3066,7 @@ body.landing .top-btn-text { .viewer-title { font-size: 1.43em; line-height: 1.43em; - padding-right: 3em; + padding-inline-end: 3em; } .panel-description:empty { @@ -3049,14 +3084,14 @@ body.landing .top-btn-text { } .panel-description .exif-meta { - padding-left: 1.57em; + padding-inline-start: 1.57em; position: relative; } .panel-description .exif-meta .camera-icon { color: var(--bodyTextDisabled); position: absolute; - left: 0; + inset-inline-start: 0; top: 0.21em; font-size: 1.14em; } @@ -3067,16 +3102,11 @@ body.landing .top-btn-text { } .panel-thumbs { - position: -webkit-sticky; - position: sticky; z-index: 1; bottom: 0; left: 0; right: 0; - border-top: 1px solid rgba(0, 0, 0, .05); - background: transparent; - -webkit-backdrop-filter: blur(15px) saturate(1.8); - backdrop-filter: blur(15px) saturate(1.8); + background: var(--viewerBackground); } .panel-thumb-list { @@ -3085,8 +3115,8 @@ body.landing .top-btn-text { white-space: nowrap; text-align: center; height: 50px; - margin-left: auto; - margin-right: auto; + margin-inline-start: auto; + margin-inline-end: auto; } .panel-thumb-list:empty { @@ -3096,13 +3126,13 @@ body.landing .top-btn-text { .panel-thumb-list li { position: relative; font-size: 0; - border-bottom: 3px solid transparent; + border-top: 3px solid transparent; display: inline-block; line-height: 50px; } .panel-thumb-list li.current { - border-color: var(--colorAccent); + border-color: var(--bodyBackground); } .panel-thumb-list li.current img, .list-item-desc .panel-thumb-list li:hover img { @@ -3136,7 +3166,7 @@ body.landing .top-btn-text { } .panel-share-item h4.pre-title { - padding-left: 200px; + padding-inline-start: 200px; line-height: 20px; margin-bottom: 10px; padding-bottom: 10px; @@ -3148,7 +3178,7 @@ body.landing .top-btn-text { } .phone .panel-share-item h4.pre-title, .phablet .panel-share-item h4.pre-title { - padding-left: 0; + padding-inline-start: 0; } .panel-share-item h4.title { @@ -3187,7 +3217,7 @@ body.landing .top-btn-text { .panel-share-networks li { display: inline-block; - margin-right: 5px; + margin-inline-end: 5px; margin-bottom: 5px; } @@ -3242,7 +3272,7 @@ body.landing .top-btn-text { } .text-content ul, .text-content ol { - margin-left: 20px; + margin-inline-start: 20px; } .text-content li { @@ -3264,32 +3294,32 @@ body.landing .top-btn-text { } .signup-services-column li:first-child { - margin-left: 0; + margin-inline-start: 0; } .signup-services-column li:last-child { - margin-right: 0; + margin-inline-end: 0; } .form-content .content-tabs-vertical { - margin-right: 10px; + margin-inline-end: 10px; position: absolute; - left: 0; + inset-inline-start: 0; top: 0; } .form-content .content-tabs-vertical.position-fixed { position: fixed; - left: auto; + inset-inline-start: auto; top: auto; } .tabbed-input-column { - margin-left: 200px; + margin-inline-start: 200px; } .phone .tabbed-input-column, .phablet .tabbed-input-column { - margin-left: 0; + margin-inline-start: 0; } .account-link { @@ -3347,11 +3377,11 @@ html.menu-fullscreen-visible { } #menu-fullscreen>ul>li .icon { - margin-right: 7px; + margin-inline-end: 7px; } #menu-fullscreen>ul>li .input-search .icon { - margin-right: 0; + margin-inline-end: 0; } #menu-fullscreen>ul>li a { @@ -3360,7 +3390,7 @@ html.menu-fullscreen-visible { #menu-fullscreen .input-search { margin: 0; - margin-right: 10px; + margin-inline-end: 10px; top: 12px; width: auto; } @@ -3453,8 +3483,8 @@ body:not(#upload) .upload-box--fixed { font-size: 100px; height: 1em; display: inline-block; - margin-left: auto; - margin-right: auto; + margin-inline-start: auto; + margin-inline-end: auto; text-decoration: none; -webkit-tap-highlight-color: transparent; } @@ -3476,7 +3506,7 @@ body:not(#upload) .upload-box--fixed { } .upload-box-allowed-files { - left: 0; + inset-inline-start: 0; font-size: 11px; font-size: 0.79rem; color: var(--bodyTextSubtle); @@ -3484,7 +3514,7 @@ body:not(#upload) .upload-box--fixed { .upload-box-close { text-decoration: none; - right: 0; + inset-inline-end: 0; font-size: 11px; line-height: 11px; font-size: 0.79rem; @@ -3531,32 +3561,32 @@ body:not(#upload) .upload-box--fixed { } .page-not-found .input-search { - margin-left: auto; - margin-right: auto; + margin-inline-start: auto; + margin-inline-end: auto; margin-top: 20px; } .page-not-found .input-search .icon--search { font-size: 20px; - left: 14px; + inset-inline-start: 14px; top: 8px; } .page-not-found .input-search .icon--close { top: 3px; - right: 6px; + inset-inline-end: 6px; } .page-not-found input.search { height: 36px; width: 100%; font-size: 15px; - padding-right: 30px; - padding-left: 40px; + padding-inline-end: 30px; + padding-inline-start: 40px; } .ie7 .page-not-found input.search, .ie8 .page-not-found input.search, .ie9 .page-not-found input.search { - padding-right: 10px; + padding-inline-end: 10px; line-height: 36px; } @@ -3568,8 +3598,8 @@ body:not(#upload) .upload-box--fixed { .pad-content-listing { width: calc(100% + 10px); - margin-left: auto; - margin-right: auto; + margin-inline-start: auto; + margin-inline-end: auto; position: relative; } @@ -3590,7 +3620,7 @@ body:not(#upload) .upload-box--fixed { height: 100%; position: absolute; top: 0; - left: 0; + inset-inline-start: 0; background: rgba(255, 255, 255, 0.5); filter: progid: DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80ffffff', endColorstr='#80ffffff'); z-index: 1; @@ -3678,19 +3708,19 @@ html:not(.--idle) .list-item:hover .hover-display { } .list-item-image-btn.list-image-like-btn { - left: 10px; + inset-inline-start: 10px; } .list-item-image-btn span { font-size: 15px; position: absolute; - left: 8px; + inset-inline-start: 8px; top: 50%; margin-top: -8px; } .ie7 .list-item-image-btn span { - left: 4px; + inset-inline-start: 4px; top: 2px; } @@ -3711,7 +3741,7 @@ html:not(.--idle) .list-item:hover .hover-display { .list-item-image-btn.liked:hover span.icon-like { font-size: 11px; padding: 0; - left: 10px; + inset-inline-start: 10px; color: #fff; margin-top: -6px; } @@ -3724,7 +3754,7 @@ html:not(.--idle) .list-item:hover .hover-display { width: 100%; height: 100%; padding: 0 10px; - left: 0; + inset-inline-start: 0; bottom: 10px; text-decoration: none; } @@ -3827,12 +3857,15 @@ a.list-item-desc-title-link { .list-item-desc .user { float: left; margin-top: -20px; - margin-right: 8px; + margin-inline-end: 8px; padding: 3px; background: var(--bodyBackground); width: 50px; height: 50px; } +[dir="rtl"] .list-item-desc .user { + float: right; +} .tone-dark .list-item-desc .user { background: #101010; @@ -3873,19 +3906,18 @@ a.list-item-desc-title-link { width: 101%; margin-top: 2px; margin-bottom: 0; - margin-left: -1px; + margin-inline-start: -1px; } .list-item-thumbs li { background: #f6f6f6; - border-right: 1px solid; - border-left: 1px solid; + border-inline-end: 1px solid; + border-inline-start: 1px solid; border-color: #fff; float: left; } - -.tone-dark .list-item-thumbs li { - border-color: #0b0b0b; +[dir="rtl"] .list-item-thumbs li { + float: right; } .list-item-desc { @@ -3910,7 +3942,7 @@ a.list-item-desc-title-link { .list-item-desc .list-item-overflow { bottom: 0; - left: 0; + inset-inline-start: 0; padding: 10px; position: absolute; height: auto; @@ -3960,11 +3992,11 @@ a.list-item-desc-title-link { } .content-listing-pagination li.pagination-prev { - text-align: right; + text-align: end; } .content-listing-pagination li.pagination-next { - text-align: left; + text-align: start; } .content-listing-pagination a:hover { @@ -4087,14 +4119,14 @@ a.list-item-desc-title-link { .default-user-image .icon { color: inherit; position: absolute; - left: 50%; + inset-inline-start: 50%; top: 50%; display: block; line-height: 100%; font-size: 1em; width: 1em; height: 1em; - margin-left: -0.5em; + margin-inline-start: -0.5em; margin-top: -0.5em; } @@ -4105,7 +4137,7 @@ img.user-image.size-70, .default-user-image.size-70 { .default-user-image.size-70 .icon { font-size: 38px; - margin-left: -19px; + margin-inline-start: -19px; margin-top: -19px; } @@ -4116,7 +4148,7 @@ img.user-image.size-60, .default-user-image.size-60 { .default-user-image.size-60 .icon { font-size: 32px; - margin-left: -16px; + margin-inline-start: -16px; margin-top: -16px; } @@ -4127,7 +4159,7 @@ img.user-image.size-40, .default-user-image.size-40 { .default-user-image.size-40 .icon { font-size: 22px; - margin-left: -11px; + margin-inline-start: -11px; margin-top: -11px; } @@ -4153,9 +4185,13 @@ img.user-image.size-40, .default-user-image.size-40 { height: 110px; margin-top: 10px; margin-bottom: 10px; - min-height: 160px; height: auto; } +.top-user.no-background, +.tablet .top-user, +.phablet .top-user { + min-height: 160px; +} .top-user>div { position: absolute; @@ -4164,7 +4200,7 @@ img.user-image.size-40, .default-user-image.size-40 { .top-user .top-user-credentials { position: static; - padding-right: 220px; + padding-inline-end: 220px; clear: both; overflow: visible; } @@ -4174,14 +4210,59 @@ img.user-image.size-40, .default-user-image.size-40 { } .phone .top-user .top-user-credentials { - padding-right: 0; - padding-left: 0; + padding-inline-end: 0; + padding-inline-start: 0; width: 100%; margin-bottom: 10px; text-align: center; margin-top: -160px; } +.top-user-avatar { + font-size: 160px; +} +.desktop .top-user:not(.no-background) .top-user-avatar, +.laptop .top-user:not(.no-background) .top-user-avatar { + position: absolute; + left: 50%; + margin-inline-start: calc(-0.5em - 10px); + top: -0.5em; +} +.phablet .top-user .user-image, +.tablet .top-user .user-image { + border: 0; + margin-inline-end: 10px; +} + +.top-user .user-image { + font-size: 1em; + width: 1em; + height: 1em; + float: left; + border-radius: 100%; +} + +.top-user:not(.no-background) .user-image { + border: 10px solid var(--bodyBackground); +} + +.top-user:not(.no-background) img.user-image { + background: var(--bodyBackground); + border: 10px solid transparent; + box-sizing: content-box; + background: rgb(255 255 255 / 10%); + -webkit-backdrop-filter: blur(5px); + backdrop-filter: blur(5px); +} +.tablet .top-user:not(.no-background) .user-image, +.phablet .top-user:not(.no-background) .user-image { + border: 0; +} + +.top-user.no-background .user-image { + margin-inline-end: 10px; +} + .phone .top-user.no-background .top-user-credentials { margin-top: initial; } @@ -4191,7 +4272,7 @@ img.user-image.size-40, .default-user-image.size-40 { } .top-user .header-content-right { - right: 0; + inset-inline-end: 0; } .top-user .header-content-right>* { @@ -4246,27 +4327,17 @@ img.user-image.size-40, .default-user-image.size-40 { } .user-meta .icon--lock { - margin-right: 5px; + margin-inline-end: 5px; } -.top-user .user-image { - font-size: 160px; - width: 1em; - height: 1em; - border: 4px solid var(--bodyBackground); - float: left; - margin-right: 10px; - border-radius: 100%; -} - -.tone-dark .top-user .user-image { - border-color: #0b0b0b; +[dir="rtl"] .top-user .user-image { + float: right; } .phone .top-user .user-image { float: none; - margin-left: auto; - margin-right: auto; + margin-inline-start: auto; + margin-inline-end: auto; margin-bottom: 10px; } @@ -4274,18 +4345,6 @@ img.user-image.size-40, .default-user-image.size-40 { margin-top: 10px; } -.top-user img.user-image { - background: var(--bodyBackground); -} - -.phone .top-user img.user-image { - border: 10px solid transparent; - box-sizing: content-box; - background: rgb(255 255 255 / 10%); - -webkit-backdrop-filter: blur(5px); - backdrop-filter: blur(5px); -} - .top-user .user-image.no-border { border: none; } @@ -4295,11 +4354,11 @@ img.user-image.size-40, .default-user-image.size-40 { } .user-card.avatar { - padding-left: 70px; + padding-inline-start: 70px; } .user-card.no-avatar { - padding-left: 0; + padding-inline-start: 0; } .user-card .or-separator { @@ -4341,6 +4400,7 @@ img.user-image.size-40, .default-user-image.size-40 { .top-user .input-search .icon--close { top: 4px; + inset-inline-end: 8px; } .ad-space { @@ -4353,8 +4413,8 @@ img.user-image.size-40, .default-user-image.size-40 { } .ad-margin-horizontal { - margin-left: 20px; - margin-right: 20px; + margin-inline-start: 20px; + margin-inline-end: 20px; } [role="menu"] { @@ -4431,11 +4491,11 @@ img.user-image.size-40, .default-user-image.size-40 { } .float-left .menu-box, .pull-left .menu-box, menu-box.anchor-left { - left: 0; + inset-inline-start: 0; } .float-right .menu-box, .pull-right .menu-box, .menu-box--anchor-right { - right: 0; + inset-inline-end: 0; } .menu-box hr, .menu-box .separator, .menu-box [role="separator"] { @@ -4474,8 +4534,8 @@ img.user-image.size-40, .default-user-image.size-40 { } .menu-box [role*="button"] { - padding-left: 35px; - border-left: 2px solid transparent; + padding-inline-start: 35px; + border-inline-start: 2px solid transparent; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; @@ -4487,11 +4547,11 @@ img.user-image.size-40, .default-user-image.size-40 { } .menu-box--noicons li:not([role="button"]) { - padding-left: 0; + padding-inline-start: 0; } .menu-box--noicons [role="button"] { - padding-left: 10px; + padding-inline-start: 10px; color: inherit; } @@ -4507,7 +4567,7 @@ img.user-image.size-40, .default-user-image.size-40 { } .menu-box li.menu-box-sub { - padding-right: 34px; + padding-inline-end: 34px; } .menu-box .menu-box-sub>ul, .menu-box .menu-box-sub>.sub { @@ -4524,21 +4584,21 @@ img.user-image.size-40, .default-user-image.size-40 { height: 16px; text-align: center; position: absolute; - left: 8px; + inset-inline-start: 8px; top: 50%; margin-top: -8px; } .menu-box .menu-box-sub>.icon { - left: auto; - right: 10px; + inset-inline-start: auto; + inset-inline-end: 10px; } .menu-box .menu-box-sub ul, .menu-box .menu-box-sub .sub { cursor: default; position: absolute; top: 0; - left: 100%; + inset-inline-start: 100%; } .menu-box .meta { @@ -4596,19 +4656,19 @@ img.user-image.size-40, .default-user-image.size-40 { line-height: 1.2; background: var(--alertBackground); padding: 1em; - padding-right: 2em; + padding-inline-end: 2em; text-align: center; overflow: visible; position: fixed; width: 500px; - left: 50%; + inset-inline-start: 50%; top: 45px; z-index: 9999; cursor: default; - border-left: 5px solid var(--alertAccent); + border-inline-start: 5px solid var(--alertAccent); box-shadow: 0 0 15px 5px rgba(0, 0, 0, 0.15); border-radius: 4px; - margin-left: -250px; + margin-inline-start: -250px; } .growl:empty { @@ -4619,14 +4679,14 @@ img.user-image.size-40, .default-user-image.size-40 { left: 10px; right: 10px; width: auto; - margin-left: auto; + margin-inline-start: auto; } .growl.static { - margin-left: auto; + margin-inline-start: auto; position: static; - padding-left: 10px; - padding-right: 10px; + padding-inline-start: 10px; + padding-inline-end: 10px; box-shadow: none; z-index: initial; margin: auto; @@ -4635,17 +4695,17 @@ img.user-image.size-40, .default-user-image.size-40 { .growl.static.inline { margin: initial; - text-align: left; + text-align: start; display: inline-block; - padding-right: 1em; - padding-left: 1em; + padding-inline-end: 1em; + padding-inline-start: 1em; } .growl .icon { font-size: 14px; text-align: center; position: absolute; - right: 5px; + inset-inline-end: 5px; top: 7px; cursor: pointer; padding: 10px; @@ -4653,7 +4713,7 @@ img.user-image.size-40, .default-user-image.size-40 { } .growl-debug-message { - text-align: left; + text-align: start; } .growl-debug-trace { @@ -4691,7 +4751,7 @@ img.user-image.size-40, .default-user-image.size-40 { .fullscreen { position: fixed; top: 0; - left: 0; + inset-inline-start: 0; width: 100%; height: 100%; overflow: auto; @@ -4730,17 +4790,17 @@ img.user-image.size-40, .default-user-image.size-40 { border-radius: 10px; color: #fff; margin-top: -75px; - margin-left: -75px; + margin-inline-start: -75px; position: absolute; top: 50%; - left: 50%; + inset-inline-start: 50%; zoom: 1; } .loading-txt { position: absolute; bottom: 15px; - left: 0; + inset-inline-start: 0; text-align: center; width: 100%; } @@ -4760,7 +4820,7 @@ img.user-image.size-40, .default-user-image.size-40 { } #fullscreen-modal-box { - width: 650px; + width: 670px; margin: 0 auto; padding: 20px; position: relative; @@ -4789,7 +4849,7 @@ img.user-image.size-40, .default-user-image.size-40 { margin-bottom: 20px; font-size: 20px; line-height: 1.2; - padding-right: 32px; + padding-inline-end: 32px; } #fullscreen-modal-box h2 { @@ -4821,7 +4881,7 @@ img.user-image.size-40, .default-user-image.size-40 { #fullscreen-modal-box .close-modal.icon--close { position: absolute; - right: 10px; + inset-inline-end: 10px; top: 15px; cursor: pointer; display: block; @@ -4829,7 +4889,7 @@ img.user-image.size-40, .default-user-image.size-40 { } .phone #fullscreen-modal-box .close-modal.icon--close, .phone #fullscreen-modal-box .close-modal.icon--close:hover { - right: 10px; + inset-inline-end: 10px; } .modal-form textarea { @@ -4899,7 +4959,7 @@ img.user-image.size-40, .default-user-image.size-40 { .fullscreen-viewer-top-user img { width: 34px; height: 34px; - margin-right: 10px; + margin-inline-end: 10px; } .fullscreen-viewer-navigation { @@ -4953,14 +5013,14 @@ img.user-image.size-40, .default-user-image.size-40 { } #cookie-law-banner p { - padding-right: 20px; + padding-inline-end: 20px; } a.cookie-law-close { color: inherit; text-decoration: none; position: absolute; - right: 0; + inset-inline-end: 0; top: 3px; font-size: 0.72em; opacity: 0.5; @@ -4986,7 +5046,7 @@ a.cookie-law-close:hover { .pop-box-menu li .badge { position: absolute; - right: 8px; + inset-inline-end: 8px; top: 8px; } @@ -5001,11 +5061,11 @@ a.cookie-law-close:hover { } .badge + label, .btn .badge { - margin-left: 5px; + margin-inline-start: 5px; } .pop-box-menu li.paid a { - padding-right: 52px; + padding-inline-end: 52px; } .pop-box-menu li:hover .badge { @@ -5118,9 +5178,12 @@ a.cookie-law-close:hover { display: block; float: left; } +[dir="rtl"] .grid-columns { + float: right; +} .gutter-margin-right, .gutter-margin-right-bottom { - margin-right: 1px; + margin-inline-end: 1px; } .gutter-margin-bottom, .gutter-margin-right-bottom, .gutter-margin-left-bottom { @@ -5128,7 +5191,7 @@ a.cookie-law-close:hover { } .gutter-margin-left, .gutter-margin-left-bottom { - margin-left: 1px; + margin-inline-start: 1px; } .gutter-width { @@ -5530,7 +5593,7 @@ a.cookie-law-close:hover { } .top-btn-text .btn-text { - margin-left: 7px; + margin-inline-start: 7px; } .pop-box .arrow-down { @@ -5734,6 +5797,14 @@ a.cookie-law-close:hover { cursor: pointer !important; } +.cursor-grab { + cursor: grab; +} + +.cursor-grabbing { + cursor: grabbing; +} + .cursor-default { cursor: default !important; } @@ -5827,23 +5898,23 @@ a.cookie-law-close:hover { } .right-0 { - right: 0px; + inset-inline-end: 0px; } .right-10 { - right: 10px; + inset-inline-end: 10px; } .right-20 { - right: 20px; + inset-inline-end: 20px; } .right-30 { - right: 30px; + inset-inline-end: 30px; } .right-40 { - right: 40px; + inset-inline-end: 40px; } .bottom-0 { @@ -5867,23 +5938,23 @@ a.cookie-law-close:hover { } .left-0 { - left: 0px; + inset-inline-start: 0px; } .left-10 { - left: 10px; + inset-inline-start: 10px; } .left-20 { - left: 20px; + inset-inline-start: 20px; } .left-30 { - left: 30px; + inset-inline-start: 30px; } .left-40 { - left: 40px; + inset-inline-start: 40px; } .display-none { @@ -5918,10 +5989,16 @@ a.cookie-law-close:hover { .float-left { float: left; } +[dir="rtl"] .float-left { + float: right; +} .float-right { float: right; } +[dir="rtl"] .float-right { + float: left; +} .border-0, .no-border { border: none; @@ -5932,7 +6009,7 @@ a.cookie-law-close:hover { } .border-right-0 { - border-right: 0; + border-inline-end: 0; } .border-bottom-0 { @@ -5940,7 +6017,7 @@ a.cookie-law-close:hover { } .border-left-0 { - border-left: 0; + border-inline-start: 0; } .box-shadow-none { @@ -6004,35 +6081,35 @@ a.cookie-law-close:hover { } .margin-right-auto { - margin-right: auto !important; + margin-inline-end: auto !important; } .margin-right-0, .phone .phone-margin-right-0, .phablet .phablet-margin-right-0 { - margin-right: 0 !important; + margin-inline-end: 0 !important; } .margin-right-035em { - margin-right: 0.35em !important; + margin-inline-end: 0.35em !important; } .margin-right-5 { - margin-right: 5px !important; + margin-inline-end: 5px !important; } .margin-right-10 { - margin-right: 10px !important; + margin-inline-end: 10px !important; } .margin-right-20 { - margin-right: 20px !important; + margin-inline-end: 20px !important; } .margin-right-30 { - margin-right: 30px !important; + margin-inline-end: 30px !important; } .margin-right-40 { - margin-right: 40px !important; + margin-inline-end: 40px !important; } .margin-bottom-0, .phone .phone-margin-bottom-0, .phablet .phablet-margin-bottom-0 { @@ -6060,39 +6137,39 @@ a.cookie-law-close:hover { } .margin-left-auto { - margin-left: auto !important; + margin-inline-start: auto !important; } .margin-left-0, .phone .phone-margin-left-0, .phablet .phablet-margin-left-0 { - margin-left: 0 !important; + margin-inline-start: 0 !important; } .margin-right--10 { - margin-right: -10px !important; + margin-inline-end: -10px !important; } .margin-left--10 { - margin-left: -10px !important; + margin-inline-start: -10px !important; } .margin-left-5 { - margin-left: 5px !important; + margin-inline-start: 5px !important; } .margin-left-10 { - margin-left: 10px !important; + margin-inline-start: 10px !important; } .margin-left-20 { - margin-left: 20px !important; + margin-inline-start: 20px !important; } .margin-left-30 { - margin-left: 30px !important; + margin-inline-start: 30px !important; } .margin-left-40 { - margin-left: 40px !important; + margin-inline-start: 40px !important; } .padding-5 { @@ -6140,27 +6217,27 @@ a.cookie-law-close:hover { } .padding-right-5 { - padding-right: 5px !important; + padding-inline-end: 5px !important; } .padding-right-0 { - padding-right: 0 !important; + padding-inline-end: 0 !important; } .padding-right-10 { - padding-right: 10px !important; + padding-inline-end: 10px !important; } .padding-right-20 { - padding-right: 20px !important; + padding-inline-end: 20px !important; } .padding-right-30 { - padding-right: 30px !important; + padding-inline-end: 30px !important; } .padding-right-40 { - padding-right: 40px !important; + padding-inline-end: 40px !important; } .padding-bottom-5 { @@ -6188,27 +6265,27 @@ a.cookie-law-close:hover { } .padding-left-5 { - padding-left: 5px !important; + padding-inline-start: 5px !important; } .padding-left-0 { - padding-left: 0 !important; + padding-inline-start: 0 !important; } .padding-left-10 { - padding-left: 10px !important; + padding-inline-start: 10px !important; } .padding-left-20 { - padding-left: 20px !important; + padding-inline-start: 20px !important; } .padding-left-30 { - padding-left: 30px !important; + padding-inline-start: 30px !important; } .padding-left-40 { - padding-left: 40px !important; + padding-inline-start: 40px !important; } .position-sticky { @@ -6233,7 +6310,7 @@ a.cookie-law-close:hover { } .text-align-left { - text-align: left; + text-align: start; } .text-align-center { @@ -6241,7 +6318,7 @@ a.cookie-law-close:hover { } .text-align-right { - text-align: right; + text-align: end; } .text-align-justify { @@ -6293,8 +6370,8 @@ a.cookie-law-close:hover { } .center-box { - margin-right: auto !important; - margin-left: auto !important; + margin-inline-end: auto !important; + margin-inline-start: auto !important; } .display-inline-block, .display-table-cell { @@ -6411,23 +6488,30 @@ a.cookie-law-close:hover { .phone .grid-columns, .phablet .grid-columns { float: none; - margin-left: 0; - margin-right: 0; + margin-inline-start: 0; + margin-inline-end: 0; } -.phone .phone-float-left, .phablet .phablet-float-left { +.phone .phone-float-left, +.phablet .phablet-float-left { float: left !important; } +[dir=rtl].phone .phone-float-left, +[dir=rtl].phablet .phablet-float-left { + float: right !important; +} .phone .phone-c1, .phablet .phablet-c1, .phone .fluid-column.phone-c1, .phone .fluid-column.phablet-c1 { width: 100%; } -.phone .phone-text-align-left, .phablet .phablet-text-align-left { +.phone .phone-text-align-left, +.phablet .phablet-text-align-left { text-align: left !important; } -.phone .phone-text-align-center, .phablet .phablet-text-align-center { +.phone .phone-text-align-center, +.phablet .phablet-text-align-center { text-align: center !important; } @@ -6435,7 +6519,7 @@ a.cookie-law-close:hover { display: none; position: absolute; top: 0; - left: 0; + inset-inline-start: 0; z-index: 99999; } @@ -6448,11 +6532,11 @@ a.cookie-law-close:hover { } #tiptip_holder.tip_right { - padding-left: 5px; + padding-inline-start: 5px; } #tiptip_holder.tip_left { - padding-right: 5px; + padding-inline-end: 5px; } #tiptip_content { @@ -6475,7 +6559,7 @@ a.cookie-law-close:hover { #tiptip_holder.tip_top #tiptip_arrow_inner { margin-top: -6px; - margin-left: -7px; + margin-inline-start: -7px; border-top-color: #333; border-top-color: rgba(0, 0, 0, 0.8); } @@ -6487,7 +6571,7 @@ a.cookie-law-close:hover { #tiptip_holder.tip_bottom #tiptip_arrow_inner { margin-top: -6px; - margin-left: -7px; + margin-inline-start: -7px; border-bottom-color: #333; border-bottom-color: rgba(0, 0, 0, 0.8); } @@ -6499,7 +6583,7 @@ a.cookie-law-close:hover { #tiptip_holder.tip_right #tiptip_arrow_inner { margin-top: -6px; - margin-left: -6px; + margin-inline-start: -6px; border-right-color: #333; border-right-color: rgba(0, 0, 0, 0.8); } @@ -6511,7 +6595,7 @@ a.cookie-law-close:hover { #tiptip_holder.tip_left #tiptip_arrow_inner { margin-top: -6px; - margin-left: -6px; + margin-inline-start: -6px; border-left-color: #333; border-left-color: rgba(0, 0, 0, 0.8); } @@ -6547,15 +6631,15 @@ a.cookie-law-close:hover { .antiscroll-scrollbar-horizontal { height: 7px; - margin-left: 2px; + margin-inline-start: 2px; bottom: 2px; - left: 0; + inset-inline-start: 0; } .antiscroll-scrollbar-vertical { width: 7px; margin-top: 2px; - right: 2px; + inset-inline-end: 2px; top: 0; } @@ -6600,7 +6684,7 @@ a.cookie-law-close:hover { button.input-action, button.copy-input { position: absolute; - right: 7px; + inset-inline-end: 7px; top: 0.8181em; text-transform: uppercase; cursor: pointer; @@ -6682,7 +6766,7 @@ button:hover.input-action, button:hover.copy-input { font-size: 45px; padding: 1em; border-radius: 0.5em; - left: 50%; + inset-inline-start: 50%; transform: translateX(-50%); border: 4px solid rgba(255, 255, 255, .9); box-shadow: 0 0 50px 6px rgb(0 0 0 / 25%); diff --git a/content/legacy/themes/Peafowl/lib/peafowl.js b/content/legacy/themes/Peafowl/lib/peafowl.js index 825fe2e..ec1f3f6 100644 --- a/content/legacy/themes/Peafowl/lib/peafowl.js +++ b/content/legacy/themes/Peafowl/lib/peafowl.js @@ -677,8 +677,12 @@ $(function () { return; } var submit = event.key === 'Enter' && (event.ctrlKey || event.metaKey); - var $inputEnabledEnter = $this.is(":input.search, textarea") || $this.closest(".input-with-button").exists(); - if(!$inputEnabledEnter && $this.is(":input") && event.key === 'Enter' && !submit) { + if($this.is("textarea") && !submit) { + e.stopPropagation(); + return; + } + var $inputEnabledEnter = $this.is(":input.search") || $this.closest(".input-with-button").exists(); + if(!$inputEnabledEnter && $this.is(":input, textarea") && event.key === 'Enter' && !submit) { e.stopPropagation(); e.preventDefault(); return; @@ -841,6 +845,7 @@ $(function () { $pop_btn = $(this); $pop_box = $(".pop-box", $pop_btn); $pop_btn.addClass("opened"); + var marginBox = parseInt($pop_box.css("margin-right")); $(".pop-box-inner", $pop_box).css("max-height", ""); @@ -863,14 +868,11 @@ $(function () { $(".pop-box-header", $pop_box).remove(); $pop_box.css({ bottom: "" }); } - if ( - $pop_box.hasClass("anchor-center") && - typeof $pop_box.data("guidstr") == typeof undefined - ) { + if ($pop_box.hasClass("anchor-center")) { if (!PF.fn.isDevice(devices)) { - $pop_box.css("margin-left", -($pop_box.width() / 2)); + $pop_box.css("marginInlineStart", -($pop_box.outerWidth() / 2)); } else { - $pop_box.css("margin-left", ""); + $pop_box.css("marginInlineStart", ""); } } @@ -905,55 +907,32 @@ $(function () { var callback = function ($pop_box) { if (!$pop_box.is(":visible")) { - var guidstr = $pop_box.attr("data-guidstr"); $pop_box - .css("marginLeft", "") - .removeClass(guidstr) + .css("marginInlineStart", "") .removeAttr("data-guidstr") .closest(".pop-btn") .removeClass("opened"); - if (typeof guidstr !== typeof undefined) { - $("style#" + guidstr).remove(); - } } else { if (!PF.fn.isDevice(devices)) { - var posMargin = $pop_box.css("marginLeft"); + var posMargin = $pop_box.css("marginInlineStart"); if (typeof posMargin !== typeof undefined) { posMargin = parseFloat(posMargin); - $pop_box.css("marginLeft", ""); + $pop_box.css("marginInlineStart", ""); } var cutoff = $pop_box.getWindowCutoff(); - if ( - cutoff && - (cutoff.left || cutoff.right) && - cutoff.right < posMargin - ) { - var guidstr = "guid-" + PF.fn.guid(); + if (cutoff && cutoff.right && cutoff.right < posMargin) { $pop_box - .css("marginLeft", cutoff.right + "px") - .addClass(guidstr) - .attr("data-guidstr", guidstr); - var posArrow = - $this.outerWidth() / 2 + - $this.offset().left - - $pop_box.offset().left; - var selectors = []; - $.each(["top", "bottom"], function (i, v) { - $.each(["after", "before"], function (ii, vv) { - selectors.push("." + guidstr + ".arrow-box-" + v + ":" + vv); - }); - }); - $( - '" - ).appendTo("head"); + .css("marginInlineStart", cutoff.right + "px"); } else { - $pop_box.css("marginLeft", posMargin + "px"); + $pop_box.css("marginInlineStart", posMargin + "px"); + cutoff = $pop_box.getWindowCutoff(); + if(cutoff && cutoff.left) { + let marginFix = -(Math.abs(posMargin) + Math.abs(cutoff.left) + marginBox/2); + $pop_box.css( + "marginInlineStart", + marginFix + "px" + ); + } } $(".antiscroll-wrap:not(.jsly):visible", $pop_box) .addClass("jsly") @@ -4272,9 +4251,9 @@ PF.fn.loading = { $(".loading-indicator", $target.css("textAlign", "center")).css({ position: options.position, top: "50%", - left: "50%", + insetInlineStart: "50%", marginTop: -(PF.fn.loading.spin[options.size].blocksize / 2), - marginLeft: -(PF.fn.loading.spin[options.size].blocksize / 2) + marginInlineStart: -(PF.fn.loading.spin[options.size].blocksize / 2) }); } if (options.valign == "center") { @@ -4287,7 +4266,7 @@ PF.fn.loading = { $(".spinner", $target).css({ top: PF.fn.loading.spin[options.size].blocksize / 2 + "px", - left: PF.fn.loading.spin[options.size].blocksize / 2 + "px" + insetInlineStart: PF.fn.loading.spin[options.size].blocksize / 2 + "px" }); }, fullscreen: function () { diff --git a/content/legacy/themes/Peafowl/lib/peafowl.min.css b/content/legacy/themes/Peafowl/lib/peafowl.min.css index 70c6097..98f555d 100644 --- a/content/legacy/themes/Peafowl/lib/peafowl.min.css +++ b/content/legacy/themes/Peafowl/lib/peafowl.min.css @@ -1 +1 @@ -:root{--colorBlue:#3498db;--colorBlueHover:#2980b9;--colorGreen:#2ecc71;--colorGreenHover:#27ae60;--colorOrange:#e67e22;--colorOrangeHover:#d35400;--colorPurple:#9b59b6;--colorPurpleHover:#8e44ad;--colorRed:#e74c3c;--colorRedHover:#c0392b;--colorYellow:#f1c40f;--colorYellowHover:#f39c12}:root{--colorSuccess:var(--colorGreen);--colorFail:var(--colorRed);--alertAccent:#f1c40f;--alertBackground:#fff5b3;--alertText:#161c1d;--backgroundDarkAlpha:rgb(0 0 0 / 80%);--backgroundLightAlpha:rgb(255 255 255 / 90%);--bodyBackground:#FFF;--bodyEmpty:#e2e8e9;--bodySeparator:#e2e8e9;--bodyText:#161c1d;--bodyTextDisabled:#c5d1d3;--bodyTextSubtle:#6c7779;--buttonAccentBackground:var(--colorAccent);--buttonAccentHoverBackground:var(--colorAccentStrong);--buttonAccentHoverText:var(--buttonAccentText);--buttonAccentText:#FFF;--buttonDefaultBackground:#d9e1e2;--buttonDefaultBorder:var(--buttonDefaultBackground);--buttonDefaultHoverBackground:#c0def2;--buttonDefaultHoverBorder:var(--buttonDefaultHoverBackground);--buttonDefaultHoverText:var(--colorAccentStrong);--buttonDefaultText:#161c1d;--colorAccent:var(--colorBlue);--colorAccentStrong:var(--colorBlueHover);--inputBackground:#ecf0f1;--inputPlaceholderText:#8aa2a8;--inputText:#161c1d;--linkText:var(--colorAccent);--menuBackground:rgb(236 240 241 / 80%);--menuItemHoverBackground:var(--colorAccent);--menuItemHoverText:#FFF;--menuItemText:#161c1d;--menuSeparator:rgb(11 14 15 / 10%);--menuText:#161c1d;--modalBackground:var(--bodyBackground);--modalText:#161c1d;--topBarBackground:rgb(255 255 255);--topBarText:#161c1d;--viewerBackground:#323232;--listItemText:#FFF}*{-ms-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;border:0;list-style:none}@media screen and (-webkit-min-device-pixel-ratio:0){.phone input:focus,.phone select:focus,.phone textarea:focus{font-size:16px!important}}.btn,.btn-container,.input-search,.link,.list-item,.no-select,.pop-btn-text,.top-btn-text,.user-select-none{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.animate{transition:all .2s ease-in-out}.animate--slow{transition-duration:.4s}[type=search]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}::-webkit-input-placeholder{color:var(--inputPlaceholderText);line-height:140%}:-moz-placeholder{color:var(--inputPlaceholderText);opacity:1}::-moz-placeholder{color:var(--inputPlaceholderText);opacity:1}:-ms-input-placeholder{color:var(--inputPlaceholderText)}:focus::-webkit-input-placeholder{color:var(--inputPlaceholderText)}:focus:-moz-placeholder{color:var(--inputPlaceholderText)}:focus::-moz-placeholder{color:var(--inputPlaceholderText)}focus:-ms-input-placeholder{color:var(--inputPlaceholderText)}::-moz-focus-inner{border:0;padding:0;margin:0}::-ms-clear{display:none}body{min-height:100vh;min-height:-webkit-fill-available;-webkit-font-smoothing:subpixel-antialiased}[type=submit]:focus,button:focus{outline:0}html{height:100%;height:-webkit-fill-available}body,html{min-height:100vh;font-family:Helvetica,Arial,sans-serif;color:var(--bodyText);font-size:16px;background:var(--bodyBackground);-webkit-text-size-adjust:100%}kbd{font-family:inherit}.pointer-events-none{pointer-events:none}#menu-fullscreen,#pop-box-mask.fullscreen{height:100%}#menu-fullscreen,.pop-box{transition:transform 350ms cubic-bezier(.4,0,0,1),opacity 350ms cubic-bezier(.4,0,0,1)}#menu-fullscreen>ul{position:relative;z-index:1000;background:var(--topBarBackground);color:var(--topBarText)}body.no-margin-top{margin-top:0;padding-top:0}.content-width{width:100%;margin-right:auto;margin-left:auto;position:relative;padding-left:10px;padding-right:10px}.phone .top-bar .content-width{padding-left:0;padding-right:0}a{color:var(--linkText);text-decoration:none;cursor:pointer;outline:0}a[rel=external]::after{font-weight:900;font-family:"Font Awesome 5 Free";-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;margin-left:.25em;content:"\f35d";font-size:90%}a[role=button]:hover{text-decoration:none}a:focus,a:hover{text-decoration:underline}h1,h2,h3,h4,h5,h6{font-weight:400;line-height:1}.ui-selectable-helper{background:var(--colorAccent);border:2px dashed var(--topBarBackground);position:absolute;z-index:500;opacity:.6}.image-container{transition:transform 180ms cubic-bezier(.25,1,.5,1)}.selected .image-container,.ui-selecting.selected .image-container{transform:scale(.5)}.selected .list-item-play-gif,.ui-selecting.selected .list-item-play-gif{transform:scale(.75)}.selected .image-container img,.selected .image-container svg,.ui-selecting.selected .image-container img,.ui-selecting.selected .image-container svg{border-radius:.5em;-webkit-transform:translateZ(0)}.hidden{display:none!important}.visible{display:block!important}.fab.soft-hidden,.far.soft-hidden,.fas.soft-hidden,.soft-hidden{display:none}.soft-visible{display:block}.hidden-visibility{visibility:hidden;position:absolute;top:0}.touch-scroll{overflow:auto;-webkit-overflow-scrolling:touch}.or-separator{border-top:1px solid var(--bodySeparator);text-align:center;margin:10px 0 10px 0}.tone-dark .or-separator{border-color:rgba(255,255,255,.1)}.or-separator span{font-size:.93em;font-weight:400;color:var(--bodySeparator);text-transform:uppercase;text-align:center;background:var(--bodyBackground);display:inline-block;position:relative;padding:0 10px;top:-10px}.tone-dark .or-separator span{background:#0b0b0b}.highlight{color:var(--alertText);background:var(--alertBackground)}.highlight:empty{display:none}.line-through{text-decoration:line-through}.line-separator{width:100%;height:1px;background:var(--bodySeparator);display:block;margin:20px 0}.number-figures,a.number-figures{font-size:1.21em;line-height:1.21em;color:inherit;text-decoration:none;padding-left:10px;padding-right:10px;margin-left:0;border-left:1px solid var(--bodySeparator);text-align:center}.tone-dark .number-figures,.tone-dark a.number-figures{border-color:#212121}.number-figures:first-child{padding-left:0;border-left:none}.number-figures:last-child{padding-right:0}.number-figures b{font-weight:inherit}.number-figures .icon-heart4{position:relative;top:1px}.number-figures span:not(.icon){color:var(--bodyTextSubtle);text-transform:uppercase;font-size:.6em}a.number-figures:hover,a.number-figures:hover *{color:var(--linkText)}.loading-indicator,.loading-text{display:inline-block;line-height:inherit;vertical-align:top}.loading-text{margin-left:5px}.btn-alt{color:var(--bodyTextSubtle);font-size:13px;font-size:.93rem;margin:0 5px;display:inline!important}.btn-alt a:first-letter{text-transform:capitalize}.phone .btn-alt{margin:5px 0 0}.btn-alt a{margin-left:5px;cursor:pointer}a.link{font-size:13px;font-size:.93rem;text-decoration:none;font-weight:400}.pop-box-menu a.link--delete,.tone-dark .pop-box-menu a.link--delete,[data-action=delete],a.link--delete{color:#e74c3c}.tone-dark html:not(.phone) .pop-box-menu a.link--delete:hover,html:not(.phone) .pop-box-menu a.link--delete:hover{background-color:#e74c3c}a.link--approve{color:#2ecc71}a.link span.icon,a.link:hover span.icon{text-decoration:none}a.link:hover span{text-decoration:underline}.disabled,.disabled a{color:var(--bodyTextDisabled)}.tone-dark .disabled,.tone-dark .disabled a{color:#444}.disabled a{text-decoration:none;cursor:default}.optional{font-size:50%;color:var(--bodyTextSubtle);font-weight:400}.text-shadow{text-shadow:2px 2px 3px rgba(0,0,0,.75);-webkit-filter:dropshadow(color=#000000, offx=2, offy=2);filter:dropshadow(color=#000000, offx=2, offy=2)}.box-shadow{box-shadow:2px 2px 3px 0 rgba(0,0,0,.45)}.silent-links a,a.silent-links{color:inherit}.close-box .icon-circle{color:var(--bodyText);position:relative}.close-box .icon-close-box{color:#fff;position:absolute;left:0;top:0}.transparent-canvas{background-image:url(data:image/gif;base64,R0lGODlhEAAQAIAAAP///9/f3yH5BAAHAP8ALAAAAAAQABAAAAIfjG+gq4jM3IFLJgpswNly/XkcBpIiVaInlLJr9FZWAQA7);background-repeat:repeat}.transparent-canvas.dark{background-image:url(data:image/gif;base64,R0lGODlhEAAQAIAAAOfn58rKyiH5BAAHAP8ALAAAAAAQABAAAAIfjG+gq4jM3IFLJgpswNly/XkcBpIiVaInlLJr9FZWAQA7)}input,select,textarea{font-family:inherit;font-size:inherit;-ms-appearance:none;border-radius:3px;display:inline-block;border:1px solid transparent;background:var(--inputBackground);color:var(--inputText)}input:-webkit-autofill,select:-webkit-autofill,textarea:-webkit-autofill{-webkit-text-fill-color:var(--inputText)!important}.input-focus,input.search:focus,input:focus,select:focus,textarea:focus{border-color:var(--colorAccent)}input:-webkit-autofill,input:-webkit-autofill:focus,input:-webkit-autofill:hover,select:-webkit-autofill,select:-webkit-autofill:focus,select:-webkit-autofill:hover{-webkit-text-fill-color:inherit;-webkit-box-shadow:inset 0 0 0 9999px transparent;-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s}select{font:inherit;outline:0}.text-input,textarea{outline:0}input[type=checkbox],input[type=radio]{border-radius:0;border:none;position:relative;vertical-align:baseline}.input-line-height,.text-input,input[type=text]{height:36px}.input-line-height{line-height:36px}.text-input,input[type=text]:not(.text-input),textarea{padding:7px 10px;width:100%}.ie7 .text-input,.ie7 input[type=text],.ie7 textarea{padding:10px;width:328px;height:14px}.ie8 .text-input,.ie8 input[type=text],.ie8 textarea,.ie9 .text-input,.ie9 input[type=text],.ie9 textarea{height:auto}.tone-dark .input-focus,.tone-dark input.search:focus,.tone-dark input:focus,.tone-dark select:focus,.tone-dark textarea:focus{border-color:var(--colorAccent);box-shadow:0 0 8px 0 rgba(0,167,218,.75)}.input,.input-label{position:relative;overflow:visible;scroll-snap-align:start}.input{margin:10px 0;font-size:1em}.input.first-child,.input:first-child{margin-top:0}.input-label{margin:20px 0}.input-label.first-child,.input:first-child{margin-top:0}.input-label h3,.input-label label,.input-label-label{font-weight:600;padding-bottom:5px;display:inline-block;font-size:1em}.input-label h3{display:block}.input-label h3 a,.input-label label a{font-weight:400}.input-label label .caption,.input-label label .optional{font-weight:400;font-size:.92em}.input-label .btn-alt{position:absolute;left:100%;top:23px;line-height:36px;margin-left:10px;margin-right:0}.phone .input-label .btn-alt{position:static;margin-left:0}.checkbox-label,.input-label{position:relative;font-size:.93em}.input .icon-input-submit{background:0 0;font-size:1.82em;color:#d9d9d9;position:absolute;right:.21em;top:.21em;cursor:pointer;line-height:1}.tone-dark .input .icon-input-submit{color:#666}.input .icon-input-submit.focus,.input .icon-input-submit:focus,.input .icon-input-submit:hover{color:var(--colorAccent)}.ie7 .input .icon-input-submit{top:2px}.ui-autocomplete{max-height:130px;overflow-y:auto;overflow-x:hidden}* html .ui-autocomplete{height:125px}.autocomplete-list{position:absolute;display:none;z-index:1}.autocomplete-list .ui-autocomplete{position:absolute;top:0;left:0}.autocomplete-list ul{border:1px solid var(--bodyTextDisabled)}.autocomplete-list a{color:inherit;background:Window;padding:7px 10px;display:block;text-decoration:none;cursor:default}.autocomplete-list a.ui-state-focus{background:Highlight;color:HighlightText}.input-column{width:350px}.input-warning{color:var(--bodyTextSubtle);position:absolute;right:0;top:0}.input-below{margin-top:5px;display:block;position:static}.red-warning{color:#d74634}.input-password .input-password-strength{position:absolute;right:11px;top:50%;margin-top:5px}.fancy-fieldset .input-password{display:flex;align-items:center}.fancy-fieldset .input-password-strength{right:0;top:auto;margin-top:0}.input-password-strength{background:var(--bodyEmpty)}.tone-dark .input-password-strength{background:#1f1f1f}.input-password-strength,.input-password-strength span{display:block;width:50px;height:8px}.input-password-strength span{width:0%;background-color:transparent}.input-password-strength [data-veredict=very-weak]{background-color:#e74c3c}.input-password-strength [data-veredict=weak]{background-color:#e67e22}.input-password-strength [data-veredict=average],.input-password-strength [data-veredict=strong],.input-password-strength [data-veredict=stronger]{background-color:#2ecc71}.checkbox-label{font-size:1em;display:block;margin:5px 0;position:relative}.checkbox-label:last-child{margin-bottom:0}.checkbox-label input{position:absolute;padding:0;margin:0;margin-left:-20px}.btn-alt.checkbox-label input{position:static;vertical-align:text-top;margin-right:4px}.phone .btn-alt.checkbox-label{display:block!important;margin:10px 0}.checkbox-label label{padding-left:20px;font-weight:400;margin:0;padding-bottom:0}.fancy-box .checkbox-label label{display:flex;align-items:flex-start}.input-search{position:relative}input.search{font-size:1em;border-radius:200px;padding:0 25px 0 32px;padding-right:3.0666rem;padding-left:2.3571rem;line-height:100%;height:26px;height:1.86rem;width:100%;border:1px solid transparent;top:0;left:0;outline:0;vertical-align:text-bottom}input.search.one-icon-padding,input.search.two-icon-padding{padding-right:30px;padding-right:2rem}input.search.two-icon-padding{padding-left:30px;padding-left:2rem}.top-bar input.search{padding-left:39px;padding-left:2.46rem;top:-2px;position:relative;padding-right:34px;background:0 0;border:transparent;box-shadow:none!important}.top-bar input{color:var(--topBarText)}.ie7 input.search,.ie8 input.search,.ie9 input.search{padding-right:10px;line-height:26px;height:26px}.ie7 input.search{padding:0;width:200px}.input-search span{position:absolute;cursor:pointer}.input-search .icon--search{left:12px;top:6px;color:var(--inputText)}.top-bar .input-search .icon--search{top:4px;top:.24rem}.tone-dark .top-bar .input-search .icon--search,.tone-dark .top-bar .input-search input.search{color:#fff}.input-search .icon--search,.top-btn-text .icon--search{font-size:16px;width:16px;font-size:1.143rem;width:1.143rem}.input-search .icon--close,.input-search .icon--settings{padding:4px;top:0;font-size:1em}.input-search .icon--settings{right:22px}.input-search .icon--close{right:4px;color:var(--inputText)}.ie7 .input-search .icon--close,.ie8 .input-search .icon--close,.ie9 .input-search .icon--close{display:none}select{padding-left:7px!important}.ie7 select{width:100%!important;padding:0!important;height:auto!important}select option{padding:4px 10px;margin:0}textarea{resize:both;height:80px}.input-upload{position:relative}.user-settings-avatar{min-height:160px;height:auto}.user-settings-avatar-container{position:relative}.user-settings-avatar-container,.user-settings-avatar-container .user-image{font-size:160px;width:1em;height:1em}.user-settings-avatar .loading-placeholder{position:absolute;left:0;top:0;background:var(--bodyEmpty)}.tone-dark .user-settings-avatar .loading-placeholder{background:rgba(0,0,0,.6)}.phone .user-settings-avatar-container{margin:0 auto 10px!important}.input-upload .btn-container{margin:0 0 5px 0}.input-upload .btn-alt{margin-left:0}.arrow-down{border-width:4px 4px 0 4px;border-color:#333 transparent transparent transparent;border-color:#333 transparent transparent transparent;content:""}.arrow-down{border-style:solid;display:inline-block;height:0;width:0;vertical-align:middle}.sign-services li{display:inline-block;margin:0 4px 4px 0}.sign-service{font-size:.93em;padding:0 8px;line-height:30px;height:29px}.sign-service .btn-icon{font-size:inherit;width:auto}.sign-services-compact .btn-text{display:none}.link-service,.sign-service{color:#fff;display:inline-block;text-decoration:none!important}.link-service span,.sign-service{border-radius:3px}.link-service{font-weight:400;height:28px;position:relative}.link-service span{display:block;line-height:28px;text-align:center!important}.link-service .btn-icon{width:28px;height:28px;margin-right:4px;position:absolute;left:0;top:0}.link-service span.sign-text{padding:0 20px;margin-left:32px}.btn-social .btn-icon,.sign-service .icon{color:#fff;position:relative;display:inline-block}.btn-container{margin-top:20px;margin-bottom:20px;position:relative}.btn{height:36px;line-height:36px;font-family:inherit;font-size:1em;font-weight:400;padding:0 10px;border-radius:3px;cursor:pointer;display:inline-block;text-decoration:none;border:1px solid transparent;white-space:nowrap}.btn,.btn:active,.btn:focus,.btn:hover{text-decoration:none}.btn.default:active,.btn:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-icon{width:18px;display:inline-block;text-align:center}.btn-text{margin-left:4px}.btn-big{font-size:16px;font-size:1.143rem;height:38px;line-height:38px;padding-left:1em;padding-right:1em}.btn-small{height:30px;line-height:30px;font-size:.92em}.btn-input{font-weight:600;font-size:.93em;padding-left:20px;padding-right:20px}.btn-32{width:32px;height:32px;text-align:center;display:inline-block}.btn-32 .btn-icon{font-size:18px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.btn-capsule{border-radius:100px;border-color:rgba(255,255,255,.5);background-color:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background-image:none;height:auto;color:#fff;text-shadow:none;font-size:.93em;height:28px;line-height:28px;font-weight:400;padding:0 15px;box-shadow:none;-webkit-filter:none;filter:none}.btn-capsule:hover{background-color:rgba(0,0,0,.7)}.no-rgba .btn-capsule{border-color:#666;background-color:none;zoom:1}.btn-capsule:active{box-shadow:none}.btn-capsule .btn-icon{font-size:.93em}.btn.accent{color:var(--buttonAccentText);border:1px solid transparent;background:var(--buttonAccentBackground)}.btn.accent:not(.outline):hover{color:var(--buttonAccentHoverText);background:var(--buttonAccentHoverBackground)}.btn.accent.outline{color:var(--buttonAccentBackground);border-color:var(--buttonAccentBackground);box-shadow:none}.btn.accent.outline:hover{color:var(--buttonAccentHoverBackground);border-color:var(--buttonAccentHoverBackground)}.btn.default{color:var(--buttonDefaultText);border-color:var(--buttonDefaultBorder);background:var(--buttonDefaultBackground)}.btn.default--hover:not(.outline),.btn.default:not(.outline):hover{color:var(--buttonDefaultHoverText);background:var(--buttonDefaultHoverBackground);border-color:var(--buttonDefaultHoverBorder)}.btn.default.outline{color:var(--buttonDefaultBackground);border-color:var(--buttonDefaultBackground);box-shadow:none}.btn.default.outline:hover{color:var(--buttonDefaultHoverBackground);border-color:var(--buttonDefaultHoverBackground)}.btn.disabled,.btn.disabled:hover{color:var(--bodyTextSubtle);background-color:var(--buttonDefaultBackground);background-image:none;box-shadow:none;cursor:default}.tone-dark .btn.disabled,.tone-dark .btn.disabled:hover{color:#666;background-color:#212121}.btn.disabled.outline,.btn.disabled.outline:hover{color:var(--bodyTextSubtle);border-color:var(--bodyTextSubtle)}.btn.plain,.btn.plain:hover{background:0 0;text-shadow:none;border-color:transparent;box-shadow:none;padding:0;color:inherit}.tone-dark .btn.plain,.tone-dark .btn.plain:hover{background:0 0}.btn.plain:active{box-shadow:none}.btn.active{background-image:none;background-color:var(--colorAccent);border-color:var(--colorAccent);-webkit-filter:none;filter:none}.btn.grey,.btn.grey.off:hover{background-color:#eee}.btn.grey:hover{background-color:#e9e9e9}.btn.grey.outline{color:#eee}.btn.orange,.btn.orange.off:hover{border-color:#fe771d;background-color:#fe771d}.btn.orange:hover{background-color:#fe6b0a}.btn.orange.outline{color:#fe771d}.btn.purple,.btn.purple.off:hover{border-color:#8e44ad;background-color:#8e44ad}.btn.purple:hover{background-color:#8e44ad}.btn.purple.outline{color:#8e44ad}.btn.blue,.btn.blue.off:hover{border-color:var(--colorBlue);background-color:var(--colorBlue)}.btn.blue:hover{background-color:#2879b0}.btn.blue.outline{color:var(--colorBlue)}.btn.green,.btn.green.off:hover{background-color:var(--colorGreen)}.btn.green:not(.outline):hover{background-color:var(--colorGreenHover)}.btn.green.outline{color:var(--colorGreen);border-color:var(--colorGreenHover)}.btn.red,.btn.red.off:hover{border-color:var(--colorRed);background-color:var(--colorRed)}.btn.red:not(.outline):hover{background-color:var(--colorRedHover)}.btn.red.outline{color:var(--colorRed)}.btn.red.outline:hover{color:var(--colorRedHover);border-color:var(--colorRedHover)}.btn.white,.btn.white.off:hover{border-color:#fff;background-color:#fff}.btn.white:hover{background-color:#fff}.btn.white.outline{color:#fff}.btn.black,.btn.black.off:hover{border-color:#3a3a3a;background-color:#3a3a3a}.btn.black:hover{background-color:#343434}.btn.black.outline{color:#3a3a3a}.btn.active,.btn.black,.btn.blue,.btn.green,.btn.orange,.btn.red{color:#fff;border:1px solid transparent}.btn.grey,.btn.white{color:var(--bodyText)}.btn.off{cursor:default}.btn.off:active{box-shadow:none}.btn-social{color:var(--buttonDefaultText);background:var(--buttonDefaultBackground);background-image:none;box-shadow:none;border:1px solid transparent}.btn-social.btn-at .btn-icon,.btn-social.btn-share .btn-icon{color:var(--buttonDefaultText)}.btn-social,.btn-social:hover{text-decoration:none;text-shadow:none}.btn-twitter,.link-twitter span{background:#55acee}.btn-facebook,.link-facebook span{background:#3b5998}.btn-google,.btn-google-plus,.link-google span,.link-google-plus span{background:#d74836}.btn-mail{background:#ccc;color:var(--bodyText)}.btn-mail span{color:var(--bodyText)}.btn-tumblr{background:#35465c}.btn-pinterest{background:#bd081c}.btn-stumbleupon{background:#eb4924}.btn-blogger{background:#f57d00}.btn-whatsapp{background:#43d854}.btn-telegram{background:#08c}.btn-weixin{background:#7bb32e}.btn-weibo{background:#df2029}.btn-qzone{background:#ffce00}.btn-qq{background:#121214}.btn-reddit{background:#ff4500}.btn-reddit .btn-icon{color:#fff}.btn-vk,.link-vk span{background:#45668e}.btn.outline,.btn.outline:hover{background:0 0;border:1px solid;box-shadow:none}.pop-btn,.top-btn-el,a[data-modal]{-webkit-tap-highlight-color:transparent}.pop-btn *,.top-btn-el *{-webkit-tap-highlight-color:rgba(0,0,0,.2)}.pop-btn,.top-btn-el{display:inline-block;position:relative;cursor:pointer}.pop-box-inner{cursor:default;display:block;-webkit-overflow-scrolling:touch;overflow:auto}.pop-box-inner form{margin-top:-20px;margin-bottom:-20px}.btn.pop-btn .pop-box{line-height:100%}.pop-btn-text{color:var(--linkText);cursor:pointer}.ie7 .pop-btn-text,.ie8 .pop-btn-text{padding-right:0}.pop-btn-text .arrow-down{vertical-align:middle;margin-left:5px;border-top-color:var(--linkText)}.pop-btn.disabled{cursor:default}.pop-btn.disabled .pop-btn-text{color:var(--bodyTextDisabled);cursor:default}.pop-btn.disabled .arrow-down{border-top-color:var(--bodyTextDisabled)}.tone-dark .pop-btn.disabled .arrow-down{border-top-color:#444}.pop-box{color:var(--menuText);background:var(--menuBackground);-webkit-backdrop-filter:blur(15px) saturate(1.8);backdrop-filter:blur(15px) saturate(1.8);display:none;font-size:.93em;z-index:200;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid var(--menuSeparator)}.pop-box .or-separator{border-top-color:var(--menuSeparator)}.phablet .pop-box .or-separator,.phone .pop-box .or-separator{border-top-color:var(--topBarText);opacity:.25}@media (min-width:992px){.pop-box{position:absolute;top:20px;min-height:20px;min-width:190px;box-shadow:0 4px 14px rgba(0,0,0,.25);border-radius:5px;box-sizing:content-box;--columnGutter:5px;--columnWidth:230px;--columnWidthOuter:calc(var(--columnWidth) + var(--columnGutter))}.header--height .pop-box{min-width:240px}.pop-box,.pop-box.left-anchor{left:0}.pop-box.anchor-center{left:50%!important}.pop-box.anchor-right{left:auto;right:0}.pop-box.pbcols1{width:calc(1 * var(--columnWidthOuter) + var(--columnGutter))}.pop-box.pbcols2{width:calc(2 * var(--columnWidthOuter) + var(--columnGutter))}.pop-box.pbcols3{width:calc(3 * var(--columnWidthOuter) + var(--columnGutter))}.pop-box.pbcols4{width:calc(4 * var(--columnWidthOuter) + var(--columnGutter))}.pop-box.pbcols5{width:calc(5 * var(--columnWidthOuter) + var(--columnGutter))}.pop-box.pbcols1 li,.pop-box.pbcols2 li,.pop-box.pbcols3 li,.pop-box.pbcols4 li,.pop-box.pbcols5 li{border-radius:5px}.pop-box-menucols ul{padding:10px 0;overflow:auto}.pop-box-menucols li{width:var(--columnWidth);float:left;margin:0 0 0 5px}.pop-box-menucols li:first-child a,.pop-box-menucols li:last-child a{border-radius:0}}.pop-box-menu{font-size:.8125rem;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory}.pop-box-label{color:inherit;margin:10px;text-transform:uppercase;font-weight:700;font-size:90%;cursor:default;line-height:2}.pop-box-block{padding:0 10px}.pop-box-block .current::before{font-weight:900;font-family:"Font Awesome 5 Free";-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;margin-right:.25em;content:"\f205";font-size:90%}.pop-box-menu .menu-item,.pop-box-menu a{display:block;padding:6px 10px;text-decoration:none;font-weight:400;line-height:143%;color:var(--menuItemText)}.pop-box-block a{display:inline-block;padding:6px;border-radius:.25em;line-height:1}.phablet .pop-box,.phone .pop-box{color:var(--topBarText)}.phablet .pop-box-menu .menu-item,.phablet .pop-box-menu a,.phone .pop-box-menu .menu-item,.phone .pop-box-menu a{padding:10px;color:inherit}.phablet .pop-box-menu li.with-icon a .btn-icon,.phone .pop-box-menu li.with-icon a .btn-icon{top:11px}@media (min-width:992px){.pop-box-menu .menu-item,.pop-box-menu a{border-bottom:0}}.pop-box-menu a.focus,html:not(.phone) .pop-box-menu a:hover{background:var(--menuItemHoverBackground);color:var(--menuItemHoverText)}.pop-box-menu li.current a{background:rgba(0,0,0,.05)}.pop-box-menu li.current a:not(:hover) .btn-icon{color:var(--colorAccent)}.pop-box-menu ul{display:block;padding:0}@media (min-width:992px){.pop-box-menu ul{margin:5px 0}}.pop-box-menu li{display:block;text-align:left;overflow:hidden;position:relative}.pop-box-menu li.with-icon a{padding-left:36px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}html:not(.phone):not(.phablet) .header--height .pop-box-menu li a{padding-right:25px}.pop-box-menu li a kbd{position:absolute;top:50%;transform:translateY(-50%);right:10px;border-radius:2px;display:block;line-height:1;font-size:.9em;opacity:.5}.pop-box-menu li a:hover kbd{opacity:1}.phablet .pop-box-menu li a kbd,.phone .pop-box-menu li a kbd{display:none}.pop-box-menu li.with-icon a .btn-icon{position:absolute;left:10px;top:8px}.pop-box-menu li.current,.pop-box-menu li.current a{font-weight:600}.pop-box-menu li.current a:hover{cursor:default}.pop-box-userdetails{padding:10px;width:120%;min-width:230px;cursor:default;left:42px;line-height:normal;top:0!important;margin-top:0!important}.phablet .pop-box,.phone .pop-box{position:fixed;bottom:0;left:0!important;width:100%;top:auto!important;background:var(--topBarBackground);color:var(--topBarText)}.pop-box-header{font-weight:700;padding:15px 10px;position:relative;text-align:left;color:var(--topBarText)}.pop-box-header .icon--close{position:absolute;right:10px;top:50%;margin-top:-7px;font-size:14px;text-align:right}@media (min-width:992px){.pop-box-header{display:none}}.top-bar-placeholder{-webkit-backface-visibility:hidden;backface-visibility:hidden}.top-bar,.top-bar ul li.pop-btn,.top-bar ul li.top-btn-el,.top-bar-placeholder{height:50px}.top-btn-create-account,.top-btn-text{line-height:50px}.top-btn-text{-webkit-tap-highlight-color:transparent}.follow-scroll,.top-bar{transition:top .4s ease-in-out}.top-bar--:focus-within,.top-bar.scroll-up{top:0}.follow-scroll--:focus-within,.scroll-up.follow-scroll{top:50px!important}.scroll-down{top:-100%}.top-bar,.top-sub-bar{left:0;right:0;width:100%;position:-webkit-sticky;position:sticky;height:50px}.top-bar{color:var(--topBarText);z-index:900}.top-bar--main{z-index:910}.top-sub-bar{color:var(--bodyText);z-index:500;overflow:visible}body.pop-box-show .top-sub-bar--1{z-index:1}body.landing .top-bar,body.split .top-bar{position:fixed}.phablet .pop-box-show .top-bar,.phone .pop-box-show .top-bar{z-index:1}.follow-scroll-wrapper.position-fixed,.top-bar::before,.top-sub-bar::before{background:var(--topBarBackground);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.top-sub-bar::before{background:var(--bodyBackground)}.top-bar::before,.top-sub-bar::before{-webkit-backface-visibility:hidden;backface-visibility:hidden}.top-bar::before,.top-sub-bar::before{width:100%;height:calc(100% + .5px);position:absolute;content:" "}.top-bar .content-width,.top-sub-bar .content-width{position:relative;height:100%;padding-left:5px;padding-right:5px}.top-bar-logo{width:100%;height:100%;position:absolute;top:0;text-align:center;left:0}.top-bar-logo img{height:20px}.top-bar-logo>a{display:inline-block;vertical-align:top;position:relative;top:50%;transform:translateY(-50%);text-decoration:none;font-weight:400;font-size:24px;color:var(--topBarText)}.top-bar-logo img{display:block;margin-left:auto;margin-right:auto}.top-bar ul{list-style:none}.top-bar li.pop-btn,.top-bar li.top-btn-el{float:left;padding-right:5px;padding-left:5px;position:relative}@media (min-width:992px){.top-bar li.pop-btn,.top-bar li.top-btn-el{padding-right:10px;padding-left:10px}.top-bar .top-bar-notifications.pop-btn{padding-right:0}}.top-bar ul .pop-btn.current,.top-bar ul .top-btn-el.current{border-bottom:3px solid var(--colorAccent)}.top-bar ul .pop-btn.current .top-btn-text,.top-bar ul .top-btn-el.current .top-btn-text{text-shadow:none;box-shadow:none}.top-bar ul li.top-btn-el a{text-decoration:none;color:inherit}.tone-light .top-bar .top-bar ul .pop-btn.current .top-btn-text,.tone-light .top-bar .top-bar ul .top-btn-el.current .top-btn-text{color:var(--bodyText)}.top-bar-right li.pop-btn:last-child,.top-bar-right li.pop-btn:last-child .arrow-down{margin-right:0}.top-btn-create-account,.top-btn-text{display:block;font-weight:400;font-size:1em;height:100%}#menu-fullscreen .btn.top-btn-create-account,.btn.top-btn-create-account:not(.grey):not(.white),.top-btn-text{color:inherit}.top-btn-text{text-decoration:none;color:var(--topBarText)}.top-bar #menu-fullscreen .top-btn-text{color:var(--topBarText)}body.landing .top-btn-text{color:var(--topBarText)}.top-btn-text .icon{margin-right:7px;position:relative;top:0;display:inline-block;font-size:16px;width:16px;font-size:1.143rem;width:1.4rem;line-height:50px;text-align:center}.current .top-btn-text .icon{color:var(--colorAccent)}.top-btn-text .btn-text{margin-left:0}.top-btn-text .arrow-down{position:relative;margin:0 0 0 5px}.top-btn-text .btn-text{vertical-align:top}.top-btn-text .icon{margin-right:0}#menu-fullscreen .top-bar-notifications .btn-text{display:inline-block}#menu-fullscreen #top-bar-user,#menu-fullscreen [data-nav=upload]{display:none}#top-bar [data-nav=upload]{padding-right:5px;padding-left:5px}.top-bar-notifications-container{margin-right:2px;cursor:default}.top-bar-notifications-header{font-size:.93em;line-height:1;padding:12px 10px;overflow:auto}.top-bar-notifications-header,.top-bar-notifications-list li{border-bottom:1px solid var(--menuSeparator)}.tone-dark .top-bar-notifications-header,.tone-dark .top-bar-notifications-list li{border-color:#333}.top-bar-notifications-header h2{font-size:1em;font-weight:700;float:left}.top-bar-notifications-header a{float:right}.top-bar-notifications-list li{font-size:.93em;display:block;text-decoration:none;padding:10px;position:relative;min-height:68px;padding-left:68px}.top-bar-notifications-list li:last-child{border-bottom:0}.top-bar-notifications-list li:hover{background:rgba(0,0,0,.02)}.tone-dark .top-bar-notifications-list li:hover{background:rgba(0,0,0,.2)}.top-bar-notifications-list li.transition{transition:background-color 150ms linear}.top-bar-notifications-list li.new,.top-bar-notifications-list li.persistent{background:#fffad9}.tone-dark .top-bar-notifications-list li.new,.tone-dark .top-bar-notifications-list li.persistent{background:#333}.ie7 .top-bar-notifications-list li{min-height:48px}.top-bar-notifications-list li .user-image{width:48px;height:48px;position:absolute;left:10px;top:10px}.top-bar-notifications-list li .user-image img{width:100%;height:100%;display:block}.top-bar-notifications-list li .user-image span.icon{font-size:30px;width:30px;height:30px;margin-left:-15px;margin-top:-15px}.top-bar-notifications-list li .how-long-ago{display:block;font-size:11px;color:var(--bodyTextSubtle)}.top-bar-notifications .top-btn-number{position:absolute;z-index:1;border-radius:100px;zoom:.75;right:-8px;top:10px;visibility:hidden}.top-bar-notifications .top-btn-number.on{visibility:visible}@media (min-width:992px){.top-bar .pop-box{margin:10px;z-index:200}}.top-bar-search-input{margin-left:-10px;margin-right:10px!important}.top-bar-search-input .icon--close{right:-4px}.top-bar-search-input .icon--settings{right:14px}.top-bar .top-bar-search-input .icon--search{color:var(--colorAccent)}.top-bar-search-input .input-search{position:relative;top:50%;margin-top:-13px}.top-bar-search-input input{font-size:1em;border-width:0;padding-left:36px}.tone-light .top-bar .top-bar-search-input input{border-width:1px}.top-bar-left .pop-box{left:-10px}.phone .top-bar-left li{padding-right:0}.phone .top-bar-right li{padding-left:0}.top-bar-right .pop-box{left:auto;right:-10px}.top-bar--main .pop-box{top:calc(50% + 10px)}#top-predictive-search.pop-box{width:200px;left:0;font-size:100%}.top-bar .pop-account .or-separator{margin-top:30px;margin-bottom:30px}.top-btn-create-account{text-decoration:none;display:inline;padding:4px 12px;height:26px}.top-bar .opened .top-btn-text span:not(.btn-text),.top-bar .top-btn-text:hover span:not(.btn-text){color:var(--linkText)}.phone .top-bar .top-btn-text:hover span:not(.btn-text){color:inherit}.phone .top-bar .current .top-btn-text:hover span:not(.btn-text){color:var(--linkText)}.ios .top-bar .top-btn-text span:not(.btn-text):not(.top-btn-number):hover{color:var(--bodyText)}.ios .top-bar .opened .top-btn-text span:not(.btn-text),.ios .top-bar .opened .top-btn-text:not(.top-btn-number){color:var(--linkText)}.top-bar .btn:hover:not(.white):not(.grey),.top-bar .btn:not(.white):not(.grey),.top-bar .opened .btn:not(.white):not(.grey){color:#fff}.current .top-btn-create-account:hover{background:inherit}.current .top-btn-create-account{padding:0;background:0 0}.top-btn-number{background:#555;color:#ddd;font-size:12px;font-weight:400;border-radius:3px;padding:0 7px;position:relative;display:block;line-height:22px;height:22px;top:-2px}#menu-fullscreen .top-btn-number{display:inline-block;position:absolute;margin-right:5px;top:10px;vertical-align:text-bottom;left:30px;right:auto}.opened .top-btn-number.on,.tone-light.ios .top-bar .top-btn-number.on,.tone-light.top-bar .top-btn-number.on,.top-btn-number.on,.top-btn-number.on:hover{background:#d90000;color:#fff}.pop-account .pop-box-inner{padding:20px 10px;cursor:default}.pop-account .title,.pop-account h2{font-size:1em;text-align:center;margin-top:5px;font-weight:400;display:block}.pop-account .sign-services{margin:15px 0 11px 0}.pop-account input.text-input,.pop-account input[type=password],.pop-account input[type=text]{width:100%}.ie7 .pop-account input.text-input{width:266px;height:auto}.pop-account .checkbox-label{display:inline-block;margin:0}#top-bar-user .top-btn-text .user-image{position:relative;top:50%;margin-top:-13px;width:1em;height:1em;float:left;font-size:26px;background:0 0;color:inherit;margin-right:0}#top-bar-user-menu.pop-box{width:150px}.header{position:relative}.header-icon{color:var(--colorAccent)}.header-tabs{min-height:50px}.header.follow-scroll{margin-right:-10px;margin-left:-10px;padding-left:10px;padding-right:10px;overflow:visible;position:-webkit-sticky;position:sticky;min-height:50px}.tone-dark .header{border-bottom-color:#212121}.header.fixed.follow-scroll{border-bottom:0}.header .header-title,.header h1{font-size:1em}.header>*{vertical-align:middle}.header .heading,.header .heading *,.header>.header-title,.header>h1{word-break:break-word}.header-tabs .heading,.header-tabs .heading *,.header-tabs>.header-title,.header-tabs>h1{line-height:50px}.header .heading,.header>.header-title,.header>h1{font-size:22px;font-weight:400;display:inline-block;color:inherit}.header .header-title a,.header h1 a{color:inherit;text-decoration:none}.header .header-title strong,.header .heading strong,.header h1 strong{font-weight:inherit}.header.header-tabs .header-title,.header.header-tabs h1{margin-right:5px;margin-left:5px}.header ul.content-tabs{display:inline-block}.phablet .header ul.content-tabs,.phone .header ul.content-tabs{float:none;display:inline-block;left:0;right:0;position:absolute;z-index:1;white-space:nowrap}.phablet .header.follow-scroll ul.content-tabs,.phone .header.follow-scroll ul.content-tabs{position:absolute;padding-left:10px;padding-right:10px}.phablet .header:not(.follow-scroll) ul.content-tabs,.phone .header:not(.follow-scroll) ul.content-tabs{top:auto}.header-content-left{float:left}.header-content-right{float:right;height:auto;margin-left:auto}@media (max-width:340px){.header-content-right.breaks-ui{clear:both;position:static!important;margin-left:0}}.phablet .header-content-right:not(.phablet-float-none),.phone .header-content-right:not(.phone-float-none){position:absolute;right:0;top:0;float:right}.header-content-right .number-figures{margin-top:14px;border-left:1px solid var(--bodySeparator)}.header-content-right .number-figures:first-child{border-left:0}.header .header-link{font-size:1em;display:inline-block}.header .pop-btn.breadcrum-item{margin-top:0}.header .user-image{font-size:30px;width:1em;height:1em;margin-top:10px;float:left}.header.header-content{position:relative;min-height:40px;border:0}.header.header-content .heading,.header.header-content .heading *{line-height:40px;height:40px}.header-content img{max-height:40px}.header-content .user-image{width:1em;height:1em;font-size:40px;margin-top:0;top:0}.header .user-image img,.header-content .user-image img{width:100%;height:100%;display:block}.header-description{line-height:1.4;max-height:10vh;overflow-y:scroll;overflow:auto}.header-description:empty{display:none}.header-description p{margin:10px 0}.header-content-breadcrum{float:left}.breadcrum-item *{line-height:normal}.breadcrum-text,.header-content-breadcrum .breadcrum-item{line-height:40px}.breadcrum-text,.breadcrum-text a{color:inherit}.breadcrum-text{font-weight:400}.breadcrum-item{margin-right:10px;position:relative;float:left}.breadcrum-text a:hover{color:var(--linkText);text-decoration:none}.breadcrum-text .user-link{margin-left:5px}.header-content-breadcrum .arrow,.header-content-breadcrum .arrow-down,.header-content-breadcrum .arrow-right{margin-left:5px;position:relative}.header-content-breadcrum a:hover .arrow-down{border-top-color:var(--linkText)}.header-content-breadcrum a:hover .arrow-right{border-left-color:var(--linkText)}.header-content-breadcrum .pop-box h2{font-size:1.07em;line-height:1.2}.header-content-breadcrum .pop-box h2 a{line-height:1}.header-content .btn{margin-left:5px;float:left;display:block}.header-content .btn:last-child{margin-right:0}.follow-scroll{margin-left:auto;margin-right:auto;z-index:1}.follow-scroll-wrapper{left:0;right:0;z-index:50}.follow-scroll-wrapper.position-fixed .header{margin-bottom:-1px!important}.follow-scroll-placeholder{-webkit-backface-visibility:hidden;backface-visibility:hidden}.phablet .header:not(.header-tabs) .tab-menu,.phone .header:not(.header-tabs) .tab-menu{color:var(--buttonDefaultText);background:var(--buttonDefaultBackground);border-radius:4px;height:auto;line-height:1em;min-height:1em;padding:10px}.phablet .header:not(.header-tabs) .tab-menu:not(.--hide),.phone .header:not(.header-tabs) .tab-menu:not(.--hide){color:var(--buttonDefaultHoverText);background:var(--buttonDefaultHoverBackground);margin-bottom:10px}.phablet .header .tab-menu.--hide .tab-menu--show,.phablet .header .tab-menu:not(.--hide) .tab-menu--hide,.phone .header .tab-menu.--hide .tab-menu--show,.phone .header .tab-menu:not(.--hide) .tab-menu--hide{display:none}.tab-menu{cursor:pointer;line-height:50px;min-height:50px}.tab-menu.--hide .btn-icon[data-content=tab-icon]{color:var(--colorAccent)}.tab-menu.--hide{color:var(--buttonDefaultText)}.tab-menu:not(.--hide){color:var(--buttonDefaultHoverText)}.content-tabs-container{position:relative;display:inline-block}.phablet .content-tabs-container--mobile,.phone .content-tabs-container--mobile{box-shadow:0 6px 4px rgba(0,0,0,.25);left:-10px;width:calc(100% + 15px)}.phablet .content-tabs-wrap,.phone .content-tabs-wrap{height:50px;overflow-y:hidden;position:relative;-webkit-overflow-scrolling:touch;overflow-x:scroll;position:relative;display:none;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:var(--bodyBackground)}.content-tabs-wrap::-webkit-scrollbar{display:none}.content-tabs-wrap{display:inline-block;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory}.content-tabs li{scroll-snap-align:start}.content-tabs li:not(.current){transition-duration:.2s;transition-property:background-color}.content-tabs a{font-weight:400;color:inherit;text-decoration:none;padding-left:10px;padding-right:10px}.phone .content-tabs li:last-child{margin-right:15px}.content-tabs-shade{content:" ";background:-webkit-linear-gradient(0deg,rgba(255,255,255,0),var(--bodyBackground));width:15px;height:100%;position:absolute;right:0;top:0;pointer-events:none;z-index:2}.phablet .content-tabs a,.phone .content-tabs a{color:var(--menuItemText)}.content-tabs li.disabled a{cursor:default}.tab-menu .--show{display:none}.tab-menu.current .--show{display:inline-block}.tab-menu.current .--hide{display:none}.content-tabs li{float:left;font-size:1em}.phablet .content-tabs li,.phone .content-tabs li{float:none;border-bottom:0;display:inline-block}.content-tabs-vertical li{float:none;margin:0;border-left:2px solid transparent}.content-tabs-vertical li>*{padding-right:20px;padding-left:20px}.header-content-right .content-tabs li{margin-left:10px;margin-right:0}.content-tabs a,.content-tabs li{height:50px;line-height:50px;display:block}.content-tabs-vertical a,.content-tabs-vertical li{height:38px;line-height:38px}.content-tabs li.current,.content-tabs li.visited,.content-tabs li.visited:hover{border-color:var(--colorAccent);border-style:solid;border-bottom-width:3px}.content-tabs li.current .btn-icon{color:var(--colorAccent)}.content-tabs li:not(.current):hover{background:var(--bodyEmpty)}.content-tabs li:not(.current):hover a .btn-icon{color:var(--colorAccent)}.content-tabs li.disabled:hover{border-bottom:0}.content-tabs li.current{border-color:var(--colorAccent)}.content-tabs li.visited{border-bottom-color:transparent}.content-tabs li.current.visited{border-color:#d93600}.content-tabs li.visited,.content-tabs li.visited a{color:#d93600}.content-tabs-vertical li.current,.content-tabs-vertical li:hover{border-bottom-width:0;border-left-width:2px}.content-tabs .tab-count{font-weight:400;color:var(--bodyTextSubtle)}.content-tabs .tab-count-block{font-weight:400;background:#d90000;border-radius:3px;padding:1px 4px;position:relative;top:-1px}.content-tabs .current .tab-count-block,.content-tabs .tab-count-block{color:#fff}.content-tabs li.disabled *{color:var(--bodyTextDisabled)}.header--centering{display:flex;align-items:center;flex-wrap:wrap}.header--height{overflow:visible;height:50px}.list-selection *{line-height:normal}#tabbed-content-group{margin-top:20px;padding-bottom:20px;position:relative}.content-listing .viewer-kb{opacity:0;position:fixed;bottom:-100px;z-index:1;left:0;right:0;background:linear-gradient(0deg,var(--topBarBackground) 0,rgba(0,0,0,0) 100%)}.--has-selection .content-listing.visible .viewer-kb{opacity:1;bottom:0}.content-listing .viewer-kb-input{color:var(--menuText);background:var(--menuBackground);border-radius:.5em;margin:1em;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);box-shadow:0 4px 14px rgb(0 0 0 / 25%)}#content-listing-tabs #tabbed-content-group{margin-top:0}#content-listing-tabs{padding-bottom:0;margin-left:-10px;margin-right:-10px}.tabbed-content{display:none;width:100%;overflow:hidden}.title{font-size:.93em;font-weight:700;margin-bottom:5px}.title.grid-columns{margin-right:10px;text-align:right;line-height:2}.phablet .title.grid-columns,.phone .title.grid-columns{margin-right:0!important;text-align:left}.tabbed-content-section{overflow:auto}.tabbed-content-list{line-height:1.8}.tabbed-listing .tabbed-content{overflow:hidden}.table-li{display:table;width:100%}.table-li>li{padding-top:8px;padding-bottom:8px;border-bottom:1px solid var(--bodySeparator);list-style:none!important}.tabbed-content-list.table-li-hover>li:hover{background:var(--bodyEmpty)}.tabbed-content-list .table-li-header{font-weight:700}.tabbed-content-list.table-li-hover .table-li-header:hover,.tone-dark .tabbed-content-list.table-li-hover .table-li-header:hover{background:0 0}.table-li ul li:last-child{border-bottom:none}.desktop .table-li--mobile-display,.laptop .table-li--mobile-display,.largescreen .table-li--mobile-display,.phablet .table-li--mobile-display,.tablet .table-li--mobile-display{display:none!important}.viewer-title{font-size:1.43em;line-height:1.43em;padding-right:3em}.panel-description:empty{display:none;margin:0!important;padding:0!important}.panel-description .description-text{font-size:1em}.panel-description .description-meta{font-size:.93em}.panel-description .exif-meta{padding-left:1.57em;position:relative}.panel-description .exif-meta .camera-icon{color:var(--bodyTextDisabled);position:absolute;left:0;top:.21em;font-size:1.14em}.panel-description .exif-meta .exif-data{display:block;font-size:1em}.panel-thumbs{position:-webkit-sticky;position:sticky;z-index:1;bottom:0;left:0;right:0;border-top:1px solid rgba(0,0,0,.05);background:0 0;-webkit-backdrop-filter:blur(15px) saturate(1.8);backdrop-filter:blur(15px) saturate(1.8)}.panel-thumb-list{overflow-x:auto;overflow-y:hidden;white-space:nowrap;text-align:center;height:50px;margin-left:auto;margin-right:auto}.panel-thumb-list:empty{display:none}.panel-thumb-list li{position:relative;font-size:0;border-bottom:3px solid transparent;display:inline-block;line-height:50px}.panel-thumb-list li.current{border-color:var(--colorAccent)}.list-item-desc .panel-thumb-list li:hover img,.panel-thumb-list li.current img{opacity:1}.phablet .panel-thumb-list li.more-link,.phone .panel-thumb-list li.more-link{clear:both;line-height:100%;padding:10px 0}.panel-thumb-list img{display:block;width:47px;height:47px;opacity:.4;transition:opacity 350ms ease}.panel-thumb-list li:hover img{opacity:1}.panel-share-item{margin-bottom:30px}.panel-share-item:last-child{margin-bottom:0}.panel-share-item h4.pre-title{padding-left:200px;line-height:20px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--bodySeparator)}.tone-dark .panel-share-item h4.pre-title{border-color:#212121}.phablet .panel-share-item h4.pre-title,.phone .panel-share-item h4.pre-title{padding-left:0}.panel-share-item h4.title{line-height:32px}.panel-share-item .grid-columns{position:relative}.panel-share-input-label{margin-bottom:10px;overflow:auto}.panel-share-input-label:last-child{margin-bottom:0}.panel-share-input{position:relative}.panel-share-networks{overflow:auto;text-align:center}.panel-share-networks h4.title{line-height:32px}.panel-share-networks li{display:inline-block;margin-right:5px;margin-bottom:5px}.panel-share-networks li a{display:block;width:32px;height:32px;position:relative}.panel-report h4.title{line-height:36px}.text-content{font-size:16px}.text-content li,.text-content p{line-height:160%;margin:10px 0}.text-content h1,.text-content h2,.text-content h3,.text-content h4{margin:40px 0 20px 0;font-weight:400;line-height:120%}.text-content h1{font-size:1.375em}.text-content h2{font-size:1.25em}.text-content h3{font-size:1.125em}.text-content h4{font-size:1.07em}.text-content h5{font-size:1em}.text-content h6{font-size:1em}.text-content ol,.text-content ul{margin-left:20px}.text-content li{list-style:disc outside;margin-top:0;margin-bottom:0}.form-content{position:relative}.signup-services-column h2{font-size:17px}.signup-services-column ul{margin:10px 0}.signup-services-column li:first-child{margin-left:0}.signup-services-column li:last-child{margin-right:0}.form-content .content-tabs-vertical{margin-right:10px;position:absolute;left:0;top:0}.form-content .content-tabs-vertical.position-fixed{position:fixed;left:auto;top:auto}.tabbed-input-column{margin-left:200px}.phablet .tabbed-input-column,.phone .tabbed-input-column{margin-left:0}.account-link{position:relative}a.account-linked-profile{width:48px;height:48px;display:block}a.account-linked-profile img{width:100%;height:100%;display:block;border:0}.text-overflow-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}html.menu-fullscreen-visible{overflow:hidden}#menu-fullscreen{position:fixed;left:0;top:0;bottom:0;right:0;height:100vh;width:100vw;overflow:auto}#menu-fullscreen>ul>li{display:block;float:none;border-bottom:0;margin:0!important;position:relative}#menu-fullscreen>ul>li .top-btn-text{padding:0 10px;background:inherit}#menu-fullscreen>ul>li .icon{margin-right:7px}#menu-fullscreen>ul>li .input-search .icon{margin-right:0}#menu-fullscreen>ul>li a{text-decoration:none}#menu-fullscreen .input-search{margin:0;margin-right:10px;top:12px;width:auto}#menu-fullscreen .menu-fullscreen-show{display:block}#menu-fullscreen .menu-fullscreen-hide{display:none}body.upload-box-visible{margin-top:300px}body.upload-box-visible.no-margin-top{margin-top:280px}body.upload-box-visible .upload-box{display:block}.upload-box{clear:both;background:var(--bodyBackground)}.upload-box--fixed{position:fixed;left:0;right:0;z-index:200;background:var(--bodyBackground)}body:not(#upload) .upload-box--fixed{padding-top:50px;overflow:auto}.phone .upload-box--fixed{top:0;z-index:500;max-height:100%;overflow-y:auto;overflow-x:hidden}.upload-box--hidden{transform:translateY(-100%);top:-1px}.upload-box--show{transform:translateY(0)}.upload-box-inner{padding:40px 0;position:relative}.phone .upload-box-inner{padding:20px 0}.upload-box-inner .position-absolute{position:absolute;text-transform:uppercase;top:20px;line-height:20px}#upload .upload-box[data-queue-size="0"] .upload-box-heading,.phone .upload-box[data-queue-size="0"] .upload-box-heading{position:fixed;top:50%;left:0;right:0;transform:translateY(-50%);padding:10px}.upload-box-heading{text-align:center}.upload-box-heading .icon{font-size:100px;height:1em;display:inline-block;margin-left:auto;margin-right:auto;text-decoration:none;-webkit-tap-highlight-color:transparent}.upload-box-heading .heading,.upload-box-heading h2{font-size:26px;margin:10px 0;display:block}.upload-box-heading .heading a,.upload-box-heading h2 a{color:inherit;text-decoration:none}.upload-box-status-text{font-size:1em;line-height:1.4}.upload-box-allowed-files{left:0;font-size:11px;font-size:.79rem;color:var(--bodyTextSubtle)}.upload-box-close{text-decoration:none;right:0;font-size:11px;line-height:11px;font-size:.79rem;line-height:1em;color:var(--bodyText)}.tone-dark .upload-box-close{color:#ccc}.upload-box-close:hover{text-decoration:none}.upload-box-close a{color:inherit;text-decoration:none}.upload-box-close .btn-icon{font-size:.9em;display:inline}@media (min-width:340px){.upload-input-col{width:310px}}.page-not-found{border-radius:10px;background:var(--bodyEmpty);text-align:center;padding:30px;font-size:16px;margin-top:20px}.page-not-found h1{font-size:30px;margin-bottom:10px}.page-not-found .input-search{margin-left:auto;margin-right:auto;margin-top:20px}.page-not-found .input-search .icon--search{font-size:20px;left:14px;top:8px}.page-not-found .input-search .icon--close{top:3px;right:6px}.page-not-found input.search{height:36px;width:100%;font-size:15px;padding-right:30px;padding-left:40px}.ie7 .page-not-found input.search,.ie8 .page-not-found input.search,.ie9 .page-not-found input.search{padding-right:10px;line-height:36px}.content-listing{overflow:hidden;position:relative;clear:both}.pad-content-listing{width:calc(100% + 10px);margin-left:auto;margin-right:auto;position:relative}.list-item{display:inline-block}.js .content-listing{height:0}.js .jsly.content-listing{height:auto}.list-item .disabled-mask{width:100%;height:100%;position:absolute;top:0;left:0;background:rgba(255,255,255,.5);z-index:1}.list-item:hover .hover-display,.phablet .list-item .hover-display,.phone .list-item .hover-display{display:block}.list-item.masked:hover .hover-display{display:none}.list-item .hover-display,html.--idle .list-item .hover-display:not(.idle-display),html.--idle .list-item-image-tools>div{opacity:0;transition:all 350ms ease}html:not(.--idle) .list-item:hover .hover-display{opacity:1}.phablet .list-item .hover-display,.phone .list-item .hover-display{opacity:1;transition:none}.list-item-image{position:relative;display:block;overflow:hidden;min-height:260px;text-align:center;background:var(--bodyEmpty);content-visibility:auto;contain:layout style paint}.list-item-image .image-container{display:inline-block;text-align:center;vertical-align:bottom;text-decoration:none;font-size:64px;width:100%;height:100%}.js .list-item-image .image-container.--media{width:100%;height:100%}.list-item-image .image-container img,.list-item-image .image-container svg{display:block;position:relative;width:100%!important;height:100%;-o-object-fit:cover;object-fit:cover}.list-item-image .image-container .icon.empty{font-size:.9em}.list-item-image .image-container .empty{color:var(--bodyText);text-decoration:none}.selected .list-item-image .image-container .icon.empty{color:#fff}.list-item-image-btn{padding:5px 8px 5px 28px;font-size:.93em;background:var(--bodyBackground);position:absolute;top:10px;cursor:pointer;border-radius:2px}.list-item-image-btn.list-image-like-btn{left:10px}.list-item-image-btn span{font-size:15px;position:absolute;left:8px;top:50%;margin-top:-8px}.ie7 .list-item-image-btn span{left:4px;top:2px}.list-item-image-btn:hover span{color:var(--colorAccent)}.list-item-image-btn.liked{background:var(--colorAccent);color:#fff;display:block}.list-item-image-btn.liked:hover{background:#d90000}.list-item-image-btn.liked:hover span.icon-like{font-size:11px;padding:0;left:10px;color:#fff;margin-top:-6px}.list-item-image-btn.liked:hover span.icon-like:before{content:"\e01f"}.list-item-desc-title{width:100%;height:100%;padding:0 10px;left:0;bottom:10px;text-decoration:none}.list-item-desc-title>*{padding-bottom:5px}.list-item-from{bottom:0;line-height:1}.phablet .content-listing:not([data-list=users]).list-item-desc-title,.phone .content-listing:not([data-list=users]).list-item-desc-title{display:none}.list-item-desc-title--center-y{top:50%;transform:translateY(-50%)}.list-item-desc-title-link{font-size:1.1em;font-weight:600;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:calc(100%)}@media (min-width:320px){.list-item-desc-title-link{width:calc(100% - 20px)}}a.list-item-desc-title-link{text-decoration:none}.list-item-title{padding-top:0;padding-bottom:0;font-weight:400;text-align:center;height:40px;overflow:hidden}.list-item-title,.list-item-title *{font-size:1em;line-height:40px}.list-item-title a{font-weight:400;color:var(--bodyText)}.list-item-alt{background:#f9f9f9}.list-item-desc-height{height:100%}.list-item-overflow{height:110%;overflow:hidden}.list-item-desc{width:100%;top:1;font-size:.93em;line-height:1;box-shadow:0 1px 0 rgba(0,0,0,.1),0 0 0 transparent;border-bottom:1px solid rgba(0,0,0,.2)}.list-item-desc a,.list-item-desc b,.list-item-desc strong,.list-item.masked:hover .list-item-desc a,.list-item.masked:hover .list-item-title a{color:inherit}.tone-dark .list-item-desc a,.tone-dark .list-item-desc b,.tone-dark .list-item-desc strong,.tone-dark .list-item.masked:hover .list-item-desc a,.tone-dark .list-item.masked:hover .list-item-title a{color:inherit}.list-item:hover .list-item-desc a,.list-item:hover .list-item-title a{color:var(--linkText)}.list-item-desc .user,.list-item-desc a.user img{border-radius:100%}.list-item-desc .user{float:left;margin-top:-20px;margin-right:8px;padding:3px;background:var(--bodyBackground);width:50px;height:50px}.tone-dark .list-item-desc .user{background:#101010}.list-item-desc .user:hover{background:var(--linkText)}.tone-dark .list-item-desc .user:hover{background:inherit}.phablet .content-listing[data-list=images] .list-item-desc,.phone .content-listing[data-list=images] .list-item-desc{display:none}.list-item-desc strong{display:block}.list-item-card{border-radius:3px;min-height:82px}.list-item-card .user-image{display:block}.list-item-thumbs-container{overflow:hidden}.list-item-thumbs{overflow:auto;background:#f9f9f9;width:101%;margin-top:2px;margin-bottom:0;margin-left:-1px}.list-item-thumbs li{background:#f6f6f6;border-right:1px solid;border-left:1px solid;border-color:#fff;float:left}.tone-dark .list-item-thumbs li{border-color:#0b0b0b}.list-item-desc{color:inherit;background:0 0;border:0;box-shadow:none;text-shadow:1px 1px 5px rgba(0,0,0,.6);opacity:0;transition:all 350ms ease;bottom:0;position:absolute}.desktop .list-item .list-item-desc,.laptop .list-item .list-item-desc,.largescreen .list-item .list-item-desc,.list-item:hover .list-item-desc,.phablet .list-item .list-item-desc,.phone .list-item .list-item-desc,.tablet .list-item .list-item-desc{opacity:1}.list-item-desc *,.list-item-desc a,.list-item:hover .list-item-desc a{color:var(--listItemText)}.list-item-desc .list-item-overflow{bottom:0;left:0;padding:10px;position:absolute;height:auto}.content-listing-loading,.content-listing-more{text-align:center;margin:20px 0}.content-listing-more{display:none}.content-listing-loading{height:32px}.content-listing-loading .loading-indicator{position:static}.content-listing-pagination{text-align:center;font-size:1.3em;padding:0;color:inherit;font-weight:400;margin-top:20px}.js .content-listing-pagination{display:none}.content-listing-pagination.visible{display:flex!important}.content-listing-pagination a{text-decoration:none;font-weight:inherit;color:inherit;padding:6px 10px;display:block;border-radius:4px}.content-listing-pagination li.pagination-prev{text-align:right}.content-listing-pagination li.pagination-next{text-align:left}.content-listing-pagination a:hover{color:var(--linkText);background:var(--bodyEmpty)}.content-listing-pagination a.current{color:inherit}.tone-dark .content-listing-pagination a.current{color:#fff}.tone-dark .content-listing-pagination a:hover{background:#1f1f1f}.phone .content-listing-pagination li.pagination-page{display:none}.content-listing-pagination li,.phone .content-listing-pagination li.pagination-page.pagination-current{display:inline-block}.content-listing-pagination li.pagination-next,.content-listing-pagination li.pagination-prev{flex-grow:4}.content-listing-pagination li.pagination-current{flex-grow:1}.content-listing-pagination .pagination-current a,.content-listing-pagination .pagination-current a:hover{color:inherit;background:initial;cursor:default}.pagination-disabled{visibility:hidden}.content-empty{padding:4em 2em;text-align:center;font-size:inherit;color:var(--bodyText)}.content-empty .icon{color:var(--bodyEmpty);font-size:90px;width:90px;height:90px;display:inline-block}.tone-dark .content-empty,.tone-dark .content-empty .icon{color:#444}.content-empty .message,.content-empty h2{font-size:16px;margin-top:10px;line-height:160%}.tone-dark .content-empty .message,.tone-dark .content-empty h2{color:#444}.sort-listing{display:none}.sort-listing .selection-count:before{content:" (";white-space:pre}.sort-listing .selection-count:after{content:")"}.disabled.sort-listing .selection-count:after,.disabled.sort-listing .selection-count:before{display:none}.user-image{display:inline-block}.user-image path{fill:red}.user-image,.user-image img{display:block;border-radius:3px}.default-user-image{color:var(--bodyText);text-align:center;position:relative;border-radius:100%;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:var(--backgroundLightAlpha)}.checkered-background{background-image:linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 25%),linear-gradient(135deg,rgba(0,0,0,.1) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(0,0,0,.1) 75%),linear-gradient(135deg,transparent 75%,rgba(0,0,0,.1) 75%);background-size:25px 25px;background-position:0 0,12.5px 0,12.5px -12.5px,0 12.5px}.default-user-image .icon{color:inherit;position:absolute;left:50%;top:50%;display:block;line-height:100%;font-size:1em;width:1em;height:1em;margin-left:-.5em;margin-top:-.5em}.default-user-image.size-70,img.user-image.size-70{width:70px;height:70px}.default-user-image.size-70 .icon{font-size:38px;margin-left:-19px;margin-top:-19px}.default-user-image.size-60,img.user-image.size-60{width:60px;height:60px}.default-user-image.size-60 .icon{font-size:32px;margin-left:-16px;margin-top:-16px}.default-user-image.size-40,img.user-image.size-40{width:40px;height:40px}.default-user-image.size-40 .icon{font-size:22px;margin-left:-11px;margin-top:-11px}.user-social-networks{font-size:1em}.user-social-networks,.user-social-networks a{text-decoration:none;color:var(--bodyTextSubtle)}.user-social-networks a{padding:2px}.user-social-networks a:hover{color:var(--bodyText)}.top-user{position:relative;height:110px;margin-top:10px;margin-bottom:10px;min-height:160px;height:auto}.top-user>div{position:absolute;top:0}.top-user .top-user-credentials{position:static;padding-right:220px;clear:both;overflow:visible}.top-user.user-has-no-background .top-user-credentials{overflow:auto}.phone .top-user .top-user-credentials{padding-right:0;padding-left:0;width:100%;margin-bottom:10px;text-align:center;margin-top:-160px}.phone .top-user.no-background .top-user-credentials{margin-top:initial}.phone .top-user .top-user-credentials>a{display:inline-block}.top-user .header-content-right{right:0}.top-user .header-content-right>*{margin-bottom:10px}.top-user .header-content-right>:last-child{margin-bottom:0}.phone .top-user .header-content-right{position:relative}.phone .top-user .header-content-right>div{margin:10px auto;text-align:center}.phone .top-user .input-search{position:relative;top:auto}.phone .top-user .input-search form{position:relative}.phone .top-user .number-figures{line-height:28px}.top-user h1{font-size:26px;font-weight:700;margin-bottom:5px;margin-top:10px;color:var(--bodyText)}.no-margin-top .top-user h1,.phone .top-user h1{margin-top:0}.top-user h1 a{color:inherit;text-decoration:none}.top-user .user-meta{margin-bottom:10px}.user-meta .icon--lock{margin-right:5px}.top-user .user-image{font-size:160px;width:1em;height:1em;border:4px solid var(--bodyBackground);float:left;margin-right:10px;border-radius:100%}.tone-dark .top-user .user-image{border-color:#0b0b0b}.phone .top-user .user-image{float:none;margin-left:auto;margin-right:auto;margin-bottom:10px}.phone body.no-margin-top .top-user .user-image{margin-top:10px}.top-user img.user-image{background:var(--bodyBackground)}.phone .top-user img.user-image{border:10px solid transparent;box-sizing:content-box;background:rgb(255 255 255 / 10%);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.top-user .user-image.no-border{border:none}.top-user .number-figures{margin-top:0}.user-card.avatar{padding-left:70px}.user-card.no-avatar{padding-left:0}.user-card .or-separator{margin-top:5px;margin-bottom:5px}.user-card .user-link{font-size:.93em}.user-card-header h2{font-size:15px;font-weight:400;margin-top:0;margin-bottom:2px}.user-card-header h2 a{color:inherit;text-decoration:none}.tone-dark .user-card-header h2 a{color:#fff}.user-card-header div{color:var(--bodyTextSubtle)}.user-card-footer{overflow:hidden}.user-card-footer .user-social-networks{margin-top:3px}.top-user .input-search .icon--close{top:4px}.ad-space{text-align:center}.ad-margin-vertical{margin-top:20px;margin-bottom:20px}.ad-margin-horizontal{margin-left:20px;margin-right:20px}[role=menu]{position:relative;overflow:visible}.menu-box,[role=menu]>.menu-box{z-index:300}[role=menu]>.menu-box{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;max-height:10px;display:block;visibility:hidden;transition:350ms all ease-in-out;opacity:0;transform:translateY(-5px);transform-origin:top;max-height:100vh}[role=menu].opened>.menu-box{visibility:visible;opacity:1;transform:translateY(0)}@media (min-width:768px){[role=menu]>.menu-box{transition:none}}.menu-box{border:0}.menu-box,.menu-box .menu-box-sub>.sub,.menu-box .menu-box-sub>ul{background:var(--bodyBackground);border-radius:3px;box-shadow:0 0 15px 0 rgba(0,0,0,.2);color:var(--bodyText);font-size:14px;font-weight:400;position:absolute;top:100%;list-style:none;min-width:190px;padding:0;margin:0}.menu-box--static{position:static;max-width:190px}.menu-box :not(a),.menu-box [role*=button]{color:var(--bodyText)}.tone-dark .menu-box :not(a),.tone-dark .menu-box [role*=button]{color:#fff}.menu-box ul{margin:0;padding:0}.float-left .menu-box,.pull-left .menu-box,menu-box.anchor-left{left:0}.float-right .menu-box,.menu-box--anchor-right,.pull-right .menu-box{right:0}.menu-box .separator,.menu-box [role=separator],.menu-box hr{display:block;margin:0;padding:0;height:0;border:0;border-top:1px solid #ebebeb}.menu-box--border-separators>*{border-bottom:1px solid #ebebeb}.menu-box--border-separators>:last-child{border-bottom:0}.menu-box--border-separators>hr{display:none}.menu-box .sub,.menu-box [role*=button],.menu-box [role=box],.menu-box li{padding:10px;list-style:none;position:relative;line-height:1.4;clear:both;min-height:40px;display:block}.menu-box [role=box]{cursor:default}.menu-box [role*=button]{padding-left:35px;border-left:2px solid transparent;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-align:start}.menu-box--multiline [role*=button]{white-space:normal}.menu-box--noicons li:not([role=button]){padding-left:0}.menu-box--noicons [role=button]{padding-left:10px;color:inherit}.menu-box [role=button]:hover{border-left-color:#a66bbe}.menu-box .disabled[role=button]{cursor:not-allowed;background:0 0;border-color:transparent!important;opacity:.5}.menu-box li.menu-box-sub{padding-right:34px}.menu-box .menu-box-sub>.sub,.menu-box .menu-box-sub>ul{display:none}.menu-box .menu-box-sub:hover>.sub,.menu-box .menu-box-sub:hover>ul{display:block}.menu-box [role*=button]>.icon,.menu-box li>.icon{font-size:16px;width:16px;height:16px;text-align:center;position:absolute;left:8px;top:50%;margin-top:-8px}.menu-box .menu-box-sub>.icon{left:auto;right:10px}.menu-box .menu-box-sub .sub,.menu-box .menu-box-sub ul{cursor:default;position:absolute;top:0;left:100%}.menu-box .meta{font-size:.93em;display:block}.menu-box .empty{font-size:1em;text-align:center;padding:40px 20px}.menu-box .empty>.icon{font-size:64px;margin-bottom:10px;display:block;color:#ebebeb;position:static}.arrow-navigator a{color:var(--bodyBackground);display:block;text-decoration:none;text-align:center;height:40px;width:40px;position:absolute;top:50%;margin-top:-20px;opacity:.7;padding:10px}.arrow-navigator a.disabled{display:none}.arrow-navigator a:hover{opacity:1}.arrow-navigator a span{display:inline-block;font-size:20px;width:1em;height:1em;text-align:center}.growl{color:var(--alertText);font-size:1.1em;line-height:1.2;background:var(--alertBackground);padding:1em;padding-right:2em;text-align:center;overflow:visible;position:fixed;width:500px;left:50%;top:45px;z-index:9999;cursor:default;border-left:5px solid var(--alertAccent);box-shadow:0 0 15px 5px rgba(0,0,0,.15);border-radius:4px;margin-left:-250px}.growl:empty{display:none}.phone .growl{left:10px;right:10px;width:auto;margin-left:auto}.growl.static{margin-left:auto;position:static;padding-left:10px;padding-right:10px;box-shadow:none;z-index:initial;margin:auto;width:auto}.growl.static.inline{margin:initial;text-align:left;display:inline-block;padding-right:1em;padding-left:1em}.growl .icon{font-size:14px;text-align:center;position:absolute;right:5px;top:7px;cursor:pointer;padding:10px;color:var(--alertText)}.growl-debug-message{text-align:left}.growl-debug-trace{overflow-x:auto;font-size:80%;margin-top:10px}.growl-debug-status{font-style:italic;margin-top:10px;margin-bottom:10px}.flex-center{margin:auto}.width-full{width:100%}.height-full{height:100%}.width-min-full{min-width:100%}.height-min-full{min-height:100%}.fullscreen{position:fixed;top:0;left:0;width:100%;height:100%;overflow:auto;z-index:1000;opacity:0;transition:opacity 350ms linear}.fullscreen.black,.fullscreen.white{-webkit-backdrop-filter:blur(35px) saturate(1.8);backdrop-filter:blur(35px) saturate(1.8)}.black-bkg,.fullscreen.black{background:var(--backgroundDarkAlpha)}.fullscreen.white,.white-bkg{background:var(--backgroundLightAlpha)}.fullscreen.soft-white,.soft-white-bkg{background:rgba(255,255,255,.6)}.ie9 .fullscreen{-webkit-filter:none;filter:none}.fullscreen-loader{width:150px;height:150px;text-align:center;border-radius:10px;color:#fff;margin-top:-75px;margin-left:-75px;position:absolute;top:50%;left:50%;zoom:1}.loading-txt{position:absolute;bottom:15px;left:0;text-align:center;width:100%}#fullscreen-modal{display:none}#fullscreen-modal.--show{display:grid;align-items:center}.ie9 #fullscreen-modal{-webkit-filter:none;filter:none}#fullscreen-modal-box{width:650px;margin:0 auto;padding:20px;position:relative;box-shadow:0 0 50px 6px rgba(0,0,0,.25);border-radius:10px;background:var(--modalBackground);color:var(--modalText)}.--has-scrollbar #fullscreen-modal-box{border-radius:0}.phone #fullscreen-modal-box{width:100%;margin:0;max-height:100%;-webkit-overflow-scrolling:touch;border-radius:0;padding:20px}#fullscreen-modal-box .modal-box-title,#fullscreen-modal-box h1{display:block;margin-top:0;margin-bottom:20px;font-size:20px;line-height:1.2;padding-right:32px}#fullscreen-modal-box h2{font-size:1.14em}#fullscreen-modal-box h2 *{font-weight:400}#fullscreen-modal-box .or-separator{margin-top:16px}#fullscreen-modal-box p{font-size:1em;line-height:160%;margin-top:10px;margin-bottom:10px}#fullscreen-modal-box p:firt-child{margin-top:0}#fullscreen-modal-box .btn-container{margin-bottom:0}#fullscreen-modal-box .close-modal.icon--close{position:absolute;right:10px;top:15px;cursor:pointer;display:block;padding:10px}.phone #fullscreen-modal-box .close-modal.icon--close,.phone #fullscreen-modal-box .close-modal.icon--close:hover{right:10px}.modal-form textarea{height:70px;resize:none}.fancy-box{padding:20px;background:var(--bodyBackground);box-shadow:0 0 50px 6px rgb(0 0 0 / 25%);border-radius:10px}.fancy-box p{-webkit-margin-before:1em;margin-block-start:1em;-webkit-margin-after:1em;margin-block-end:1em}.fancy-box .or-separator{height:1px;margin:0}#fullscreen-changes-confirm{background:var(--bodyBackground);padding:40px 0;margin-top:75px;position:absolute;text-align:center;top:50%;width:100%;box-shadow:0 4px 16px rgba(0,0,0,.25)}.tone-dark #fullscreen-changes-confirm{background:#1e1e1e}#fullscreen-changes-confirm h2{font-size:18px;line-height:18px;color:inherit}.fullscreen-viewer{background:#000;background:rgba(0,0,0,.9);color:#bbb;display:none}.fullscreen-viewer-top{height:50px;width:100%;background:#000}.fullscreen-viewer-navigation,.fullscreen-viewer-top-user{margin-top:8px}.fullscreen-viewer-top-user img{width:34px;height:34px;margin-right:10px}.fullscreen-viewer-navigation{font-size:16px;font-size:1.143rem;height:26px;position:relative;z-index:100}.fullscreen-viewer-navigation a{display:inline-block;color:#bbb;color:rgba(255,255,255,.7);text-decoration:none;padding:8px}.fullscreen-viewer-navigation a:hover{color:#fff}.fullscreen-viewer-navigation a.disabled{color:#bbb;color:rgba(255,255,255,.4);cursor:default}.fullscreen-viewer-content{text-align:center;height:100%;position:relative;display:none}.fullscreen-viewer-content img{max-width:100%;max-height:100%;box-shadow:0 0 6px 0 #000}#cookie-law-banner{position:fixed;padding:10px;width:100%;bottom:0;background:rgba(0,0,0,.8);color:#fff;font-size:1.2em;z-index:1000}#cookie-law-banner p{padding-right:20px}a.cookie-law-close{color:inherit;text-decoration:none;position:absolute;right:0;top:3px;font-size:.72em;opacity:.5}a.cookie-law-close:hover{opacity:1}.badge--paid{text-transform:uppercase;text-align:center;border-radius:3px;padding:2px 5px;display:inline-block;line-height:1;border:1px solid var(--buttonDefaultBorder);color:var(--buttonDefaultHoverText);background-color:var(--buttonDefaultHoverBackground);border-color:var(--buttonDefaultHoverBorder);font-weight:400}.pop-box-menu li .badge{position:absolute;right:8px;top:8px}.badge{vertical-align:text-bottom;font-size:.7143em;transform-origin:right;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.badge+label,.btn .badge{margin-left:5px}.pop-box-menu li.paid a{padding-right:52px}.pop-box-menu li:hover .badge{color:var(--menuItemHoverBackground);background-color:var(--menuItemHoverText);border-color:transparent}.r1{height:30px}.r2{height:70px}.r3{height:110px}.r4{height:150px}.r5{height:190px}.r6{height:230px}.r7{height:270px}.r8{height:310px}.r9{height:350px}.r10{height:390px}.r11{height:430px}.r12{height:470px}.r13{height:510px}.r14{height:550px}.r15{height:590px}.r16{height:630px}.r17{height:670px}.r18{height:710px}.r19{height:750px}.r20{height:790px}.r11{height:830px}.r22{height:870px}.r23{height:910px}.r24{height:950px}.columns-container{overflow:auto}.grid-columns{display:block;float:left}.gutter-margin-right,.gutter-margin-right-bottom{margin-right:1px}.gutter-margin-bottom,.gutter-margin-left-bottom,.gutter-margin-right-bottom{margin-bottom:1px}.gutter-margin-left,.gutter-margin-left-bottom{margin-left:1px}.gutter-width{width:5px}.col-1-min{min-width:30px}.col-2-min{min-width:70px}.col-3-min{min-width:110px}.col-4-min{min-width:150px}.col-5-min{min-width:190px}.col-6-min{min-width:230px}.col-7-min{min-width:270px}.col-8-min{min-width:310px}.col-9-min{min-width:350px}.col-10-min{min-width:390px}.col-11-min{min-width:430px}.col-12-min{min-width:470px}.col-13-min{min-width:510px}.col-14-min{min-width:550px}.col-15-min{min-width:590px}.col-16-min{min-width:630px}.col-17-min{min-width:670px}.col-18-min{min-width:710px}.col-19-min{min-width:750px}.col-20-min{min-width:790px}.col-21-min{min-width:830px}.col-22-min{min-width:870px}.col-23-min{min-width:910px}.col-24-min{min-width:950px}.col-1-max{max-width:30px}.col-2-max{max-width:70px}.col-3-max{max-width:110px}.col-4-max{max-width:150px}.col-5-max{max-width:190px}.col-6-max{max-width:230px}.col-7-max{max-width:270px}.col-8-max{max-width:310px}.col-9-max{max-width:350px}.col-10-max{max-width:390px}.col-11-max{max-width:430px}.col-12-max{max-width:470px}.col-13-max{max-width:510px}.col-14-max{max-width:550px}.col-15-max{max-width:590px}.col-16-max{max-width:630px}.col-17-max{max-width:670px}.col-18-max{max-width:710px}.col-19-max{max-width:750px}.col-20-max{max-width:790px}.col-21-max{max-width:830px}.col-22-max{max-width:870px}.col-23-max{max-width:910px}.col-24-max{max-width:950px}@media (min-width:768px){.c1{width:30px}.c2{width:70px}.c3{width:110px}.c4{width:150px}.c5{width:190px}.c6{width:230px}.c7{width:270px}.c8{width:310px}.c9{width:350px}.c10{width:390px}.c11{width:430px}.c12{width:470px}.c13{width:510px}.c14{width:550px}.c15{width:590px}.c16{width:630px}.c17{width:670px}.c18{width:710px}.fluid-column.c1{width:3.157%}.fluid-column.c2{width:7.368%}.fluid-column.c3{width:11.578%}.fluid-column.c4{width:15.789%}.fluid-column.c5{width:20%}.fluid-column.c6{width:24.21%}.fluid-column.c7{width:28.421%}.fluid-column.c8{width:32.631%}.fluid-column.c9{width:36.842%}.fluid-column.c10{width:41.052%}.fluid-column.c11{width:45.263%}.fluid-column.c12{width:49.473%}.fluid-column.c13{width:53.684%}.fluid-column.c14{width:57.894%}.fluid-column.c15{width:62.105%}.fluid-column.c16{width:66.315%}.fluid-column.c17{width:70.526%}.fluid-column.c18{width:74.736%}}@media (min-width:992px){.content-width{width:100%;min-width:970px}.c19{width:750px}.c20{width:790px}.c21{width:830px}.c22{width:870px}.c23{width:910px}.c24{width:950px}.fluid-column.c19{width:78.947%}.fluid-column.c20{width:83.157%}.fluid-column.c21{width:87.368%}.fluid-column.c22{width:91.578%}.fluid-column.c23{width:95.789%}.fluid-column.c24{width:100%}.top-btn-text .btn-text{margin-left:7px}.pop-box .arrow-down{border-width:6px 6px 0 6px}}@media (min-width:992px) and (max-width:1920px){.content-width{max-width:1800px}}@media (min-width:1921px) and (max-width:2560px){.content-width{max-width:2440px}}@media (min-width:3840px){.content-width{max-width:3720px}}.color-body-text-subtle{color:var(--bodyTextSubtle)}.color-accent{color:var(--colorAccent)}.color-success{color:var(--colorSuccess)}.color-fail{color:var(--colorFail)}.color-white{color:#fff!important}.color-black{color:#333!important}.color-grey{color:#ccc!important}.color-green{color:#27ae61!important}.color-red{color:#e74c3c!important}.color-blue{color:var(--colorBlue)!important}.color-orange{color:#d35400!important}.color-purple{color:#8e44ad!important}.color-inherit{color:inherit!important}.color-initial{color:initial!important}.height-auto{height:auto}.width-auto{width:auto}.height-100p{height:100%}.width-100p{width:100%}.color-facebook{color:#3b5998}.color-twitter{color:#1da1f2}.color-google{color:#ea4335}.color-vk{color:#45668e}.border-color-facebook{border-color:#3b5998}.border-color-twitter{border-color:#1da1f2}.border-color-google{border-color:#ea4335}.border-color-vk{border-color:#45668e}.opacity-10{opacity:.1}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-100{opacity:1}.background-black{background:#000!important}.background-white{background:#fff!important}.background-transparent{background:0 0!important}.background-gradient-white-left{background:linear-gradient(to right,rgba(255,255,255,0) 0,rgba(255,255,255,1) 35%,rgba(255,255,255,1) 100%)}.background-gradient-white-right{background:linear-gradient(to right,rgba(255,255,255,1) 0,rgba(255,255,255,1) 80%,rgba(255,255,255,0) 100%)}.font-weight-bold{font-weight:700!important}.font-weight-normal{font-weight:400!important}.cursor-pointer{cursor:pointer!important}.cursor-default{cursor:default!important}.cursor-zoom-in{cursor:zoom-in}.cursor-zoom-out{cursor:zoom-out}.font-size-small{font-size:small!important}.font-size-medium{font-size:medium!important}.font-size-large{font-size:large!important}.font-size-inherit{font-size:inherit!important}.font-size-10{font-size:10px!important}.font-size-11{font-size:11px!important}.font-size-12{font-size:12px!important}.font-size-13{font-size:13px!important}.font-size-14{font-size:14px!important}.font-size-15{font-size:15px!important}.font-size-16{font-size:16px!important}.font-size-17{font-size:17px!important}.font-size-18{font-size:18px!important}.height-100p{height:100%!important}.height-120p{height:120%!important}.top-0{top:0}.top-10{top:10px}.top-20{top:20px}.top-30{top:30px}.top-40{top:40px}.right-0{right:0}.right-10{right:10px}.right-20{right:20px}.right-30{right:30px}.right-40{right:40px}.bottom-0{bottom:0}.bottom-10{bottom:10px}.bottom-20{bottom:20px}.bottom-30{bottom:30px}.bottom-40{bottom:40px}.left-0{left:0}.left-10{left:10px}.left-20{left:20px}.left-30{left:30px}.left-40{left:40px}.display-none{display:none}.display-none-forced{display:none!important}.display-block{display:block}.display-block-forced{display:block!important}.display-flex{display:-moz-flex;display:flex}.visibility-hidden{visibility:hidden}.clear-both{clear:both}.float-left{float:left}.float-right{float:right}.border-0,.no-border{border:none}.border-top-0{border-top:0}.border-right-0{border-right:0}.border-bottom-0{border-bottom:0}.border-left-0{border-left:0}.box-shadow-none{box-shadow:none}.word-break-break-all{word-break:break-all}.word-break-break-word{word-break:break-word}.margin-0{margin:0!important}.margin-5{margin:5px!important}.margin-10{margin:10px!important}.margin-20{margin:20px!important}.margin-30{margin:20px!important}.margin-40{margin:20px!important}.margin-top-0,.phablet .phablet-margin-top-0,.phone .phone-margin-top-0{margin-top:0!important}.margin-top-5,.phablet .phablet-margin-top-5,.phone .phone-margin-top-5{margin-top:5px!important}.margin-top-10,.phablet .phablet-margin-top-10,.phone .phone-margin-top-10{margin-top:10px!important}.margin-top-20,.phablet .phablet-margin-top-20,.phone .phone-margin-top-20{margin-top:20px!important}.margin-top-30{margin-top:30px!important}.margin-top-40{margin-top:40px!important}.margin-right-auto{margin-right:auto!important}.margin-right-0,.phablet .phablet-margin-right-0,.phone .phone-margin-right-0{margin-right:0!important}.margin-right-035em{margin-right:.35em!important}.margin-right-5{margin-right:5px!important}.margin-right-10{margin-right:10px!important}.margin-right-20{margin-right:20px!important}.margin-right-30{margin-right:30px!important}.margin-right-40{margin-right:40px!important}.margin-bottom-0,.phablet .phablet-margin-bottom-0,.phone .phone-margin-bottom-0{margin-bottom:0!important}.margin-bottom-5{margin-bottom:5px!important}.margin-bottom-10,.phablet .phablet-margin-bottom-10,.phone .phone-margin-bottom-10{margin-bottom:10px!important}.margin-bottom-20,.phablet .phablet-margin-bottom-20,.phone .phone-margin-bottom-20{margin-bottom:20px!important}.margin-bottom-30{margin-bottom:30px!important}.margin-bottom-40{margin-bottom:40px!important}.margin-left-auto{margin-left:auto!important}.margin-left-0,.phablet .phablet-margin-left-0,.phone .phone-margin-left-0{margin-left:0!important}.margin-right--10{margin-right:-10px!important}.margin-left--10{margin-left:-10px!important}.margin-left-5{margin-left:5px!important}.margin-left-10{margin-left:10px!important}.margin-left-20{margin-left:20px!important}.margin-left-30{margin-left:30px!important}.margin-left-40{margin-left:40px!important}.padding-5{padding:5px!important}.padding-10{padding:10px!important}.padding-20{padding:20px!important}.padding-30{padding:20px!important}.padding-40{padding:20px!important}.padding-top-5{padding-top:5px!important}.padding-top-0{padding-top:0!important}.padding-top-10{padding-top:10px!important}.padding-top-20{padding-top:20px!important}.padding-top-30{padding-top:30px!important}.padding-top-40{padding-top:40px!important}.padding-right-5{padding-right:5px!important}.padding-right-0{padding-right:0!important}.padding-right-10{padding-right:10px!important}.padding-right-20{padding-right:20px!important}.padding-right-30{padding-right:30px!important}.padding-right-40{padding-right:40px!important}.padding-bottom-5{padding-bottom:5px!important}.padding-bottom-0{padding-bottom:0!important}.padding-bottom-10{padding-bottom:10px!important}.padding-bottom-20{padding-bottom:20px!important}.padding-bottom-30{padding-bottom:30px!important}.padding-bottom-40{padding-bottom:40px!important}.padding-left-5{padding-left:5px!important}.padding-left-0{padding-left:0!important}.padding-left-10{padding-left:10px!important}.padding-left-20{padding-left:20px!important}.padding-left-30{padding-left:30px!important}.padding-left-40{padding-left:40px!important}.position-sticky{position:-webkit-sticky;position:sticky}.position-static{position:static}.position-relative{position:relative}.position-absolute{position:absolute}.position-fixed{position:fixed}.text-align-left{text-align:left}.text-align-center{text-align:center}.text-align-right{text-align:right}.text-align-justify{text-align:justify}.text-decoration-none{text-decoration:none!important}.display-block{display:block}.display-inline{display:inline}.display-inline-table{display:inline-table}.display-inline-block{display:inline-block}.display-table-cell{display:table-cell}.word-break-break-all{word-break:break-all}.list-style-position-inside li{list-style-position:inside!important}.list-style-position-outside li{list-style-position:outside!important}.list-style-type-disc li{list-style-type:disc!important}.list-style-type-decimal li{list-style-type:decimal!important}.center-box{margin-right:auto!important;margin-left:auto!important}.display-inline-block,.display-table-cell{zoom:1}.vertical-align-middle{vertical-align:middle!important}.resize-vertical{resize:vertical!important}.no-resize,.resize-none{resize:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-y-auto{overflow-y:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-y-visible{overflow-y:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-scroll{overflow-y:scroll!important}.text-transform-capitalize{text-transform:capitalize}.text-transform-uppercase{text-transform:uppercase}.default-margin-top{margin-top:20px}.default-margin-bottom{margin-bottom:20px}.float-none{float:none!important;clear:both!important}.desktop .desktop-hide,.laptop .laptop-hide,.largescreen .desktop-hide,.phablet .phablet-hide,.phone .phone-hide,.tablet .tablet-hide{display:none!important}.desktop .desktop-display-block,.desktop .desktop-show,.laptop .laptop-display-block,.laptop .laptop-show,.largescreen .desktop-display-block,.largescreen .desktop-show,.phablet .phablet-display-block,.phablet .phablet-show,.phone .phone-display-block,.phone .phone-show,.tablet .tablet-display-block,.tablet .tablet-show{display:block!important}.desktop .desktop-display-inline,.laptop .laptop-display-inline,.phablet .phablet-display-inline,.phone .phone-display-inline,.tablet .tablet-display-inline{display:inline!important}.desktop .desktop-display-inline-block,.laptop .laptop-display-inline-block,.phablet .phablet-display-inline-block,.phone .phone-display-inline-block,.tablet .tablet-display-inline-block{display:inline-block!important}.image-responsive{max-width:100%!important;width:auto!important}.desktop .desktop-float-none,.laptop .laptop-float-none,.phablet .phablet-float-none,.phone .phone-float-none,.tablet .tablet-float-none{float:none;clear:both}.phablet .grid-columns,.phone .grid-columns{float:none;margin-left:0;margin-right:0}.phablet .phablet-float-left,.phone .phone-float-left{float:left!important}.phablet .phablet-c1,.phone .fluid-column.phablet-c1,.phone .fluid-column.phone-c1,.phone .phone-c1{width:100%}.phablet .phablet-text-align-left,.phone .phone-text-align-left{text-align:left!important}.phablet .phablet-text-align-center,.phone .phone-text-align-center{text-align:center!important}#tiptip_holder{display:none;position:absolute;top:0;left:0;z-index:99999}#tiptip_holder.tip_top{padding-bottom:5px}#tiptip_holder.tip_bottom{padding-top:5px}#tiptip_holder.tip_right{padding-left:5px}#tiptip_holder.tip_left{padding-right:5px}#tiptip_content{font-size:12px;color:#fff;padding:6px 8px;background-color:#333;background-color:rgba(0,0,0,.8);word-break:break-word}#tiptip_arrow,#tiptip_arrow_inner{position:absolute;border-color:transparent;border-style:solid;border-width:6px;height:0;width:0}#tiptip_holder.tip_top #tiptip_arrow_inner{margin-top:-6px;margin-left:-7px;border-top-color:#333;border-top-color:rgba(0,0,0,.8)}.tone-dark #tiptip_holder.tip_top #tiptip_arrow_inner{border-top-color:#fff;border-top-color:rgba(255,255,255,.95)}#tiptip_holder.tip_bottom #tiptip_arrow_inner{margin-top:-6px;margin-left:-7px;border-bottom-color:#333;border-bottom-color:rgba(0,0,0,.8)}.tone-dark #tiptip_holder.tip_bottom #tiptip_arrow_inner{border-bottom-color:#fff;border-bottom-color:rgba(255,255,255,.95)}#tiptip_holder.tip_right #tiptip_arrow_inner{margin-top:-6px;margin-left:-6px;border-right-color:#333;border-right-color:rgba(0,0,0,.8)}.tone-dark #tiptip_holder.tip_right #tiptip_arrow_inner{border-right-color:#fff;border-right-color:rgba(255,255,255,.95)}#tiptip_holder.tip_left #tiptip_arrow_inner{margin-top:-6px;margin-left:-6px;border-left-color:#333;border-left-color:rgba(0,0,0,.8)}.tone-dark #tiptip_holder.tip_left #tiptip_arrow_inner{border-left-color:#fff;border-left-color:rgba(255,255,255,.95)}.antiscroll-wrap{display:block;position:relative;overflow:hidden}.antiscroll-scrollbar{background:gray;background:rgba(0,0,0,.5);border-radius:7px;box-shadow:0 0 1px #fff;position:absolute;opacity:0;-webkit-transition:linear 350ms opacity;-moz-transition:linear 350ms opacity;-o-transition:linear 350ms opacity}.antiscroll-scrollbar-shown{opacity:1}.antiscroll-scrollbar-horizontal{height:7px;margin-left:2px;bottom:2px;left:0}.antiscroll-scrollbar-vertical{width:7px;margin-top:2px;right:2px;top:0}.antiscroll-inner{overflow:scroll}.antiscroll-inner::-webkit-scrollbar{width:0;height:0}.antiscroll-inner::scrollbar{width:0;height:0}#recaptcha_table.recaptcha_theme_clean #recaptcha_image{border:0!important}#recaptcha_response_field{height:auto}.copy-hover-display button.copy-input,.copy-hover-display button.input-action{visibility:hidden}.copy-hover-display:hover button.copy-input,.copy-hover-display:hover button.input-action,.phablet button.copy-input,.phablet button.input-action,.phone button.copy-input,.phone button.input-action{visibility:visible}button.copy-input,button.input-action{position:absolute;right:7px;top:.8181em;text-transform:uppercase;cursor:pointer;line-height:1;font-size:11px;padding:4px 6px;border-radius:4px;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}button.copy-input,button.input-action{background:var(--buttonDefaultBackground);color:var(--buttonDefaultText)}button:hover.copy-input,button:hover.input-action{background:var(--buttonDefaultHoverBackground);color:var(--buttonDefaultHoverText)}.shake{-webkit-animation:shake .82s cubic-bezier(.36,.07,.19,.97) both;animation:shake .82s cubic-bezier(.36,.07,.19,.97) both}@-webkit-keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}.key-feedback{line-height:1;background:rgba(0,0,0,.7);position:fixed;z-index:10000;-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);bottom:1.5em;transition:all .5s;opacity:0;text-align:center;color:#fff;font-weight:700;font-size:45px;padding:1em;border-radius:.5em;left:50%;transform:translateX(-50%);border:4px solid rgba(255,255,255,.9);box-shadow:0 0 50px 6px rgb(0 0 0 / 25%);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}img.qr{display:inline-block}.fa-vkontakte:before{content:"\f189"}.fab.fa-mailru{font-family:"Font Awesome 5 Free";font-weight:900}.fa-mailru:before{content:"\f1fa"}.fa-stackexchange:before{content:"\f18d"}.fa-twitchtv:before{content:"\f1e8"}.fa-wechat:before{content:"\f1d7"} \ No newline at end of file +:root{--colorBlue:#3498db;--colorBlueHover:#2980b9;--colorGreen:#2ecc71;--colorGreenHover:#27ae60;--colorOrange:#e67e22;--colorOrangeHover:#d35400;--colorPurple:#9b59b6;--colorPurpleHover:#8e44ad;--colorRed:#e74c3c;--colorRedHover:#c0392b;--colorYellow:#f1c40f;--colorYellowHover:#f39c12}:root{--colorSuccess:var(--colorGreen);--colorFail:var(--colorRed);--alertAccent:#f1c40f;--alertBackground:#fff5b3;--alertText:#161c1d;--backgroundDarkAlpha:rgb(0 0 0 / 80%);--backgroundLightAlpha:rgb(255 255 255 / 90%);--bodyBackground:#FFF;--bodyEmpty:#e2e8e9;--bodySeparator:#e2e8e9;--bodyText:#161c1d;--bodyTextDisabled:#c5d1d3;--bodyTextSubtle:#6c7779;--buttonAccentBackground:var(--colorAccent);--buttonAccentHoverBackground:var(--colorAccentStrong);--buttonAccentHoverText:var(--buttonAccentText);--buttonAccentText:#FFF;--buttonDefaultBackground:#d9e1e2;--buttonDefaultBorder:var(--buttonDefaultBackground);--buttonDefaultHoverBackground:#c0def2;--buttonDefaultHoverBorder:var(--buttonDefaultHoverBackground);--buttonDefaultHoverText:var(--colorAccentStrong);--buttonDefaultText:#161c1d;--colorAccent:var(--colorBlue);--colorAccentStrong:var(--colorBlueHover);--inputBackground:#ecf0f1;--inputPlaceholderText:#8aa2a8;--inputText:#161c1d;--linkText:var(--colorAccent);--menuBackground:rgb(236 240 241 / 80%);--menuItemHoverBackground:var(--colorAccent);--menuItemHoverText:#FFF;--menuItemText:#161c1d;--menuSeparator:rgb(11 14 15 / 10%);--menuText:#161c1d;--modalBackground:var(--bodyBackground);--modalText:#161c1d;--topBarBackground:rgb(255 255 255);--topBarText:#161c1d;--viewerBackground:#323232;--listItemText:#FFF}*{-ms-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;border:0;list-style:none}@media screen and (-webkit-min-device-pixel-ratio:0){.phone input:focus,.phone select:focus,.phone textarea:focus{font-size:16px!important}}.btn,.btn-container,.input-search,.link,.list-item,.no-select,.pop-btn-text,.top-btn-text,.user-select-none{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.animate{transition:all .2s ease-in-out}.animate--slow{transition-duration:.4s}[type=search]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}::-webkit-input-placeholder{color:var(--inputPlaceholderText);line-height:140%}:-moz-placeholder{color:var(--inputPlaceholderText);opacity:1}::-moz-placeholder{color:var(--inputPlaceholderText);opacity:1}:-ms-input-placeholder{color:var(--inputPlaceholderText)}:focus::-webkit-input-placeholder{color:var(--inputPlaceholderText)}:focus:-moz-placeholder{color:var(--inputPlaceholderText)}:focus::-moz-placeholder{color:var(--inputPlaceholderText)}focus:-ms-input-placeholder{color:var(--inputPlaceholderText)}::-moz-focus-inner{border:0;padding:0;margin:0}::-ms-clear{display:none}body{min-height:100vh;min-height:-webkit-fill-available;-webkit-font-smoothing:subpixel-antialiased}[type=submit]:focus,button:focus{outline:0}html{height:100%;height:-webkit-fill-available}body,html{min-height:100vh;font-family:Helvetica,Arial,sans-serif;color:var(--bodyText);font-size:16px;background:var(--bodyBackground);-webkit-text-size-adjust:100%}kbd{font-family:inherit}.pointer-events-none{pointer-events:none}#menu-fullscreen,#pop-box-mask.fullscreen{height:100%}#menu-fullscreen,.pop-box{transition:transform 350ms cubic-bezier(.4,0,0,1),opacity 350ms cubic-bezier(.4,0,0,1)}#menu-fullscreen>ul{position:relative;z-index:1000;background:var(--topBarBackground);color:var(--topBarText)}body.no-margin-top{margin-top:0;padding-top:0}.content-width{width:100%;margin-inline-end:auto;margin-inline-start:auto;position:relative;padding-inline-start:10px;padding-inline-end:10px}.phone .top-bar .content-width{padding-inline-start:0;padding-inline-end:0}a{color:var(--linkText);text-decoration:none;cursor:pointer;outline:0}a[rel=external]::after{font-weight:900;font-family:"Font Awesome 5 Free";-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;margin-inline-start:.25em;content:"\f35d";font-size:90%}a[role=button]:hover{text-decoration:none}a:focus,a:hover{text-decoration:underline}h1,h2,h3,h4,h5,h6{font-weight:400;line-height:1}.ui-selectable-helper{background:var(--colorAccent);border:2px dashed var(--topBarBackground);position:absolute;z-index:500;opacity:.6}.image-container{transition:transform 180ms cubic-bezier(.25,1,.5,1)}.selected .image-container,.ui-selecting.selected .image-container{transform:scale(.5)}.selected .list-item-play-gif,.ui-selecting.selected .list-item-play-gif{transform:scale(.75)}.selected .image-container img,.selected .image-container svg,.ui-selecting.selected .image-container img,.ui-selecting.selected .image-container svg{border-radius:.5em;-webkit-transform:translateZ(0)}.hidden{display:none!important}.visible{display:block!important}.fab.soft-hidden,.far.soft-hidden,.fas.soft-hidden,.soft-hidden{display:none}.soft-visible{display:block}.hidden-visibility{visibility:hidden;position:absolute;top:0}.touch-scroll{overflow:auto;-webkit-overflow-scrolling:touch}.or-separator{border-top:1px solid var(--bodySeparator);text-align:center;margin:10px 0 10px 0}.tone-dark .or-separator{border-color:rgba(255,255,255,.1)}.or-separator span{font-size:.93em;font-weight:400;color:var(--bodySeparator);text-transform:uppercase;text-align:center;background:var(--bodyBackground);display:inline-block;position:relative;padding:0 10px;top:-10px}.highlight{color:var(--alertText);background:var(--alertBackground)}.highlight:empty{display:none}.line-through{text-decoration:line-through}.line-separator{width:100%;height:1px;background:var(--bodySeparator);display:block;margin:20px 0}.number-figures,a.number-figures{font-size:1.21em;line-height:1.21em;color:inherit;text-decoration:none;padding-inline-start:10px;padding-inline-end:10px;margin-inline-start:0;border-inline-start:1px solid var(--bodySeparator);text-align:center}.tone-dark .number-figures,.tone-dark a.number-figures{border-color:#212121}.number-figures:first-child{padding-inline-start:0;border-inline-start:none}.number-figures:last-child{padding-inline-end:0}.number-figures b{font-weight:inherit}.number-figures .icon-heart4{position:relative;top:1px}.number-figures span:not(.icon){color:var(--bodyTextSubtle);text-transform:uppercase;font-size:.6em}a.number-figures:hover,a.number-figures:hover *{color:var(--linkText)}.loading-indicator,.loading-text{display:inline-block;line-height:inherit;vertical-align:top}.loading-text{margin-inline-start:5px}.btn-alt{color:var(--bodyTextSubtle);font-size:13px;font-size:.93rem;margin:0 5px;display:inline!important}.btn-alt a:first-letter{text-transform:capitalize}.phone .btn-alt{margin:5px 0 0}.btn-alt a{margin-inline-start:5px;cursor:pointer}a.link{font-size:13px;font-size:.93rem;text-decoration:none;font-weight:400}.pop-box-menu a.link--delete,.tone-dark .pop-box-menu a.link--delete,[data-action=delete],a.link--delete{color:#e74c3c}.tone-dark html:not(.phone) .pop-box-menu a.link--delete:hover,html:not(.phone) .pop-box-menu a.link--delete:hover{background-color:#e74c3c}a.link--approve{color:#2ecc71}a.link span.icon,a.link:hover span.icon{text-decoration:none}a.link:hover span{text-decoration:underline}.disabled,.disabled a{color:var(--bodyTextDisabled)}.tone-dark .disabled,.tone-dark .disabled a{color:#444}.disabled a{text-decoration:none;cursor:default}.optional{font-size:50%;color:var(--bodyTextSubtle);font-weight:400}.text-shadow{text-shadow:2px 2px 3px rgba(0,0,0,.75);-webkit-filter:dropshadow(color=#000000, offx=2, offy=2);filter:dropshadow(color=#000000, offx=2, offy=2)}.box-shadow{box-shadow:2px 2px 3px 0 rgba(0,0,0,.45)}.silent-links a,a.silent-links{color:inherit}.close-box .icon-circle{color:var(--bodyText);position:relative}.close-box .icon-close-box{color:#fff;position:absolute;inset-inline-start:0;top:0}.transparent-canvas{background-image:url(data:image/gif;base64,R0lGODlhEAAQAIAAAP///9/f3yH5BAAHAP8ALAAAAAAQABAAAAIfjG+gq4jM3IFLJgpswNly/XkcBpIiVaInlLJr9FZWAQA7);background-repeat:repeat}.transparent-canvas.dark{background-image:url(data:image/gif;base64,R0lGODlhEAAQAIAAAOfn58rKyiH5BAAHAP8ALAAAAAAQABAAAAIfjG+gq4jM3IFLJgpswNly/XkcBpIiVaInlLJr9FZWAQA7)}input,select,textarea{font-family:inherit;font-size:inherit;-ms-appearance:none;border-radius:3px;display:inline-block;border:1px solid transparent;background:var(--inputBackground);color:var(--inputText)}input:-webkit-autofill,select:-webkit-autofill,textarea:-webkit-autofill{-webkit-text-fill-color:var(--inputText)!important}.input-focus,input.search:focus,input:focus,select:focus,textarea:focus{border-color:var(--colorAccent)}input:-webkit-autofill,input:-webkit-autofill:focus,input:-webkit-autofill:hover,select:-webkit-autofill,select:-webkit-autofill:focus,select:-webkit-autofill:hover{-webkit-text-fill-color:inherit;-webkit-box-shadow:inset 0 0 0 9999px transparent;-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s}select{font:inherit;outline:0}.text-input,textarea{outline:0}input[type=checkbox],input[type=radio]{border-radius:0;border:none;position:relative;vertical-align:baseline}.input-line-height,.text-input,input[type=text]{height:36px}.input-line-height{line-height:36px}.text-input,input[type=text]:not(.text-input),textarea{padding:7px 10px;width:100%}.ie7 .text-input,.ie7 input[type=text],.ie7 textarea{padding:10px;width:328px;height:14px}.ie8 .text-input,.ie8 input[type=text],.ie8 textarea,.ie9 .text-input,.ie9 input[type=text],.ie9 textarea{height:auto}.tone-dark .input-focus,.tone-dark input.search:focus,.tone-dark input:focus,.tone-dark select:focus,.tone-dark textarea:focus{border-color:var(--colorAccent);box-shadow:0 0 8px 0 rgba(0,167,218,.75)}.input,.input-label{position:relative;overflow:visible;scroll-snap-align:start}.input{margin:10px 0;font-size:1em}.input.first-child,.input:first-child{margin-top:0}.input-label{margin:20px 0}.input-label.first-child,.input:first-child{margin-top:0}.input-label h3,.input-label label,.input-label-label{font-weight:600;padding-bottom:5px;display:inline-block;font-size:1em}.input-label h3{display:block}.input-label h3 a,.input-label label a{font-weight:400}.input-label label .caption,.input-label label .optional{font-weight:400;font-size:.92em}.input-label .btn-alt{position:absolute;inset-inline-start:100%;top:23px;line-height:36px;margin-inline-start:10px;margin-inline-end:0}.phone .input-label .btn-alt{position:static;margin-inline-start:0}.checkbox-label,.input-label{position:relative;font-size:.93em}.input .icon-input-submit{background:0 0;font-size:1.82em;color:#d9d9d9;position:absolute;inset-inline-end:.21em;top:.21em;cursor:pointer;line-height:1}.tone-dark .input .icon-input-submit{color:#666}.input .icon-input-submit.focus,.input .icon-input-submit:focus,.input .icon-input-submit:hover{color:var(--colorAccent)}.ie7 .input .icon-input-submit{top:2px}.ui-autocomplete{max-height:130px;overflow-y:auto;overflow-x:hidden}* html .ui-autocomplete{height:125px}.autocomplete-list{position:absolute;display:none;z-index:1}.autocomplete-list .ui-autocomplete{position:absolute;top:0;inset-inline-start:0}.autocomplete-list ul{border:1px solid var(--bodyTextDisabled)}.autocomplete-list a{color:inherit;background:Window;padding:7px 10px;display:block;text-decoration:none;cursor:default}.autocomplete-list a.ui-state-focus{background:Highlight;color:HighlightText}.input-column{width:350px}.input-warning{color:var(--bodyTextSubtle);position:absolute;inset-inline-end:0;top:0}.input-below{margin-top:5px;display:block;position:static}.red-warning{color:#d74634}.input-password .input-password-strength{position:absolute;inset-inline-end:11px;top:50%;margin-top:5px}.fancy-fieldset .input-password{display:flex;align-items:center}.fancy-fieldset .input-password-strength{inset-inline-end:0;top:auto;margin-top:0}.input-password-strength{background:var(--bodyEmpty)}.tone-dark .input-password-strength{background:#1f1f1f}.input-password-strength,.input-password-strength span{display:block;width:50px;height:8px}.input-password-strength span{width:0%;background-color:transparent}.input-password-strength [data-veredict=very-weak]{background-color:#e74c3c}.input-password-strength [data-veredict=weak]{background-color:#e67e22}.input-password-strength [data-veredict=average],.input-password-strength [data-veredict=strong],.input-password-strength [data-veredict=stronger]{background-color:#2ecc71}.checkbox-label{font-size:1em;display:block;margin:5px 0;position:relative}.checkbox-label:last-child{margin-bottom:0}.checkbox-label input{position:absolute;padding:0;margin:0;margin-inline-start:-20px}.btn-alt.checkbox-label input{position:static;vertical-align:text-top;margin-inline-end:4px}.phone .btn-alt.checkbox-label{display:block!important;margin:10px 0}.checkbox-label label{padding-inline-start:20px;font-weight:400;margin:0;padding-bottom:0}.fancy-box .checkbox-label label{display:flex;align-items:flex-start}.input-search{position:relative}input.search{font-size:1em;border-radius:200px;padding:0 25px 0 32px;padding-inline-end:3.0666rem;padding-inline-start:2.3571rem;line-height:100%;height:26px;height:1.86rem;width:100%;border:1px solid transparent;top:0;inset-inline-start:0;outline:0;vertical-align:text-bottom}input.search.one-icon-padding,input.search.two-icon-padding{padding-inline-end:30px;padding-inline-end:2rem}input.search.two-icon-padding{padding-inline-start:30px;padding-inline-start:2rem}.top-bar input.search{padding-inline-start:39px;padding-inline-start:2.46rem;top:-2px;position:relative;padding-inline-end:34px;background:0 0;border:transparent;box-shadow:none!important}.top-bar input{color:var(--topBarText)}.ie7 input.search,.ie8 input.search,.ie9 input.search{padding-inline-end:10px;line-height:26px;height:26px}.ie7 input.search{padding:0;width:200px}.input-search span{position:absolute;cursor:pointer}.input-search .icon--search{inset-inline-start:12px;top:6px;color:var(--inputText)}.top-bar .input-search .icon--search{top:4px;top:.24rem}.tone-dark .top-bar .input-search .icon--search,.tone-dark .top-bar .input-search input.search{color:#fff}.input-search .icon--search,.top-btn-text .icon--search{font-size:16px;width:16px;font-size:1.143rem;width:1.143rem}.input-search .icon--close,.input-search .icon--settings{padding:4px;top:0;font-size:1em}.input-search .icon--settings{inset-inline-end:22px}.input-search .icon--close{inset-inline-end:4px;color:var(--inputText)}.ie7 .input-search .icon--close,.ie8 .input-search .icon--close,.ie9 .input-search .icon--close{display:none}select{padding-inline-start:7px!important}.ie7 select{width:100%!important;padding:0!important;height:auto!important}select option{padding:4px 10px;margin:0}textarea{resize:both;height:80px}.input-upload{position:relative}.user-settings-avatar{min-height:160px;height:auto}.user-settings-avatar-container{position:relative}.user-settings-avatar-container,.user-settings-avatar-container .user-image{font-size:160px;width:1em;height:1em}.user-settings-avatar .loading-placeholder{position:absolute;inset-inline-start:0;top:0;background:var(--bodyEmpty)}.tone-dark .user-settings-avatar .loading-placeholder{background:rgba(0,0,0,.6)}.phone .user-settings-avatar-container{margin:0 auto 10px!important}.input-upload .btn-container{margin:0 0 5px 0}.input-upload .btn-alt{margin-inline-start:0}.arrow-down{border-width:4px 4px 0 4px;border-color:#333 transparent transparent transparent;border-color:#333 transparent transparent transparent;content:""}.arrow-down{border-style:solid;display:inline-block;height:0;width:0;vertical-align:middle}.sign-services li{display:inline-block;margin:0 4px 4px 0}.sign-service{font-size:.93em;padding:0 8px;line-height:30px;height:29px}.sign-service .btn-icon{font-size:inherit;width:auto}.sign-services-compact .btn-text{display:none}.link-service,.sign-service{color:#fff;display:inline-block;text-decoration:none!important}.link-service span,.sign-service{border-radius:3px}.link-service{font-weight:400;height:28px;position:relative}.link-service span{display:block;line-height:28px;text-align:center!important}.link-service .btn-icon{width:28px;height:28px;margin-inline-end:4px;position:absolute;inset-inline-start:0;top:0}.link-service span.sign-text{padding:0 20px;margin-inline-start:32px}.btn-social .btn-icon,.sign-service .icon{color:#fff;position:relative;display:inline-block}.btn-container{margin-top:20px;margin-bottom:20px;position:relative}.btn{height:36px;line-height:36px;font-family:inherit;font-size:1em;font-weight:400;padding:0 10px;border-radius:3px;cursor:pointer;display:inline-block;text-decoration:none;border:1px solid transparent;white-space:nowrap}.btn,.btn:active,.btn:focus,.btn:hover{text-decoration:none}.btn.default:active,.btn:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-icon{width:18px;display:inline-block;text-align:center}.btn-text{margin-inline-start:4px}.btn-text:empty{display:none}.btn-big{font-size:16px;font-size:1.143rem;height:38px;line-height:38px;padding-inline-start:1em;padding-inline-end:1em}.btn-small{height:30px;line-height:30px;font-size:.92em}.btn-input{font-weight:600;font-size:.93em;padding-inline-start:20px;padding-inline-end:20px}.btn-32{width:32px;height:32px;text-align:center;display:inline-block}.btn-32 .btn-icon{font-size:18px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.btn-capsule{border-radius:100px;border-color:rgba(255,255,255,.5);background-color:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background-image:none;height:auto;color:#fff;text-shadow:none;font-size:.93em;height:28px;line-height:28px;font-weight:400;padding:0 15px;box-shadow:none;-webkit-filter:none;filter:none}.btn-capsule:hover{background-color:rgba(0,0,0,.7)}.no-rgba .btn-capsule{border-color:#666;background-color:none;zoom:1}.btn-capsule:active{box-shadow:none}.btn-capsule .btn-icon{font-size:.93em}.btn.accent{color:var(--buttonAccentText);border:1px solid transparent;background:var(--buttonAccentBackground)}.btn.accent:not(.outline):hover{color:var(--buttonAccentHoverText);background:var(--buttonAccentHoverBackground)}.btn.accent.outline{color:var(--buttonAccentBackground);border-color:var(--buttonAccentBackground);box-shadow:none}.btn.accent.outline:hover{color:var(--buttonAccentHoverBackground);border-color:var(--buttonAccentHoverBackground)}.btn.default{color:var(--buttonDefaultText);border-color:var(--buttonDefaultBorder);background:var(--buttonDefaultBackground)}.btn.default--hover:not(.outline),.btn.default:not(.outline):hover{color:var(--buttonDefaultHoverText);background:var(--buttonDefaultHoverBackground);border-color:var(--buttonDefaultHoverBorder)}.btn.default.outline{color:var(--buttonDefaultBackground);border-color:var(--buttonDefaultBackground);box-shadow:none}.btn.default.outline:hover{color:var(--buttonDefaultHoverBackground);border-color:var(--buttonDefaultHoverBackground)}.btn.disabled,.btn.disabled:hover{color:var(--bodyTextSubtle);background-color:var(--buttonDefaultBackground);background-image:none;box-shadow:none;cursor:default}.tone-dark .btn.disabled,.tone-dark .btn.disabled:hover{color:#666;background-color:#212121}.btn.disabled.outline,.btn.disabled.outline:hover{color:var(--bodyTextSubtle);border-color:var(--bodyTextSubtle)}.btn.plain,.btn.plain:hover{background:0 0;text-shadow:none;border-color:transparent;box-shadow:none;padding:0;color:inherit}.tone-dark .btn.plain,.tone-dark .btn.plain:hover{background:0 0}.btn.plain:active{box-shadow:none}.btn.active{background-image:none;background-color:var(--colorAccent);border-color:var(--colorAccent);-webkit-filter:none;filter:none}.btn.grey,.btn.grey.off:hover{background-color:#eee}.btn.grey:hover{background-color:#e9e9e9}.btn.grey.outline{color:#eee}.btn.orange,.btn.orange.off:hover{border-color:#fe771d;background-color:#fe771d}.btn.orange:hover{background-color:#fe6b0a}.btn.orange.outline{color:#fe771d}.btn.purple,.btn.purple.off:hover{border-color:#8e44ad;background-color:#8e44ad}.btn.purple:hover{background-color:#8e44ad}.btn.purple.outline{color:#8e44ad}.btn.blue,.btn.blue.off:hover{border-color:var(--colorBlue);background-color:var(--colorBlue)}.btn.blue:hover{background-color:#2879b0}.btn.blue.outline{color:var(--colorBlue)}.btn.green,.btn.green.off:hover{background-color:var(--colorGreen)}.btn.green:not(.outline):hover{background-color:var(--colorGreenHover)}.btn.green.outline{color:var(--colorGreen);border-color:var(--colorGreenHover)}.btn.red,.btn.red.off:hover{border-color:var(--colorRed);background-color:var(--colorRed)}.btn.red:not(.outline):hover{background-color:var(--colorRedHover)}.btn.red.outline{color:var(--colorRed)}.btn.red.outline:hover{color:var(--colorRedHover);border-color:var(--colorRedHover)}.btn.white,.btn.white.off:hover{border-color:#fff;background-color:#fff}.btn.white:hover{background-color:#fff}.btn.white.outline{color:#fff}.btn.black,.btn.black.off:hover{border-color:#3a3a3a;background-color:#3a3a3a}.btn.black:hover{background-color:#343434}.btn.black.outline{color:#3a3a3a}.btn.active,.btn.black,.btn.blue,.btn.green,.btn.orange,.btn.red{color:#fff;border:1px solid transparent}.btn.grey,.btn.white{color:var(--bodyText)}.btn.off{cursor:default}.btn.off:active{box-shadow:none}.btn-social{color:var(--buttonDefaultText);background:var(--buttonDefaultBackground);background-image:none;box-shadow:none;border:1px solid transparent}.btn-social.btn-at .btn-icon,.btn-social.btn-share .btn-icon{color:var(--buttonDefaultText)}.btn-social,.btn-social:hover{text-decoration:none;text-shadow:none}.btn-twitter,.link-twitter span{background:#55acee}.btn-facebook,.link-facebook span{background:#3b5998}.btn-google,.btn-google-plus,.link-google span,.link-google-plus span{background:#d74836}.btn-mail{background:#ccc;color:var(--bodyText)}.btn-mail span{color:var(--bodyText)}.btn-tumblr{background:#35465c}.btn-pinterest{background:#bd081c}.btn-stumbleupon{background:#eb4924}.btn-blogger{background:#f57d00}.btn-whatsapp{background:#43d854}.btn-telegram{background:#08c}.btn-weixin{background:#7bb32e}.btn-weibo{background:#df2029}.btn-qzone{background:#ffce00}.btn-qq{background:#121214}.btn-reddit{background:#ff4500}.btn-reddit .btn-icon{color:#fff}.btn-vk,.link-vk span{background:#45668e}.btn.outline,.btn.outline:hover{background:0 0;border:1px solid;box-shadow:none}.pop-btn,.top-btn-el,a[data-modal]{-webkit-tap-highlight-color:transparent}.pop-btn *,.top-btn-el *{-webkit-tap-highlight-color:rgba(0,0,0,.2)}.pop-btn,.top-btn-el{display:inline-block;position:relative;cursor:pointer}.pop-box-inner{cursor:default;display:block;-webkit-overflow-scrolling:touch;overflow:auto}.pop-box-inner form{margin-top:-20px;margin-bottom:-20px}.btn.pop-btn .pop-box{line-height:100%}.pop-btn-text{color:var(--linkText);cursor:pointer}.ie7 .pop-btn-text,.ie8 .pop-btn-text{padding-inline-end:0}.pop-btn-text .arrow-down{vertical-align:middle;margin-inline-start:5px;border-top-color:var(--linkText)}.pop-btn.disabled{cursor:default}.pop-btn.disabled .pop-btn-text{color:var(--bodyTextDisabled);cursor:default}.pop-btn.disabled .arrow-down{border-top-color:var(--bodyTextDisabled)}.tone-dark .pop-btn.disabled .arrow-down{border-top-color:#444}.pop-box{color:var(--menuText);background:var(--menuBackground);-webkit-backdrop-filter:blur(15px) saturate(1.8);backdrop-filter:blur(15px) saturate(1.8);display:none;font-size:.93em;z-index:200;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid var(--menuSeparator)}.pop-box .or-separator{border-top-color:var(--menuSeparator)}.phablet .pop-box .or-separator,.phone .pop-box .or-separator{border-top-color:var(--topBarText);opacity:.25}@media (min-width:992px){.pop-box{position:absolute;top:20px;min-height:20px;min-width:190px;box-shadow:0 4px 14px rgba(0,0,0,.25);border-radius:5px;box-sizing:content-box;--columnGutter:5px;--columnWidth:230px;--columnWidthOuter:calc(var(--columnWidth) + var(--columnGutter))}.header--height .pop-box{min-width:240px}.pop-box,.pop-box.left-anchor{inset-inline-start:0}.pop-box.anchor-center{inset-inline-start:50%!important}.pop-box.anchor-right{inset-inline-start:auto;inset-inline-end:0}.pop-box.pbcols1{width:calc(1 * var(--columnWidthOuter) + var(--columnGutter))}.pop-box.pbcols2{width:calc(2 * var(--columnWidthOuter) + var(--columnGutter))}.pop-box.pbcols3{width:calc(3 * var(--columnWidthOuter) + var(--columnGutter))}.pop-box.pbcols4{width:calc(4 * var(--columnWidthOuter) + var(--columnGutter))}.pop-box.pbcols5{width:calc(5 * var(--columnWidthOuter) + var(--columnGutter))}.pop-box.pbcols1 li,.pop-box.pbcols2 li,.pop-box.pbcols3 li,.pop-box.pbcols4 li,.pop-box.pbcols5 li{border-radius:5px}.pop-box-menucols ul{padding:10px 0;overflow:auto}.pop-box-menucols li{width:var(--columnWidth);float:left;margin:0 0 0 5px}[dir=rtl] .pop-box-menucols li{float:right}.pop-box-menucols li:first-child a,.pop-box-menucols li:last-child a{border-radius:0}}.pop-box-menu{font-size:.8125rem;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory}.pop-box-label{color:inherit;margin:10px;text-transform:uppercase;font-weight:700;font-size:90%;cursor:default;line-height:2}.pop-box-block{padding:0 10px}.pop-box-block .current::before{font-weight:900;font-family:"Font Awesome 5 Free";-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;margin-inline-end:.25em;content:"\f205";font-size:90%}.pop-box-menu .menu-item,.pop-box-menu a{display:block;padding:6px 10px;text-decoration:none;font-weight:400;line-height:143%;color:var(--menuItemText)}.pop-box-block a{display:inline-block;padding:6px;border-radius:.25em;line-height:1}.phablet .pop-box,.phone .pop-box{color:var(--topBarText)}.phablet .pop-box-menu .menu-item,.phablet .pop-box-menu a,.phone .pop-box-menu .menu-item,.phone .pop-box-menu a{padding:10px;color:inherit}.phablet .pop-box-menu li.with-icon a .btn-icon,.phone .pop-box-menu li.with-icon a .btn-icon{top:11px}@media (min-width:992px){.pop-box-menu .menu-item,.pop-box-menu a{border-bottom:0}}.pop-box-menu a.focus,html:not(.phone) .pop-box-menu a:hover{background:var(--menuItemHoverBackground);color:var(--menuItemHoverText)}.pop-box-menu li.current a{background:rgba(0,0,0,.05)}.pop-box-menu li.current a:not(:hover) .btn-icon{color:var(--colorAccent)}.pop-box-menu ul{display:block;padding:0}@media (min-width:992px){.pop-box-menu ul{margin:5px 0}}.pop-box-menu li{display:block;text-align:start;overflow:hidden;position:relative}.pop-box-menu li.with-icon a{padding-inline-start:36px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}html:not(.phone):not(.phablet) .header--height .pop-box-menu li a{padding-inline-end:25px}.pop-box-menu li a kbd{position:absolute;top:50%;transform:translateY(-50%);inset-inline-end:10px;border-radius:2px;display:block;line-height:1;font-size:.9em;opacity:.5}.pop-box-menu li a:hover kbd{opacity:1}.phablet .pop-box-menu li a kbd,.phone .pop-box-menu li a kbd{display:none}.pop-box-menu li.with-icon a .btn-icon{position:absolute;inset-inline-start:10px;top:8px}.pop-box-menu li.current,.pop-box-menu li.current a{font-weight:600}.pop-box-menu li.current a:hover{cursor:default}.pop-box-userdetails{padding:10px;width:120%;min-width:230px;cursor:default;inset-inline-start:42px;line-height:normal;top:0!important;margin-top:0!important}.phablet .pop-box,.phone .pop-box{position:fixed;bottom:0;inset-inline-start:0!important;width:100%;top:auto!important;background:var(--topBarBackground);color:var(--topBarText)}.pop-box-header{font-weight:700;padding:15px 10px;position:relative;text-align:start;color:var(--topBarText)}.pop-box-header .icon--close{position:absolute;inset-inline-end:10px;top:50%;margin-top:-7px;font-size:14px;text-align:end}@media (min-width:992px){.pop-box-header{display:none}}.top-bar-placeholder{-webkit-backface-visibility:hidden;backface-visibility:hidden}.top-bar,.top-bar ul li.pop-btn,.top-bar ul li.top-btn-el,.top-bar-placeholder{height:50px}.top-btn-create-account,.top-btn-text{line-height:50px}.top-btn-text{-webkit-tap-highlight-color:transparent}.follow-scroll,.top-bar{transition:top .4s ease-in-out}.top-bar--:focus-within,.top-bar.scroll-up{top:0}.follow-scroll--:focus-within,.scroll-up.follow-scroll{top:50px!important}.scroll-down{top:-100%}.top-bar,.top-sub-bar{left:0;right:0;width:100%;position:-webkit-sticky;position:sticky;height:50px}.top-bar{color:var(--topBarText);z-index:900}.top-bar--main{z-index:910}.top-sub-bar{color:var(--bodyText);z-index:500;overflow:visible}body.pop-box-show .top-sub-bar--1{z-index:1}body.landing .top-bar,body.split .top-bar{position:fixed}.phablet .pop-box-show .top-bar,.phone .pop-box-show .top-bar{z-index:1}.follow-scroll-wrapper.position-fixed,.top-bar::before,.top-sub-bar::before{background:var(--topBarBackground);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.top-sub-bar::before{background:var(--bodyBackground)}.top-bar::before,.top-sub-bar::before{-webkit-backface-visibility:hidden;backface-visibility:hidden}.top-bar::before,.top-sub-bar::before{width:100%;height:calc(100% + .5px);position:absolute;content:" "}.top-bar .content-width,.top-sub-bar .content-width{position:relative;height:100%;padding-inline-start:5px;padding-inline-end:5px}.top-bar-logo{width:100%;height:100%;position:absolute;top:0;text-align:center;inset-inline-start:0}.top-bar-logo img{height:20px}.top-bar-logo>a{display:inline-block;vertical-align:top;position:relative;top:50%;transform:translateY(-50%);text-decoration:none;font-weight:400;font-size:24px;color:var(--topBarText)}.top-bar-logo img{display:block;margin-inline-start:auto;margin-inline-end:auto}.top-bar ul{list-style:none}.top-bar li.pop-btn,.top-bar li.top-btn-el{float:left;padding-inline-end:5px;padding-inline-start:5px;position:relative}[dir=rtl] .top-bar li.pop-btn,[dir=rtl] .top-bar li.top-btn-el{float:right}@media (min-width:992px){.top-bar li.pop-btn,.top-bar li.top-btn-el{padding-inline-end:10px;padding-inline-start:10px}.top-bar .top-bar-notifications.pop-btn{padding-inline-end:0}}.top-bar ul .pop-btn.current,.top-bar ul .top-btn-el.current{border-bottom:3px solid var(--colorAccent)}.top-bar ul .pop-btn.current .top-btn-text,.top-bar ul .top-btn-el.current .top-btn-text{text-shadow:none;box-shadow:none}.top-bar ul li.top-btn-el a{text-decoration:none;color:inherit}.tone-light .top-bar .top-bar ul .pop-btn.current .top-btn-text,.tone-light .top-bar .top-bar ul .top-btn-el.current .top-btn-text{color:var(--bodyText)}.top-bar-right li.pop-btn:last-child,.top-bar-right li.pop-btn:last-child .arrow-down{margin-inline-end:0}.top-btn-create-account,.top-btn-text{display:block;font-weight:400;font-size:1em;height:100%}#menu-fullscreen .btn.top-btn-create-account,.btn.top-btn-create-account:not(.grey):not(.white),.top-btn-text{color:inherit}.top-btn-text{text-decoration:none;color:var(--topBarText)}.top-bar #menu-fullscreen .top-btn-text{color:var(--topBarText)}body.landing .top-btn-text{color:var(--topBarText)}.top-btn-text .icon{margin-inline-end:7px;position:relative;top:0;display:inline-block;font-size:16px;width:16px;font-size:1.143rem;width:1.4rem;line-height:50px;text-align:center}.current .top-btn-text .icon{color:var(--colorAccent)}.top-btn-text .btn-text{margin-inline-start:0}.top-btn-text .arrow-down{position:relative;margin:0 0 0 5px}.top-btn-text .btn-text{vertical-align:top}.top-btn-text .icon{margin-inline-end:0}#menu-fullscreen .top-bar-notifications .btn-text{display:inline-block}#menu-fullscreen #top-bar-user,#menu-fullscreen [data-nav=upload]{display:none}#top-bar [data-nav=upload]{padding-inline-end:5px;padding-inline-start:5px}.top-bar-notifications-container{margin-inline-end:2px;cursor:default}.top-bar-notifications-header{font-size:.93em;line-height:1;padding:12px 10px;overflow:auto}.top-bar-notifications-header,.top-bar-notifications-list li{border-bottom:1px solid var(--menuSeparator)}.tone-dark .top-bar-notifications-header,.tone-dark .top-bar-notifications-list li{border-color:#333}.top-bar-notifications-header h2{font-size:1em;font-weight:700;float:left}[dir=rtl] .top-bar-notifications-header h2{float:right}.top-bar-notifications-header a{float:right}[dir=rtl] .top-bar-notifications-header a{float:left}.top-bar-notifications-list li{font-size:.93em;display:block;text-decoration:none;padding:10px;position:relative;min-height:68px;padding-inline-start:68px}.top-bar-notifications-list li:last-child{border-bottom:0}.top-bar-notifications-list li:hover{background:rgba(0,0,0,.02)}.tone-dark .top-bar-notifications-list li:hover{background:rgba(0,0,0,.2)}.top-bar-notifications-list li.transition{transition:background-color 150ms linear}.top-bar-notifications-list li.new,.top-bar-notifications-list li.persistent{background:#fffad9}.tone-dark .top-bar-notifications-list li.new,.tone-dark .top-bar-notifications-list li.persistent{background:#333}.ie7 .top-bar-notifications-list li{min-height:48px}.top-bar-notifications-list li .user-image{width:48px;height:48px;position:absolute;left:10px;top:10px}.top-bar-notifications-list li .user-image img{width:100%;height:100%;display:block}.top-bar-notifications-list li .user-image span.icon{font-size:30px;width:30px;height:30px;margin-inline-start:-15px;margin-top:-15px}.top-bar-notifications-list li .how-long-ago{display:block;font-size:11px;color:var(--bodyTextSubtle)}.top-bar-notifications .top-btn-number{position:absolute;z-index:1;border-radius:100px;zoom:.75;inset-inline-end:-8px;top:10px;visibility:hidden}.top-bar-notifications .top-btn-number.on{visibility:visible}@media (min-width:992px){.top-bar .pop-box{margin:10px;z-index:200}}.top-bar-search-input{margin-inline-start:-10px;margin-inline-end:10px!important}.top-bar-search-input .icon--close{inset-inline-end:-4px}.top-bar-search-input .icon--settings{inset-inline-end:14px}.top-bar .top-bar-search-input .icon--search{color:var(--colorAccent)}.top-bar-search-input .input-search{position:relative;top:50%;margin-top:-13px}.top-bar-search-input input{font-size:1em;border-width:0;padding-inline-start:36px}.tone-light .top-bar .top-bar-search-input input{border-width:1px}.top-bar-left .pop-box{inset-inline-start:-10px}.phone .top-bar-left li{padding-inline-end:0}.phone .top-bar-right li{padding-inline-start:0}.top-bar-right .pop-box{inset-inline-start:auto;inset-inline-end:-10px}.top-bar--main .pop-box{top:calc(50% + 10px)}#top-predictive-search.pop-box{width:200px;inset-inline-start:0;font-size:100%}.top-bar .pop-account .or-separator{margin-top:30px;margin-bottom:30px}.top-btn-create-account{text-decoration:none;display:inline;padding:4px 12px;height:26px}.top-bar .opened .top-btn-text span:not(.btn-text),.top-bar .top-btn-text:hover span:not(.btn-text){color:var(--linkText)}.phone .top-bar .top-btn-text:hover span:not(.btn-text){color:inherit}.phone .top-bar .current .top-btn-text:hover span:not(.btn-text){color:var(--linkText)}.ios .top-bar .top-btn-text span:not(.btn-text):not(.top-btn-number):hover{color:var(--bodyText)}.ios .top-bar .opened .top-btn-text span:not(.btn-text),.ios .top-bar .opened .top-btn-text:not(.top-btn-number){color:var(--linkText)}.top-bar .btn:hover:not(.white):not(.grey),.top-bar .btn:not(.white):not(.grey),.top-bar .opened .btn:not(.white):not(.grey){color:#fff}.current .top-btn-create-account:hover{background:inherit}.current .top-btn-create-account{padding:0;background:0 0}.top-btn-number{background:#555;color:#ddd;font-size:12px;font-weight:400;border-radius:3px;padding:0 7px;position:relative;display:block;line-height:22px;height:22px;top:-2px}#menu-fullscreen .top-btn-number{display:inline-block;position:absolute;margin-inline-end:5px;top:10px;vertical-align:text-bottom;inset-inline-start:30px;inset-inline-end:auto}.opened .top-btn-number.on,.tone-light.ios .top-bar .top-btn-number.on,.tone-light.top-bar .top-btn-number.on,.top-btn-number.on,.top-btn-number.on:hover{background:#d90000;color:#fff}.pop-account .pop-box-inner{padding:20px 10px;cursor:default}.pop-account .title,.pop-account h2{font-size:1em;text-align:center;margin-top:5px;font-weight:400;display:block}.pop-account .sign-services{margin:15px 0 11px 0}.pop-account input.text-input,.pop-account input[type=password],.pop-account input[type=text]{width:100%}.ie7 .pop-account input.text-input{width:266px;height:auto}.pop-account .checkbox-label{display:inline-block;margin:0}#top-bar-user .top-btn-text .user-image{position:relative;top:50%;margin-top:-13px;width:1em;height:1em;float:left;font-size:26px;background:0 0;color:inherit;margin-inline-end:0}[dir=rtl] #top-bar-user .top-btn-text .user-image{float:right}#top-bar-user-menu.pop-box{width:150px}.header{position:relative}.header-icon{color:var(--colorAccent)}.header-tabs{min-height:50px}.header.follow-scroll{margin-inline-end:-10px;margin-inline-start:-10px;padding-inline-start:10px;padding-inline-end:10px;overflow:visible;position:-webkit-sticky;position:sticky;min-height:50px}.tone-dark .header{border-bottom-color:#212121}.header.fixed.follow-scroll{border-bottom:0}.header .header-title,.header h1{font-size:1em}.header>*{vertical-align:middle}.header .heading,.header .heading *,.header>.header-title,.header>h1{word-break:break-word}.header-tabs .heading,.header-tabs .heading *,.header-tabs>.header-title,.header-tabs>h1{line-height:50px}.header .heading,.header>.header-title,.header>h1{font-size:22px;font-weight:400;display:inline-block;color:inherit}.header .header-title a,.header h1 a{color:inherit;text-decoration:none}.header .header-title strong,.header .heading strong,.header h1 strong{font-weight:inherit}.header.header-tabs .header-title,.header.header-tabs h1{margin-inline-end:5px;margin-inline-start:5px}.header ul.content-tabs{display:inline-block}.phablet .header ul.content-tabs,.phone .header ul.content-tabs{float:none;display:inline-block;left:0;right:0;position:absolute;z-index:1;white-space:nowrap}.phablet .header.follow-scroll ul.content-tabs,.phone .header.follow-scroll ul.content-tabs{position:absolute;padding-inline-start:10px;padding-inline-end:10px}.phablet .header:not(.follow-scroll) ul.content-tabs,.phone .header:not(.follow-scroll) ul.content-tabs{top:auto}.header-content-left{float:left}[dir=rtl] .header-content-left{float:right}.header-content-right{float:right;height:auto;margin-inline-start:auto}[dir=rtl] .header-content-right{float:left}@media (max-width:340px){.header-content-right.breaks-ui{clear:both;position:static!important;margin-inline-start:0}}.phablet .header-content-right:not(.phablet-float-none),.phone .header-content-right:not(.phone-float-none){position:absolute;inset-inline-end:0;top:0;float:right}[dir=rtl].phablet .header-content-right:not(.phablet-float-none),[dir=rtl].phone .header-content-right:not(.phone-float-none){float:left}.header-content-right .number-figures{margin-top:14px;border-inline-start:1px solid var(--bodySeparator)}.header-content-right .number-figures:first-child{border-inline-start:0}.header .header-link{font-size:1em;display:inline-block}.header .pop-btn.breadcrum-item{margin-top:0}.header .user-image{font-size:30px;width:1em;height:1em;margin-top:10px;float:left}[dir=rtl] .header .user-image{float:right}.header.header-content{position:relative;min-height:40px;border:0}.header.header-content .heading,.header.header-content .heading *{line-height:40px;height:40px}.header-content img{max-height:40px}.header-content .user-image{width:1em;height:1em;font-size:40px;margin-top:0;top:0}.header .user-image img,.header-content .user-image img{width:100%;height:100%;display:block}.header-description{line-height:1.4;max-height:10vh;overflow-y:scroll;overflow:auto}.header-description:empty{display:none}.header-description p{margin:10px 0}.header-content-breadcrum{float:left}[dir=rtl] .header-content-breadcrum{float:right}.breadcrum-item :not(.btn){line-height:normal}.breadcrum-text,.header-content-breadcrum .breadcrum-item{line-height:40px}.breadcrum-text,.breadcrum-text a{color:inherit}.breadcrum-text{font-weight:400}.breadcrum-item{margin-inline-end:10px;position:relative;float:left}[dir=rtl] .breadcrum-item{float:right}.breadcrum-text a:hover{color:var(--linkText);text-decoration:none}.breadcrum-text .user-link{margin-inline-start:5px}.header-content-breadcrum .arrow,.header-content-breadcrum .arrow-down,.header-content-breadcrum .arrow-right{margin-inline-start:5px;position:relative}.header-content-breadcrum a:hover .arrow-down{border-top-color:var(--linkText)}.header-content-breadcrum a:hover .arrow-right{border-left-color:var(--linkText)}.header-content-breadcrum .pop-box h2{font-size:1.07em;line-height:1.2}.header-content-breadcrum .pop-box h2 a{line-height:1}.header-content .btn{margin-inline-start:5px;float:left;display:block}[dir=rtl] .header-content .btn{float:right}.header-content .btn:last-child{margin-inline-end:0}.follow-scroll{margin-inline-start:auto;margin-inline-end:auto;z-index:1}.follow-scroll-wrapper{left:0;right:0;z-index:50}.follow-scroll-wrapper.position-fixed .header{margin-bottom:-1px!important}.follow-scroll-placeholder{-webkit-backface-visibility:hidden;backface-visibility:hidden}.phablet .header:not(.header-tabs) .tab-menu,.phone .header:not(.header-tabs) .tab-menu{color:var(--buttonDefaultText);background:var(--buttonDefaultBackground);border-radius:4px;height:auto;line-height:1em;min-height:1em;padding:10px}.phablet .header:not(.header-tabs) .tab-menu:not(.--hide),.phone .header:not(.header-tabs) .tab-menu:not(.--hide){color:var(--buttonDefaultHoverText);background:var(--buttonDefaultHoverBackground);margin-bottom:10px}.phablet .header .tab-menu.--hide .tab-menu--show,.phablet .header .tab-menu:not(.--hide) .tab-menu--hide,.phone .header .tab-menu.--hide .tab-menu--show,.phone .header .tab-menu:not(.--hide) .tab-menu--hide{display:none}.tab-menu{cursor:pointer;line-height:50px;min-height:50px}.tab-menu.--hide .btn-icon[data-content=tab-icon]{color:var(--colorAccent)}.tab-menu.--hide{color:var(--buttonDefaultText)}.tab-menu:not(.--hide){color:var(--buttonDefaultHoverText)}.content-tabs-container{position:relative;display:inline-block}.phablet .content-tabs-container--mobile,.phone .content-tabs-container--mobile{box-shadow:0 6px 4px rgba(0,0,0,.25);inset-inline-start:-10px;width:calc(100% + 15px)}.phablet .content-tabs-wrap,.phone .content-tabs-wrap{height:50px;overflow-y:hidden;position:relative;-webkit-overflow-scrolling:touch;overflow-x:scroll;position:relative;display:none;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:var(--bodyBackground)}.content-tabs-wrap::-webkit-scrollbar{display:none}.content-tabs-wrap{display:inline-block;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory}.content-tabs li{scroll-snap-align:start}.content-tabs li:not(.current){transition-duration:.2s;transition-property:background-color}.content-tabs a{font-weight:400;color:inherit;text-decoration:none;padding-inline-start:10px;padding-inline-end:10px}.phone .content-tabs li:last-child{margin-inline-end:15px}.content-tabs-shade{content:" ";background:-webkit-linear-gradient(0deg,rgba(255,255,255,0),var(--bodyBackground));width:15px;height:100%;position:absolute;inset-inline-end:0;top:0;pointer-events:none;z-index:2}[dir=rtl] .content-tabs-shade{background:-webkit-linear-gradient(180deg,rgba(255,255,255,0),var(--bodyBackground))}.phablet .content-tabs a,.phone .content-tabs a{color:var(--menuItemText)}.content-tabs li.disabled a{cursor:default}.tab-menu .--show{display:none}.tab-menu.current .--show{display:inline-block}.tab-menu.current .--hide{display:none}.content-tabs li{float:left;font-size:1em}[dir=rtl] .content-tabs li{float:right}.phablet .content-tabs li,.phone .content-tabs li{float:none;border-bottom:0;display:inline-block}.content-tabs-vertical li{float:none;margin:0;border-inline-start:2px solid transparent}.content-tabs-vertical li>*{padding-inline-end:20px;padding-inline-start:20px}.header-content-right .content-tabs li{margin-inline-start:10px;margin-inline-end:0}.content-tabs a,.content-tabs li{height:50px;line-height:50px;display:block}.content-tabs-vertical a,.content-tabs-vertical li{height:38px;line-height:38px}.content-tabs li.current,.content-tabs li.visited,.content-tabs li.visited:hover{border-color:var(--colorAccent);border-style:solid;border-bottom-width:3px}.content-tabs li.current .btn-icon{color:var(--colorAccent)}.content-tabs li:not(.current):hover{background:var(--bodyEmpty)}.content-tabs li:not(.current):hover a .btn-icon{color:var(--colorAccent)}.content-tabs li.disabled:hover{border-bottom:0}.content-tabs li.current{border-color:var(--colorAccent)}.content-tabs li.visited{border-bottom-color:transparent}.content-tabs li.current.visited{border-color:#d93600}.content-tabs li.visited,.content-tabs li.visited a{color:#d93600}.content-tabs-vertical li.current,.content-tabs-vertical li:hover{border-bottom-width:0;border-left-width:2px}.content-tabs .tab-count{font-weight:400;color:var(--bodyTextSubtle)}.content-tabs .tab-count-block{font-weight:400;background:#d90000;border-radius:3px;padding:1px 4px;position:relative;top:-1px}.content-tabs .current .tab-count-block,.content-tabs .tab-count-block{color:#fff}.content-tabs li.disabled *{color:var(--bodyTextDisabled)}.header--centering{display:flex;align-items:center;flex-wrap:wrap}.header--height{overflow:visible;height:50px}.list-selection *{line-height:normal}#tabbed-content-group{margin-top:20px;padding-bottom:20px;position:relative}.content-listing .viewer-kb{opacity:0;position:fixed;bottom:-100px;z-index:1;left:0;right:0;background:linear-gradient(0deg,var(--topBarBackground) 0,rgba(0,0,0,0) 100%)}.--has-selection .content-listing.visible .viewer-kb{opacity:1;bottom:0}.content-listing .viewer-kb-input{color:var(--menuText);background:var(--menuBackground);border-radius:.5em;margin:1em;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);box-shadow:0 4px 14px rgb(0 0 0 / 25%)}#content-listing-tabs #tabbed-content-group{margin-top:0}#content-listing-tabs{padding-bottom:0;margin-inline-start:-10px;margin-inline-end:-10px}.tabbed-content{display:none;width:100%;overflow:hidden}.title{font-size:.93em;font-weight:700;margin-bottom:5px}.title.grid-columns{margin-inline-end:10px;text-align:end;line-height:2}.phablet .title.grid-columns,.phone .title.grid-columns{margin-inline-end:0!important;text-align:start}.tabbed-content-section{overflow:auto}.tabbed-content-list{line-height:1.8}.tabbed-listing .tabbed-content{overflow:hidden}.table-li{display:table;width:100%}.table-li>li{padding-top:8px;padding-bottom:8px;border-bottom:1px solid var(--bodySeparator);list-style:none!important}.tabbed-content-list.table-li-hover>li:hover{background:var(--bodyEmpty)}.tabbed-content-list .table-li-header{font-weight:700}.tabbed-content-list.table-li-hover .table-li-header:hover,.tone-dark .tabbed-content-list.table-li-hover .table-li-header:hover{background:0 0}.table-li ul li:last-child{border-bottom:none}.desktop .table-li--mobile-display,.laptop .table-li--mobile-display,.largescreen .table-li--mobile-display,.phablet .table-li--mobile-display,.tablet .table-li--mobile-display{display:none!important}.viewer-title{font-size:1.43em;line-height:1.43em;padding-inline-end:3em}.panel-description:empty{display:none;margin:0!important;padding:0!important}.panel-description .description-text{font-size:1em}.panel-description .description-meta{font-size:.93em}.panel-description .exif-meta{padding-inline-start:1.57em;position:relative}.panel-description .exif-meta .camera-icon{color:var(--bodyTextDisabled);position:absolute;inset-inline-start:0;top:.21em;font-size:1.14em}.panel-description .exif-meta .exif-data{display:block;font-size:1em}.panel-thumbs{z-index:1;bottom:0;left:0;right:0;background:var(--viewerBackground)}.panel-thumb-list{overflow-x:auto;overflow-y:hidden;white-space:nowrap;text-align:center;height:50px;margin-inline-start:auto;margin-inline-end:auto}.panel-thumb-list:empty{display:none}.panel-thumb-list li{position:relative;font-size:0;border-top:3px solid transparent;display:inline-block;line-height:50px}.panel-thumb-list li.current{border-color:var(--bodyBackground)}.list-item-desc .panel-thumb-list li:hover img,.panel-thumb-list li.current img{opacity:1}.phablet .panel-thumb-list li.more-link,.phone .panel-thumb-list li.more-link{clear:both;line-height:100%;padding:10px 0}.panel-thumb-list img{display:block;width:47px;height:47px;opacity:.4;transition:opacity 350ms ease}.panel-thumb-list li:hover img{opacity:1}.panel-share-item{margin-bottom:30px}.panel-share-item:last-child{margin-bottom:0}.panel-share-item h4.pre-title{padding-inline-start:200px;line-height:20px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--bodySeparator)}.tone-dark .panel-share-item h4.pre-title{border-color:#212121}.phablet .panel-share-item h4.pre-title,.phone .panel-share-item h4.pre-title{padding-inline-start:0}.panel-share-item h4.title{line-height:32px}.panel-share-item .grid-columns{position:relative}.panel-share-input-label{margin-bottom:10px;overflow:auto}.panel-share-input-label:last-child{margin-bottom:0}.panel-share-input{position:relative}.panel-share-networks{overflow:auto;text-align:center}.panel-share-networks h4.title{line-height:32px}.panel-share-networks li{display:inline-block;margin-inline-end:5px;margin-bottom:5px}.panel-share-networks li a{display:block;width:32px;height:32px;position:relative}.panel-report h4.title{line-height:36px}.text-content{font-size:16px}.text-content li,.text-content p{line-height:160%;margin:10px 0}.text-content h1,.text-content h2,.text-content h3,.text-content h4{margin:40px 0 20px 0;font-weight:400;line-height:120%}.text-content h1{font-size:1.375em}.text-content h2{font-size:1.25em}.text-content h3{font-size:1.125em}.text-content h4{font-size:1.07em}.text-content h5{font-size:1em}.text-content h6{font-size:1em}.text-content ol,.text-content ul{margin-inline-start:20px}.text-content li{list-style:disc outside;margin-top:0;margin-bottom:0}.form-content{position:relative}.signup-services-column h2{font-size:17px}.signup-services-column ul{margin:10px 0}.signup-services-column li:first-child{margin-inline-start:0}.signup-services-column li:last-child{margin-inline-end:0}.form-content .content-tabs-vertical{margin-inline-end:10px;position:absolute;inset-inline-start:0;top:0}.form-content .content-tabs-vertical.position-fixed{position:fixed;inset-inline-start:auto;top:auto}.tabbed-input-column{margin-inline-start:200px}.phablet .tabbed-input-column,.phone .tabbed-input-column{margin-inline-start:0}.account-link{position:relative}a.account-linked-profile{width:48px;height:48px;display:block}a.account-linked-profile img{width:100%;height:100%;display:block;border:0}.text-overflow-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}html.menu-fullscreen-visible{overflow:hidden}#menu-fullscreen{position:fixed;left:0;top:0;bottom:0;right:0;height:100vh;width:100vw;overflow:auto}#menu-fullscreen>ul>li{display:block;float:none;border-bottom:0;margin:0!important;position:relative}#menu-fullscreen>ul>li .top-btn-text{padding:0 10px;background:inherit}#menu-fullscreen>ul>li .icon{margin-inline-end:7px}#menu-fullscreen>ul>li .input-search .icon{margin-inline-end:0}#menu-fullscreen>ul>li a{text-decoration:none}#menu-fullscreen .input-search{margin:0;margin-inline-end:10px;top:12px;width:auto}#menu-fullscreen .menu-fullscreen-show{display:block}#menu-fullscreen .menu-fullscreen-hide{display:none}body.upload-box-visible{margin-top:300px}body.upload-box-visible.no-margin-top{margin-top:280px}body.upload-box-visible .upload-box{display:block}.upload-box{clear:both;background:var(--bodyBackground)}.upload-box--fixed{position:fixed;left:0;right:0;z-index:200;background:var(--bodyBackground)}body:not(#upload) .upload-box--fixed{padding-top:50px;overflow:auto}.phone .upload-box--fixed{top:0;z-index:500;max-height:100%;overflow-y:auto;overflow-x:hidden}.upload-box--hidden{transform:translateY(-100%);top:-1px}.upload-box--show{transform:translateY(0)}.upload-box-inner{padding:40px 0;position:relative}.phone .upload-box-inner{padding:20px 0}.upload-box-inner .position-absolute{position:absolute;text-transform:uppercase;top:20px;line-height:20px}#upload .upload-box[data-queue-size="0"] .upload-box-heading,.phone .upload-box[data-queue-size="0"] .upload-box-heading{position:fixed;top:50%;left:0;right:0;transform:translateY(-50%);padding:10px}.upload-box-heading{text-align:center}.upload-box-heading .icon{font-size:100px;height:1em;display:inline-block;margin-inline-start:auto;margin-inline-end:auto;text-decoration:none;-webkit-tap-highlight-color:transparent}.upload-box-heading .heading,.upload-box-heading h2{font-size:26px;margin:10px 0;display:block}.upload-box-heading .heading a,.upload-box-heading h2 a{color:inherit;text-decoration:none}.upload-box-status-text{font-size:1em;line-height:1.4}.upload-box-allowed-files{inset-inline-start:0;font-size:11px;font-size:.79rem;color:var(--bodyTextSubtle)}.upload-box-close{text-decoration:none;inset-inline-end:0;font-size:11px;line-height:11px;font-size:.79rem;line-height:1em;color:var(--bodyText)}.tone-dark .upload-box-close{color:#ccc}.upload-box-close:hover{text-decoration:none}.upload-box-close a{color:inherit;text-decoration:none}.upload-box-close .btn-icon{font-size:.9em;display:inline}@media (min-width:340px){.upload-input-col{width:310px}}.page-not-found{border-radius:10px;background:var(--bodyEmpty);text-align:center;padding:30px;font-size:16px;margin-top:20px}.page-not-found h1{font-size:30px;margin-bottom:10px}.page-not-found .input-search{margin-inline-start:auto;margin-inline-end:auto;margin-top:20px}.page-not-found .input-search .icon--search{font-size:20px;inset-inline-start:14px;top:8px}.page-not-found .input-search .icon--close{top:3px;inset-inline-end:6px}.page-not-found input.search{height:36px;width:100%;font-size:15px;padding-inline-end:30px;padding-inline-start:40px}.ie7 .page-not-found input.search,.ie8 .page-not-found input.search,.ie9 .page-not-found input.search{padding-inline-end:10px;line-height:36px}.content-listing{overflow:hidden;position:relative;clear:both}.pad-content-listing{width:calc(100% + 10px);margin-inline-start:auto;margin-inline-end:auto;position:relative}.list-item{display:inline-block}.js .content-listing{height:0}.js .jsly.content-listing{height:auto}.list-item .disabled-mask{width:100%;height:100%;position:absolute;top:0;inset-inline-start:0;background:rgba(255,255,255,.5);z-index:1}.list-item:hover .hover-display,.phablet .list-item .hover-display,.phone .list-item .hover-display{display:block}.list-item.masked:hover .hover-display{display:none}.list-item .hover-display,html.--idle .list-item .hover-display:not(.idle-display),html.--idle .list-item-image-tools>div{opacity:0;transition:all 350ms ease}html:not(.--idle) .list-item:hover .hover-display{opacity:1}.phablet .list-item .hover-display,.phone .list-item .hover-display{opacity:1;transition:none}.list-item-image{position:relative;display:block;overflow:hidden;min-height:260px;text-align:center;background:var(--bodyEmpty);content-visibility:auto;contain:layout style paint}.list-item-image .image-container{display:inline-block;text-align:center;vertical-align:bottom;text-decoration:none;font-size:64px;width:100%;height:100%}.js .list-item-image .image-container.--media{width:100%;height:100%}.list-item-image .image-container img,.list-item-image .image-container svg{display:block;position:relative;width:100%!important;height:100%;-o-object-fit:cover;object-fit:cover}.list-item-image .image-container .icon.empty{font-size:.9em}.list-item-image .image-container .empty{color:var(--bodyText);text-decoration:none}.selected .list-item-image .image-container .icon.empty{color:#fff}.list-item-image-btn{padding:5px 8px 5px 28px;font-size:.93em;background:var(--bodyBackground);position:absolute;top:10px;cursor:pointer;border-radius:2px}.list-item-image-btn.list-image-like-btn{inset-inline-start:10px}.list-item-image-btn span{font-size:15px;position:absolute;inset-inline-start:8px;top:50%;margin-top:-8px}.ie7 .list-item-image-btn span{inset-inline-start:4px;top:2px}.list-item-image-btn:hover span{color:var(--colorAccent)}.list-item-image-btn.liked{background:var(--colorAccent);color:#fff;display:block}.list-item-image-btn.liked:hover{background:#d90000}.list-item-image-btn.liked:hover span.icon-like{font-size:11px;padding:0;inset-inline-start:10px;color:#fff;margin-top:-6px}.list-item-image-btn.liked:hover span.icon-like:before{content:"\e01f"}.list-item-desc-title{width:100%;height:100%;padding:0 10px;inset-inline-start:0;bottom:10px;text-decoration:none}.list-item-desc-title>*{padding-bottom:5px}.list-item-from{bottom:0;line-height:1}.phablet .content-listing:not([data-list=users]).list-item-desc-title,.phone .content-listing:not([data-list=users]).list-item-desc-title{display:none}.list-item-desc-title--center-y{top:50%;transform:translateY(-50%)}.list-item-desc-title-link{font-size:1.1em;font-weight:600;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:calc(100%)}@media (min-width:320px){.list-item-desc-title-link{width:calc(100% - 20px)}}a.list-item-desc-title-link{text-decoration:none}.list-item-title{padding-top:0;padding-bottom:0;font-weight:400;text-align:center;height:40px;overflow:hidden}.list-item-title,.list-item-title *{font-size:1em;line-height:40px}.list-item-title a{font-weight:400;color:var(--bodyText)}.list-item-alt{background:#f9f9f9}.list-item-desc-height{height:100%}.list-item-overflow{height:110%;overflow:hidden}.list-item-desc{width:100%;top:1;font-size:.93em;line-height:1;box-shadow:0 1px 0 rgba(0,0,0,.1),0 0 0 transparent;border-bottom:1px solid rgba(0,0,0,.2)}.list-item-desc a,.list-item-desc b,.list-item-desc strong,.list-item.masked:hover .list-item-desc a,.list-item.masked:hover .list-item-title a{color:inherit}.tone-dark .list-item-desc a,.tone-dark .list-item-desc b,.tone-dark .list-item-desc strong,.tone-dark .list-item.masked:hover .list-item-desc a,.tone-dark .list-item.masked:hover .list-item-title a{color:inherit}.list-item:hover .list-item-desc a,.list-item:hover .list-item-title a{color:var(--linkText)}.list-item-desc .user,.list-item-desc a.user img{border-radius:100%}.list-item-desc .user{float:left;margin-top:-20px;margin-inline-end:8px;padding:3px;background:var(--bodyBackground);width:50px;height:50px}[dir=rtl] .list-item-desc .user{float:right}.tone-dark .list-item-desc .user{background:#101010}.list-item-desc .user:hover{background:var(--linkText)}.tone-dark .list-item-desc .user:hover{background:inherit}.phablet .content-listing[data-list=images] .list-item-desc,.phone .content-listing[data-list=images] .list-item-desc{display:none}.list-item-desc strong{display:block}.list-item-card{border-radius:3px;min-height:82px}.list-item-card .user-image{display:block}.list-item-thumbs-container{overflow:hidden}.list-item-thumbs{overflow:auto;background:#f9f9f9;width:101%;margin-top:2px;margin-bottom:0;margin-inline-start:-1px}.list-item-thumbs li{background:#f6f6f6;border-inline-end:1px solid;border-inline-start:1px solid;border-color:#fff;float:left}[dir=rtl] .list-item-thumbs li{float:right}.list-item-desc{color:inherit;background:0 0;border:0;box-shadow:none;text-shadow:1px 1px 5px rgba(0,0,0,.6);opacity:0;transition:all 350ms ease;bottom:0;position:absolute}.desktop .list-item .list-item-desc,.laptop .list-item .list-item-desc,.largescreen .list-item .list-item-desc,.list-item:hover .list-item-desc,.phablet .list-item .list-item-desc,.phone .list-item .list-item-desc,.tablet .list-item .list-item-desc{opacity:1}.list-item-desc *,.list-item-desc a,.list-item:hover .list-item-desc a{color:var(--listItemText)}.list-item-desc .list-item-overflow{bottom:0;inset-inline-start:0;padding:10px;position:absolute;height:auto}.content-listing-loading,.content-listing-more{text-align:center;margin:20px 0}.content-listing-more{display:none}.content-listing-loading{height:32px}.content-listing-loading .loading-indicator{position:static}.content-listing-pagination{text-align:center;font-size:1.3em;padding:0;color:inherit;font-weight:400;margin-top:20px}.js .content-listing-pagination{display:none}.content-listing-pagination.visible{display:flex!important}.content-listing-pagination a{text-decoration:none;font-weight:inherit;color:inherit;padding:6px 10px;display:block;border-radius:4px}.content-listing-pagination li.pagination-prev{text-align:end}.content-listing-pagination li.pagination-next{text-align:start}.content-listing-pagination a:hover{color:var(--linkText);background:var(--bodyEmpty)}.content-listing-pagination a.current{color:inherit}.tone-dark .content-listing-pagination a.current{color:#fff}.tone-dark .content-listing-pagination a:hover{background:#1f1f1f}.phone .content-listing-pagination li.pagination-page{display:none}.content-listing-pagination li,.phone .content-listing-pagination li.pagination-page.pagination-current{display:inline-block}.content-listing-pagination li.pagination-next,.content-listing-pagination li.pagination-prev{flex-grow:4}.content-listing-pagination li.pagination-current{flex-grow:1}.content-listing-pagination .pagination-current a,.content-listing-pagination .pagination-current a:hover{color:inherit;background:initial;cursor:default}.pagination-disabled{visibility:hidden}.content-empty{padding:4em 2em;text-align:center;font-size:inherit;color:var(--bodyText)}.content-empty .icon{color:var(--bodyEmpty);font-size:90px;width:90px;height:90px;display:inline-block}.tone-dark .content-empty,.tone-dark .content-empty .icon{color:#444}.content-empty .message,.content-empty h2{font-size:16px;margin-top:10px;line-height:160%}.tone-dark .content-empty .message,.tone-dark .content-empty h2{color:#444}.sort-listing{display:none}.sort-listing .selection-count:before{content:" (";white-space:pre}.sort-listing .selection-count:after{content:")"}.disabled.sort-listing .selection-count:after,.disabled.sort-listing .selection-count:before{display:none}.user-image{display:inline-block}.user-image path{fill:red}.user-image,.user-image img{display:block;border-radius:3px}.default-user-image{color:var(--bodyText);text-align:center;position:relative;border-radius:100%;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:var(--backgroundLightAlpha)}.checkered-background{background-image:linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 25%),linear-gradient(135deg,rgba(0,0,0,.1) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(0,0,0,.1) 75%),linear-gradient(135deg,transparent 75%,rgba(0,0,0,.1) 75%);background-size:25px 25px;background-position:0 0,12.5px 0,12.5px -12.5px,0 12.5px}.default-user-image .icon{color:inherit;position:absolute;inset-inline-start:50%;top:50%;display:block;line-height:100%;font-size:1em;width:1em;height:1em;margin-inline-start:-.5em;margin-top:-.5em}.default-user-image.size-70,img.user-image.size-70{width:70px;height:70px}.default-user-image.size-70 .icon{font-size:38px;margin-inline-start:-19px;margin-top:-19px}.default-user-image.size-60,img.user-image.size-60{width:60px;height:60px}.default-user-image.size-60 .icon{font-size:32px;margin-inline-start:-16px;margin-top:-16px}.default-user-image.size-40,img.user-image.size-40{width:40px;height:40px}.default-user-image.size-40 .icon{font-size:22px;margin-inline-start:-11px;margin-top:-11px}.user-social-networks{font-size:1em}.user-social-networks,.user-social-networks a{text-decoration:none;color:var(--bodyTextSubtle)}.user-social-networks a{padding:2px}.user-social-networks a:hover{color:var(--bodyText)}.top-user{position:relative;height:110px;margin-top:10px;margin-bottom:10px;height:auto}.phablet .top-user,.tablet .top-user,.top-user.no-background{min-height:160px}.top-user>div{position:absolute;top:0}.top-user .top-user-credentials{position:static;padding-inline-end:220px;clear:both;overflow:visible}.top-user.user-has-no-background .top-user-credentials{overflow:auto}.phone .top-user .top-user-credentials{padding-inline-end:0;padding-inline-start:0;width:100%;margin-bottom:10px;text-align:center;margin-top:-160px}.top-user-avatar{font-size:160px}.desktop .top-user:not(.no-background) .top-user-avatar,.laptop .top-user:not(.no-background) .top-user-avatar{position:absolute;left:50%;margin-inline-start:calc(-.5em - 10px);top:-.5em}.phablet .top-user .user-image,.tablet .top-user .user-image{border:0;margin-inline-end:10px}.top-user .user-image{font-size:1em;width:1em;height:1em;float:left;border-radius:100%}.top-user:not(.no-background) .user-image{border:10px solid var(--bodyBackground)}.top-user:not(.no-background) img.user-image{background:var(--bodyBackground);border:10px solid transparent;box-sizing:content-box;background:rgb(255 255 255 / 10%);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.phablet .top-user:not(.no-background) .user-image,.tablet .top-user:not(.no-background) .user-image{border:0}.top-user.no-background .user-image{margin-inline-end:10px}.phone .top-user.no-background .top-user-credentials{margin-top:initial}.phone .top-user .top-user-credentials>a{display:inline-block}.top-user .header-content-right{inset-inline-end:0}.top-user .header-content-right>*{margin-bottom:10px}.top-user .header-content-right>:last-child{margin-bottom:0}.phone .top-user .header-content-right{position:relative}.phone .top-user .header-content-right>div{margin:10px auto;text-align:center}.phone .top-user .input-search{position:relative;top:auto}.phone .top-user .input-search form{position:relative}.phone .top-user .number-figures{line-height:28px}.top-user h1{font-size:26px;font-weight:700;margin-bottom:5px;margin-top:10px;color:var(--bodyText)}.no-margin-top .top-user h1,.phone .top-user h1{margin-top:0}.top-user h1 a{color:inherit;text-decoration:none}.top-user .user-meta{margin-bottom:10px}.user-meta .icon--lock{margin-inline-end:5px}[dir=rtl] .top-user .user-image{float:right}.phone .top-user .user-image{float:none;margin-inline-start:auto;margin-inline-end:auto;margin-bottom:10px}.phone body.no-margin-top .top-user .user-image{margin-top:10px}.top-user .user-image.no-border{border:none}.top-user .number-figures{margin-top:0}.user-card.avatar{padding-inline-start:70px}.user-card.no-avatar{padding-inline-start:0}.user-card .or-separator{margin-top:5px;margin-bottom:5px}.user-card .user-link{font-size:.93em}.user-card-header h2{font-size:15px;font-weight:400;margin-top:0;margin-bottom:2px}.user-card-header h2 a{color:inherit;text-decoration:none}.tone-dark .user-card-header h2 a{color:#fff}.user-card-header div{color:var(--bodyTextSubtle)}.user-card-footer{overflow:hidden}.user-card-footer .user-social-networks{margin-top:3px}.top-user .input-search .icon--close{top:4px;inset-inline-end:8px}.ad-space{text-align:center}.ad-margin-vertical{margin-top:20px;margin-bottom:20px}.ad-margin-horizontal{margin-inline-start:20px;margin-inline-end:20px}[role=menu]{position:relative;overflow:visible}.menu-box,[role=menu]>.menu-box{z-index:300}[role=menu]>.menu-box{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;max-height:10px;display:block;visibility:hidden;transition:350ms all ease-in-out;opacity:0;transform:translateY(-5px);transform-origin:top;max-height:100vh}[role=menu].opened>.menu-box{visibility:visible;opacity:1;transform:translateY(0)}@media (min-width:768px){[role=menu]>.menu-box{transition:none}}.menu-box{border:0}.menu-box,.menu-box .menu-box-sub>.sub,.menu-box .menu-box-sub>ul{background:var(--bodyBackground);border-radius:3px;box-shadow:0 0 15px 0 rgba(0,0,0,.2);color:var(--bodyText);font-size:14px;font-weight:400;position:absolute;top:100%;list-style:none;min-width:190px;padding:0;margin:0}.menu-box--static{position:static;max-width:190px}.menu-box :not(a),.menu-box [role*=button]{color:var(--bodyText)}.tone-dark .menu-box :not(a),.tone-dark .menu-box [role*=button]{color:#fff}.menu-box ul{margin:0;padding:0}.float-left .menu-box,.pull-left .menu-box,menu-box.anchor-left{inset-inline-start:0}.float-right .menu-box,.menu-box--anchor-right,.pull-right .menu-box{inset-inline-end:0}.menu-box .separator,.menu-box [role=separator],.menu-box hr{display:block;margin:0;padding:0;height:0;border:0;border-top:1px solid #ebebeb}.menu-box--border-separators>*{border-bottom:1px solid #ebebeb}.menu-box--border-separators>:last-child{border-bottom:0}.menu-box--border-separators>hr{display:none}.menu-box .sub,.menu-box [role*=button],.menu-box [role=box],.menu-box li{padding:10px;list-style:none;position:relative;line-height:1.4;clear:both;min-height:40px;display:block}.menu-box [role=box]{cursor:default}.menu-box [role*=button]{padding-inline-start:35px;border-inline-start:2px solid transparent;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-align:start}.menu-box--multiline [role*=button]{white-space:normal}.menu-box--noicons li:not([role=button]){padding-inline-start:0}.menu-box--noicons [role=button]{padding-inline-start:10px;color:inherit}.menu-box [role=button]:hover{border-left-color:#a66bbe}.menu-box .disabled[role=button]{cursor:not-allowed;background:0 0;border-color:transparent!important;opacity:.5}.menu-box li.menu-box-sub{padding-inline-end:34px}.menu-box .menu-box-sub>.sub,.menu-box .menu-box-sub>ul{display:none}.menu-box .menu-box-sub:hover>.sub,.menu-box .menu-box-sub:hover>ul{display:block}.menu-box [role*=button]>.icon,.menu-box li>.icon{font-size:16px;width:16px;height:16px;text-align:center;position:absolute;inset-inline-start:8px;top:50%;margin-top:-8px}.menu-box .menu-box-sub>.icon{inset-inline-start:auto;inset-inline-end:10px}.menu-box .menu-box-sub .sub,.menu-box .menu-box-sub ul{cursor:default;position:absolute;top:0;inset-inline-start:100%}.menu-box .meta{font-size:.93em;display:block}.menu-box .empty{font-size:1em;text-align:center;padding:40px 20px}.menu-box .empty>.icon{font-size:64px;margin-bottom:10px;display:block;color:#ebebeb;position:static}.arrow-navigator a{color:var(--bodyBackground);display:block;text-decoration:none;text-align:center;height:40px;width:40px;position:absolute;top:50%;margin-top:-20px;opacity:.7;padding:10px}.arrow-navigator a.disabled{display:none}.arrow-navigator a:hover{opacity:1}.arrow-navigator a span{display:inline-block;font-size:20px;width:1em;height:1em;text-align:center}.growl{color:var(--alertText);font-size:1.1em;line-height:1.2;background:var(--alertBackground);padding:1em;padding-inline-end:2em;text-align:center;overflow:visible;position:fixed;width:500px;inset-inline-start:50%;top:45px;z-index:9999;cursor:default;border-inline-start:5px solid var(--alertAccent);box-shadow:0 0 15px 5px rgba(0,0,0,.15);border-radius:4px;margin-inline-start:-250px}.growl:empty{display:none}.phone .growl{left:10px;right:10px;width:auto;margin-inline-start:auto}.growl.static{margin-inline-start:auto;position:static;padding-inline-start:10px;padding-inline-end:10px;box-shadow:none;z-index:initial;margin:auto;width:auto}.growl.static.inline{margin:initial;text-align:start;display:inline-block;padding-inline-end:1em;padding-inline-start:1em}.growl .icon{font-size:14px;text-align:center;position:absolute;inset-inline-end:5px;top:7px;cursor:pointer;padding:10px;color:var(--alertText)}.growl-debug-message{text-align:start}.growl-debug-trace{overflow-x:auto;font-size:80%;margin-top:10px}.growl-debug-status{font-style:italic;margin-top:10px;margin-bottom:10px}.flex-center{margin:auto}.width-full{width:100%}.height-full{height:100%}.width-min-full{min-width:100%}.height-min-full{min-height:100%}.fullscreen{position:fixed;top:0;inset-inline-start:0;width:100%;height:100%;overflow:auto;z-index:1000;opacity:0;transition:opacity 350ms linear}.fullscreen.black,.fullscreen.white{-webkit-backdrop-filter:blur(35px) saturate(1.8);backdrop-filter:blur(35px) saturate(1.8)}.black-bkg,.fullscreen.black{background:var(--backgroundDarkAlpha)}.fullscreen.white,.white-bkg{background:var(--backgroundLightAlpha)}.fullscreen.soft-white,.soft-white-bkg{background:rgba(255,255,255,.6)}.ie9 .fullscreen{-webkit-filter:none;filter:none}.fullscreen-loader{width:150px;height:150px;text-align:center;border-radius:10px;color:#fff;margin-top:-75px;margin-inline-start:-75px;position:absolute;top:50%;inset-inline-start:50%;zoom:1}.loading-txt{position:absolute;bottom:15px;inset-inline-start:0;text-align:center;width:100%}#fullscreen-modal{display:none}#fullscreen-modal.--show{display:grid;align-items:center}.ie9 #fullscreen-modal{-webkit-filter:none;filter:none}#fullscreen-modal-box{width:670px;margin:0 auto;padding:20px;position:relative;box-shadow:0 0 50px 6px rgba(0,0,0,.25);border-radius:10px;background:var(--modalBackground);color:var(--modalText)}.--has-scrollbar #fullscreen-modal-box{border-radius:0}.phone #fullscreen-modal-box{width:100%;margin:0;max-height:100%;-webkit-overflow-scrolling:touch;border-radius:0;padding:20px}#fullscreen-modal-box .modal-box-title,#fullscreen-modal-box h1{display:block;margin-top:0;margin-bottom:20px;font-size:20px;line-height:1.2;padding-inline-end:32px}#fullscreen-modal-box h2{font-size:1.14em}#fullscreen-modal-box h2 *{font-weight:400}#fullscreen-modal-box .or-separator{margin-top:16px}#fullscreen-modal-box p{font-size:1em;line-height:160%;margin-top:10px;margin-bottom:10px}#fullscreen-modal-box p:firt-child{margin-top:0}#fullscreen-modal-box .btn-container{margin-bottom:0}#fullscreen-modal-box .close-modal.icon--close{position:absolute;inset-inline-end:10px;top:15px;cursor:pointer;display:block;padding:10px}.phone #fullscreen-modal-box .close-modal.icon--close,.phone #fullscreen-modal-box .close-modal.icon--close:hover{inset-inline-end:10px}.modal-form textarea{height:70px;resize:none}.fancy-box{padding:20px;background:var(--bodyBackground);box-shadow:0 0 50px 6px rgb(0 0 0 / 25%);border-radius:10px}.fancy-box p{-webkit-margin-before:1em;margin-block-start:1em;-webkit-margin-after:1em;margin-block-end:1em}.fancy-box .or-separator{height:1px;margin:0}#fullscreen-changes-confirm{background:var(--bodyBackground);padding:40px 0;margin-top:75px;position:absolute;text-align:center;top:50%;width:100%;box-shadow:0 4px 16px rgba(0,0,0,.25)}.tone-dark #fullscreen-changes-confirm{background:#1e1e1e}#fullscreen-changes-confirm h2{font-size:18px;line-height:18px;color:inherit}.fullscreen-viewer{background:#000;background:rgba(0,0,0,.9);color:#bbb;display:none}.fullscreen-viewer-top{height:50px;width:100%;background:#000}.fullscreen-viewer-navigation,.fullscreen-viewer-top-user{margin-top:8px}.fullscreen-viewer-top-user img{width:34px;height:34px;margin-inline-end:10px}.fullscreen-viewer-navigation{font-size:16px;font-size:1.143rem;height:26px;position:relative;z-index:100}.fullscreen-viewer-navigation a{display:inline-block;color:#bbb;color:rgba(255,255,255,.7);text-decoration:none;padding:8px}.fullscreen-viewer-navigation a:hover{color:#fff}.fullscreen-viewer-navigation a.disabled{color:#bbb;color:rgba(255,255,255,.4);cursor:default}.fullscreen-viewer-content{text-align:center;height:100%;position:relative;display:none}.fullscreen-viewer-content img{max-width:100%;max-height:100%;box-shadow:0 0 6px 0 #000}#cookie-law-banner{position:fixed;padding:10px;width:100%;bottom:0;background:rgba(0,0,0,.8);color:#fff;font-size:1.2em;z-index:1000}#cookie-law-banner p{padding-inline-end:20px}a.cookie-law-close{color:inherit;text-decoration:none;position:absolute;inset-inline-end:0;top:3px;font-size:.72em;opacity:.5}a.cookie-law-close:hover{opacity:1}.badge--paid{text-transform:uppercase;text-align:center;border-radius:3px;padding:2px 5px;display:inline-block;line-height:1;border:1px solid var(--buttonDefaultBorder);color:var(--buttonDefaultHoverText);background-color:var(--buttonDefaultHoverBackground);border-color:var(--buttonDefaultHoverBorder);font-weight:400}.pop-box-menu li .badge{position:absolute;inset-inline-end:8px;top:8px}.badge{vertical-align:text-bottom;font-size:.7143em;transform-origin:right;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.badge+label,.btn .badge{margin-inline-start:5px}.pop-box-menu li.paid a{padding-inline-end:52px}.pop-box-menu li:hover .badge{color:var(--menuItemHoverBackground);background-color:var(--menuItemHoverText);border-color:transparent}.r1{height:30px}.r2{height:70px}.r3{height:110px}.r4{height:150px}.r5{height:190px}.r6{height:230px}.r7{height:270px}.r8{height:310px}.r9{height:350px}.r10{height:390px}.r11{height:430px}.r12{height:470px}.r13{height:510px}.r14{height:550px}.r15{height:590px}.r16{height:630px}.r17{height:670px}.r18{height:710px}.r19{height:750px}.r20{height:790px}.r11{height:830px}.r22{height:870px}.r23{height:910px}.r24{height:950px}.columns-container{overflow:auto}.grid-columns{display:block;float:left}[dir=rtl] .grid-columns{float:right}.gutter-margin-right,.gutter-margin-right-bottom{margin-inline-end:1px}.gutter-margin-bottom,.gutter-margin-left-bottom,.gutter-margin-right-bottom{margin-bottom:1px}.gutter-margin-left,.gutter-margin-left-bottom{margin-inline-start:1px}.gutter-width{width:5px}.col-1-min{min-width:30px}.col-2-min{min-width:70px}.col-3-min{min-width:110px}.col-4-min{min-width:150px}.col-5-min{min-width:190px}.col-6-min{min-width:230px}.col-7-min{min-width:270px}.col-8-min{min-width:310px}.col-9-min{min-width:350px}.col-10-min{min-width:390px}.col-11-min{min-width:430px}.col-12-min{min-width:470px}.col-13-min{min-width:510px}.col-14-min{min-width:550px}.col-15-min{min-width:590px}.col-16-min{min-width:630px}.col-17-min{min-width:670px}.col-18-min{min-width:710px}.col-19-min{min-width:750px}.col-20-min{min-width:790px}.col-21-min{min-width:830px}.col-22-min{min-width:870px}.col-23-min{min-width:910px}.col-24-min{min-width:950px}.col-1-max{max-width:30px}.col-2-max{max-width:70px}.col-3-max{max-width:110px}.col-4-max{max-width:150px}.col-5-max{max-width:190px}.col-6-max{max-width:230px}.col-7-max{max-width:270px}.col-8-max{max-width:310px}.col-9-max{max-width:350px}.col-10-max{max-width:390px}.col-11-max{max-width:430px}.col-12-max{max-width:470px}.col-13-max{max-width:510px}.col-14-max{max-width:550px}.col-15-max{max-width:590px}.col-16-max{max-width:630px}.col-17-max{max-width:670px}.col-18-max{max-width:710px}.col-19-max{max-width:750px}.col-20-max{max-width:790px}.col-21-max{max-width:830px}.col-22-max{max-width:870px}.col-23-max{max-width:910px}.col-24-max{max-width:950px}@media (min-width:768px){.c1{width:30px}.c2{width:70px}.c3{width:110px}.c4{width:150px}.c5{width:190px}.c6{width:230px}.c7{width:270px}.c8{width:310px}.c9{width:350px}.c10{width:390px}.c11{width:430px}.c12{width:470px}.c13{width:510px}.c14{width:550px}.c15{width:590px}.c16{width:630px}.c17{width:670px}.c18{width:710px}.fluid-column.c1{width:3.157%}.fluid-column.c2{width:7.368%}.fluid-column.c3{width:11.578%}.fluid-column.c4{width:15.789%}.fluid-column.c5{width:20%}.fluid-column.c6{width:24.21%}.fluid-column.c7{width:28.421%}.fluid-column.c8{width:32.631%}.fluid-column.c9{width:36.842%}.fluid-column.c10{width:41.052%}.fluid-column.c11{width:45.263%}.fluid-column.c12{width:49.473%}.fluid-column.c13{width:53.684%}.fluid-column.c14{width:57.894%}.fluid-column.c15{width:62.105%}.fluid-column.c16{width:66.315%}.fluid-column.c17{width:70.526%}.fluid-column.c18{width:74.736%}}@media (min-width:992px){.content-width{width:100%;min-width:970px}.c19{width:750px}.c20{width:790px}.c21{width:830px}.c22{width:870px}.c23{width:910px}.c24{width:950px}.fluid-column.c19{width:78.947%}.fluid-column.c20{width:83.157%}.fluid-column.c21{width:87.368%}.fluid-column.c22{width:91.578%}.fluid-column.c23{width:95.789%}.fluid-column.c24{width:100%}.top-btn-text .btn-text{margin-inline-start:7px}.pop-box .arrow-down{border-width:6px 6px 0 6px}}@media (min-width:992px) and (max-width:1920px){.content-width{max-width:1800px}}@media (min-width:1921px) and (max-width:2560px){.content-width{max-width:2440px}}@media (min-width:3840px){.content-width{max-width:3720px}}.color-body-text-subtle{color:var(--bodyTextSubtle)}.color-accent{color:var(--colorAccent)}.color-success{color:var(--colorSuccess)}.color-fail{color:var(--colorFail)}.color-white{color:#fff!important}.color-black{color:#333!important}.color-grey{color:#ccc!important}.color-green{color:#27ae61!important}.color-red{color:#e74c3c!important}.color-blue{color:var(--colorBlue)!important}.color-orange{color:#d35400!important}.color-purple{color:#8e44ad!important}.color-inherit{color:inherit!important}.color-initial{color:initial!important}.height-auto{height:auto}.width-auto{width:auto}.height-100p{height:100%}.width-100p{width:100%}.color-facebook{color:#3b5998}.color-twitter{color:#1da1f2}.color-google{color:#ea4335}.color-vk{color:#45668e}.border-color-facebook{border-color:#3b5998}.border-color-twitter{border-color:#1da1f2}.border-color-google{border-color:#ea4335}.border-color-vk{border-color:#45668e}.opacity-10{opacity:.1}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-100{opacity:1}.background-black{background:#000!important}.background-white{background:#fff!important}.background-transparent{background:0 0!important}.background-gradient-white-left{background:linear-gradient(to right,rgba(255,255,255,0) 0,rgba(255,255,255,1) 35%,rgba(255,255,255,1) 100%)}.background-gradient-white-right{background:linear-gradient(to right,rgba(255,255,255,1) 0,rgba(255,255,255,1) 80%,rgba(255,255,255,0) 100%)}.font-weight-bold{font-weight:700!important}.font-weight-normal{font-weight:400!important}.cursor-pointer{cursor:pointer!important}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-default{cursor:default!important}.cursor-zoom-in{cursor:zoom-in}.cursor-zoom-out{cursor:zoom-out}.font-size-small{font-size:small!important}.font-size-medium{font-size:medium!important}.font-size-large{font-size:large!important}.font-size-inherit{font-size:inherit!important}.font-size-10{font-size:10px!important}.font-size-11{font-size:11px!important}.font-size-12{font-size:12px!important}.font-size-13{font-size:13px!important}.font-size-14{font-size:14px!important}.font-size-15{font-size:15px!important}.font-size-16{font-size:16px!important}.font-size-17{font-size:17px!important}.font-size-18{font-size:18px!important}.height-100p{height:100%!important}.height-120p{height:120%!important}.top-0{top:0}.top-10{top:10px}.top-20{top:20px}.top-30{top:30px}.top-40{top:40px}.right-0{inset-inline-end:0}.right-10{inset-inline-end:10px}.right-20{inset-inline-end:20px}.right-30{inset-inline-end:30px}.right-40{inset-inline-end:40px}.bottom-0{bottom:0}.bottom-10{bottom:10px}.bottom-20{bottom:20px}.bottom-30{bottom:30px}.bottom-40{bottom:40px}.left-0{inset-inline-start:0}.left-10{inset-inline-start:10px}.left-20{inset-inline-start:20px}.left-30{inset-inline-start:30px}.left-40{inset-inline-start:40px}.display-none{display:none}.display-none-forced{display:none!important}.display-block{display:block}.display-block-forced{display:block!important}.display-flex{display:-moz-flex;display:flex}.visibility-hidden{visibility:hidden}.clear-both{clear:both}.float-left{float:left}[dir=rtl] .float-left{float:right}.float-right{float:right}[dir=rtl] .float-right{float:left}.border-0,.no-border{border:none}.border-top-0{border-top:0}.border-right-0{border-inline-end:0}.border-bottom-0{border-bottom:0}.border-left-0{border-inline-start:0}.box-shadow-none{box-shadow:none}.word-break-break-all{word-break:break-all}.word-break-break-word{word-break:break-word}.margin-0{margin:0!important}.margin-5{margin:5px!important}.margin-10{margin:10px!important}.margin-20{margin:20px!important}.margin-30{margin:20px!important}.margin-40{margin:20px!important}.margin-top-0,.phablet .phablet-margin-top-0,.phone .phone-margin-top-0{margin-top:0!important}.margin-top-5,.phablet .phablet-margin-top-5,.phone .phone-margin-top-5{margin-top:5px!important}.margin-top-10,.phablet .phablet-margin-top-10,.phone .phone-margin-top-10{margin-top:10px!important}.margin-top-20,.phablet .phablet-margin-top-20,.phone .phone-margin-top-20{margin-top:20px!important}.margin-top-30{margin-top:30px!important}.margin-top-40{margin-top:40px!important}.margin-right-auto{margin-inline-end:auto!important}.margin-right-0,.phablet .phablet-margin-right-0,.phone .phone-margin-right-0{margin-inline-end:0!important}.margin-right-035em{margin-inline-end:.35em!important}.margin-right-5{margin-inline-end:5px!important}.margin-right-10{margin-inline-end:10px!important}.margin-right-20{margin-inline-end:20px!important}.margin-right-30{margin-inline-end:30px!important}.margin-right-40{margin-inline-end:40px!important}.margin-bottom-0,.phablet .phablet-margin-bottom-0,.phone .phone-margin-bottom-0{margin-bottom:0!important}.margin-bottom-5{margin-bottom:5px!important}.margin-bottom-10,.phablet .phablet-margin-bottom-10,.phone .phone-margin-bottom-10{margin-bottom:10px!important}.margin-bottom-20,.phablet .phablet-margin-bottom-20,.phone .phone-margin-bottom-20{margin-bottom:20px!important}.margin-bottom-30{margin-bottom:30px!important}.margin-bottom-40{margin-bottom:40px!important}.margin-left-auto{margin-inline-start:auto!important}.margin-left-0,.phablet .phablet-margin-left-0,.phone .phone-margin-left-0{margin-inline-start:0!important}.margin-right--10{margin-inline-end:-10px!important}.margin-left--10{margin-inline-start:-10px!important}.margin-left-5{margin-inline-start:5px!important}.margin-left-10{margin-inline-start:10px!important}.margin-left-20{margin-inline-start:20px!important}.margin-left-30{margin-inline-start:30px!important}.margin-left-40{margin-inline-start:40px!important}.padding-5{padding:5px!important}.padding-10{padding:10px!important}.padding-20{padding:20px!important}.padding-30{padding:20px!important}.padding-40{padding:20px!important}.padding-top-5{padding-top:5px!important}.padding-top-0{padding-top:0!important}.padding-top-10{padding-top:10px!important}.padding-top-20{padding-top:20px!important}.padding-top-30{padding-top:30px!important}.padding-top-40{padding-top:40px!important}.padding-right-5{padding-inline-end:5px!important}.padding-right-0{padding-inline-end:0!important}.padding-right-10{padding-inline-end:10px!important}.padding-right-20{padding-inline-end:20px!important}.padding-right-30{padding-inline-end:30px!important}.padding-right-40{padding-inline-end:40px!important}.padding-bottom-5{padding-bottom:5px!important}.padding-bottom-0{padding-bottom:0!important}.padding-bottom-10{padding-bottom:10px!important}.padding-bottom-20{padding-bottom:20px!important}.padding-bottom-30{padding-bottom:30px!important}.padding-bottom-40{padding-bottom:40px!important}.padding-left-5{padding-inline-start:5px!important}.padding-left-0{padding-inline-start:0!important}.padding-left-10{padding-inline-start:10px!important}.padding-left-20{padding-inline-start:20px!important}.padding-left-30{padding-inline-start:30px!important}.padding-left-40{padding-inline-start:40px!important}.position-sticky{position:-webkit-sticky;position:sticky}.position-static{position:static}.position-relative{position:relative}.position-absolute{position:absolute}.position-fixed{position:fixed}.text-align-left{text-align:start}.text-align-center{text-align:center}.text-align-right{text-align:end}.text-align-justify{text-align:justify}.text-decoration-none{text-decoration:none!important}.display-block{display:block}.display-inline{display:inline}.display-inline-table{display:inline-table}.display-inline-block{display:inline-block}.display-table-cell{display:table-cell}.word-break-break-all{word-break:break-all}.list-style-position-inside li{list-style-position:inside!important}.list-style-position-outside li{list-style-position:outside!important}.list-style-type-disc li{list-style-type:disc!important}.list-style-type-decimal li{list-style-type:decimal!important}.center-box{margin-inline-end:auto!important;margin-inline-start:auto!important}.display-inline-block,.display-table-cell{zoom:1}.vertical-align-middle{vertical-align:middle!important}.resize-vertical{resize:vertical!important}.no-resize,.resize-none{resize:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-y-auto{overflow-y:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-y-visible{overflow-y:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-scroll{overflow-y:scroll!important}.text-transform-capitalize{text-transform:capitalize}.text-transform-uppercase{text-transform:uppercase}.default-margin-top{margin-top:20px}.default-margin-bottom{margin-bottom:20px}.float-none{float:none!important;clear:both!important}.desktop .desktop-hide,.laptop .laptop-hide,.largescreen .desktop-hide,.phablet .phablet-hide,.phone .phone-hide,.tablet .tablet-hide{display:none!important}.desktop .desktop-display-block,.desktop .desktop-show,.laptop .laptop-display-block,.laptop .laptop-show,.largescreen .desktop-display-block,.largescreen .desktop-show,.phablet .phablet-display-block,.phablet .phablet-show,.phone .phone-display-block,.phone .phone-show,.tablet .tablet-display-block,.tablet .tablet-show{display:block!important}.desktop .desktop-display-inline,.laptop .laptop-display-inline,.phablet .phablet-display-inline,.phone .phone-display-inline,.tablet .tablet-display-inline{display:inline!important}.desktop .desktop-display-inline-block,.laptop .laptop-display-inline-block,.phablet .phablet-display-inline-block,.phone .phone-display-inline-block,.tablet .tablet-display-inline-block{display:inline-block!important}.image-responsive{max-width:100%!important;width:auto!important}.desktop .desktop-float-none,.laptop .laptop-float-none,.phablet .phablet-float-none,.phone .phone-float-none,.tablet .tablet-float-none{float:none;clear:both}.phablet .grid-columns,.phone .grid-columns{float:none;margin-inline-start:0;margin-inline-end:0}.phablet .phablet-float-left,.phone .phone-float-left{float:left!important}[dir=rtl].phablet .phablet-float-left,[dir=rtl].phone .phone-float-left{float:right!important}.phablet .phablet-c1,.phone .fluid-column.phablet-c1,.phone .fluid-column.phone-c1,.phone .phone-c1{width:100%}.phablet .phablet-text-align-left,.phone .phone-text-align-left{text-align:left!important}.phablet .phablet-text-align-center,.phone .phone-text-align-center{text-align:center!important}#tiptip_holder{display:none;position:absolute;top:0;inset-inline-start:0;z-index:99999}#tiptip_holder.tip_top{padding-bottom:5px}#tiptip_holder.tip_bottom{padding-top:5px}#tiptip_holder.tip_right{padding-inline-start:5px}#tiptip_holder.tip_left{padding-inline-end:5px}#tiptip_content{font-size:12px;color:#fff;padding:6px 8px;background-color:#333;background-color:rgba(0,0,0,.8);word-break:break-word}#tiptip_arrow,#tiptip_arrow_inner{position:absolute;border-color:transparent;border-style:solid;border-width:6px;height:0;width:0}#tiptip_holder.tip_top #tiptip_arrow_inner{margin-top:-6px;margin-inline-start:-7px;border-top-color:#333;border-top-color:rgba(0,0,0,.8)}.tone-dark #tiptip_holder.tip_top #tiptip_arrow_inner{border-top-color:#fff;border-top-color:rgba(255,255,255,.95)}#tiptip_holder.tip_bottom #tiptip_arrow_inner{margin-top:-6px;margin-inline-start:-7px;border-bottom-color:#333;border-bottom-color:rgba(0,0,0,.8)}.tone-dark #tiptip_holder.tip_bottom #tiptip_arrow_inner{border-bottom-color:#fff;border-bottom-color:rgba(255,255,255,.95)}#tiptip_holder.tip_right #tiptip_arrow_inner{margin-top:-6px;margin-inline-start:-6px;border-right-color:#333;border-right-color:rgba(0,0,0,.8)}.tone-dark #tiptip_holder.tip_right #tiptip_arrow_inner{border-right-color:#fff;border-right-color:rgba(255,255,255,.95)}#tiptip_holder.tip_left #tiptip_arrow_inner{margin-top:-6px;margin-inline-start:-6px;border-left-color:#333;border-left-color:rgba(0,0,0,.8)}.tone-dark #tiptip_holder.tip_left #tiptip_arrow_inner{border-left-color:#fff;border-left-color:rgba(255,255,255,.95)}.antiscroll-wrap{display:block;position:relative;overflow:hidden}.antiscroll-scrollbar{background:gray;background:rgba(0,0,0,.5);border-radius:7px;box-shadow:0 0 1px #fff;position:absolute;opacity:0;-webkit-transition:linear 350ms opacity;-moz-transition:linear 350ms opacity;-o-transition:linear 350ms opacity}.antiscroll-scrollbar-shown{opacity:1}.antiscroll-scrollbar-horizontal{height:7px;margin-inline-start:2px;bottom:2px;inset-inline-start:0}.antiscroll-scrollbar-vertical{width:7px;margin-top:2px;inset-inline-end:2px;top:0}.antiscroll-inner{overflow:scroll}.antiscroll-inner::-webkit-scrollbar{width:0;height:0}.antiscroll-inner::scrollbar{width:0;height:0}#recaptcha_table.recaptcha_theme_clean #recaptcha_image{border:0!important}#recaptcha_response_field{height:auto}.copy-hover-display button.copy-input,.copy-hover-display button.input-action{visibility:hidden}.copy-hover-display:hover button.copy-input,.copy-hover-display:hover button.input-action,.phablet button.copy-input,.phablet button.input-action,.phone button.copy-input,.phone button.input-action{visibility:visible}button.copy-input,button.input-action{position:absolute;inset-inline-end:7px;top:.8181em;text-transform:uppercase;cursor:pointer;line-height:1;font-size:11px;padding:4px 6px;border-radius:4px;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}button.copy-input,button.input-action{background:var(--buttonDefaultBackground);color:var(--buttonDefaultText)}button:hover.copy-input,button:hover.input-action{background:var(--buttonDefaultHoverBackground);color:var(--buttonDefaultHoverText)}.shake{-webkit-animation:shake .82s cubic-bezier(.36,.07,.19,.97) both;animation:shake .82s cubic-bezier(.36,.07,.19,.97) both}@-webkit-keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}.key-feedback{line-height:1;background:rgba(0,0,0,.7);position:fixed;z-index:10000;-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);bottom:1.5em;transition:all .5s;opacity:0;text-align:center;color:#fff;font-weight:700;font-size:45px;padding:1em;border-radius:.5em;inset-inline-start:50%;transform:translateX(-50%);border:4px solid rgba(255,255,255,.9);box-shadow:0 0 50px 6px rgb(0 0 0 / 25%);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}img.qr{display:inline-block}.fa-vkontakte:before{content:"\f189"}.fab.fa-mailru{font-family:"Font Awesome 5 Free";font-weight:900}.fa-mailru:before{content:"\f1fa"}.fa-stackexchange:before{content:"\f18d"}.fa-twitchtv:before{content:"\f1e8"}.fa-wechat:before{content:"\f1d7"} \ No newline at end of file diff --git a/content/legacy/themes/Peafowl/lib/peafowl.min.js b/content/legacy/themes/Peafowl/lib/peafowl.min.js index 3227962..0e07c91 100644 --- a/content/legacy/themes/Peafowl/lib/peafowl.min.js +++ b/content/legacy/themes/Peafowl/lib/peafowl.min.js @@ -1,5 +1,5 @@ -function sprintf(){var t=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,e=arguments,n=0,i=e[n++],o=function(t,e,n,i){n||(n=" ");var o=t.length>=e?"":new Array(1+e-t.length>>>0).join(n);return i?t+o:o+t},r=function(t,e,n,i,r,a){var s=i-t.length;return s>0&&(t=n||!r?o(t,i,a,n):t.slice(0,e.length)+o("",s,"0",!0)+t.slice(e.length)),t},a=function(t,e,n,i,a,s,l){var c=t>>>0;return n=n&&c&&{2:"0b",8:"0",16:"0x"}[e]||"",t=n+o(c.toString(e),s||0,"0",!1),r(t,n,i,a,l)},s=function(t,e,n,i,o,a){return null!=i&&(t=t.slice(0,i)),r(t,"",e,n,o,a)},l=function(t,i,l,c,u,d,h){var f,p,g,m,b;if("%%"===t)return"%";for(var v=!1,y="",w=!1,P=!1,$=" ",x=l.length,F=0;l&&F-1?6:"d"===h?0:void 0,b=i?e[i.slice(0,-1)]:e[n++],h){case"s":return s(String(b),v,c,d,w,$);case"c":return s(String.fromCharCode(+b),v,c,d,w);case"b":return a(b,2,P,v,c,d,w);case"o":return a(b,8,P,v,c,d,w);case"x":return a(b,16,P,v,c,d,w);case"X":return a(b,16,P,v,c,d,w).toUpperCase();case"u":return a(b,10,P,v,c,d,w);case"i":case"d":return f=+b||0,f=Math.round(f-f%1),p=f<0?"-":y,b=p+o(String(Math.abs(f)),d,"0",!1),r(b,p,v,c,w);case"e":case"E":case"f":case"F":case"g":case"G":return f=+b,p=f<0?"-":y,g=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],m=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],b=p+Math.abs(f)[g](d),r(b,p,v,c,w)[m]();default:return t}};return i.replace(t,l)}function testPassword(t){var e=0,n="weak",i="",o=0;return t.length<5?(e+=3,i=i+"3 points for length ("+t.length+")\n"):t.length>4&&t.length<8?(e+=6,i=i+"6 points for length ("+t.length+")\n"):t.length>7&&t.length<16?(e+=12,i=i+"12 points for length ("+t.length+")\n"):t.length>15&&(e+=18,i=i+"18 point for length ("+t.length+")\n"),t.match(/[a-z]/)&&(e+=1,i+="1 point for at least one lower case char\n"),t.match(/[A-Z]/)&&(e+=5,i+="5 points for at least one upper case char\n"),t.match(/\d+/)&&(e+=5,i+="5 points for at least one number\n"),t.match(/(.*[0-9].*[0-9].*[0-9])/)&&(e+=5,i+="5 points for at least three numbers\n"),t.match(/.[!,@,#,$,%,^,&,*,?,_,~]/)&&(e+=5,i+="5 points for at least one special char\n"),t.match(/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/)&&(e+=5,i+="5 points for at least two special chars\n"),t.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)&&(e+=2,i+="2 combo points for upper and lower letters\n"),t.match(/([a-zA-Z])/)&&t.match(/([0-9])/)&&(e+=2,i+="2 combo points for letters and numbers\n"),t.match(/([a-zA-Z0-9].*[!,@,#,$,%,^,&,*,?,_,~])|([!,@,#,$,%,^,&,*,?,_,~].*[a-zA-Z0-9])/)&&(e+=2,i+="2 combo points for letters, numbers and special chars\n"),0==t.length&&(e=0),n=e<16?"very weak":e>15&&e<25?"weak":e>24&&e<35?"average":e>34&&e<45?"strong":"stronger",o=Math.round(Math.min(100,100*e/45))/100,{score:e,ratio:o,percent:100*o+"%",verdict:n,log:i}}$(function(){var t={url:PF.obj.config.json_api,cache:!1,dataType:"json",data:{auth_token:PF.obj.config.auth_token}};void 0!==PF.obj.config.session_id&&(t.data.session_id=PF.obj.config.session_id),$.ajaxSetup(t),$(window).bind("beforeunload",function(){if("continue"!=$("form",PF.obj.modal.selectors.root).data("beforeunload"))return $(PF.obj.modal.selectors.root).is(":visible")&&PF.fn.form_modal_has_changed()?' '+PF.fn._s("All the changes that you have made will be lost if you continue."):void 0});let e=0;const n=void 0!==window.pageXOffset,i="CSS1Compat"===(document.compatMode||""),o=function(){let t,o=n?window.pageYOffset:i?document.documentElement.scrollTop:document.body.scrollTop;return t=o>e,e=o,t};var r;window.addEventListener("scroll",function(){r||(r=!0,setTimeout(function(){var t=o();$("#top-bar, .follow-scroll").each(function(){"1"!==$(this).attr("data-scroll-lock")&&$(this).addClass("scroll-"+(t?"down":"up")).removeClass("scroll-"+(t?"up":"down"))}),r=!1},250))}),$(window).bind("hashchange",function(){"#edit"!=window.location.hash||$(PF.obj.modal.selectors.root).exists()||$("[data-modal=edit]").first().click()}),PF.fn.bindtipTip();var a,s=0,l=$(window).width();if($(window).on("resize",function(){PF.fn.modal.styleAware(),PF.fn.close_pops(),clearTimeout(a),a=setTimeout(function(){PF.fn.modal.fixScrollbars();var t=PF.fn.getDeviceName(),e=["phone","phablet"],n=["tablet","laptop","desktop"],i=PF.fn.getDeviceName();(i!==t&&$.inArray(t,e)>=0&&-1==$.inArray(i,e)||$.inArray(t,n)>=0&&-1==$.inArray(i,n))&&PF.fn.close_pops(),$(".top-bar").css("top",""),$("body").css({position:"",height:""}),$(".antiscroll").removeClass("jsly").data("antiscroll",""),$(".antiscroll-inner").css({height:"",width:"",maxheight:""}),PF.fn.list_fluid_width(),l!==$(window).width()&&($(PF.obj.listing.selectors.list_item,PF.obj.listing.selectors.content_listing_visible).css("opacity",0),$("[data-action=top-bar-menu-full]","#top-bar").hasClass("current")&&PF.fn.topMenu.hide(0),PF.fn.listing.columnizer(!0,0,!0),$(PF.obj.listing.selectors.list_item,PF.obj.listing.selectors.content_listing_visible).css("opacity",1)),l=$(window).width()},s)}),$(document).on("click","html",function(){PF.fn.close_pops()}),$(document).on("keydown",".numeric-input",function(t){t.keydown_numeric()}),$(document).on("click","[data-scrollto]",function(t){var e=$(this).data("scrollto"),n=$(e.match(/^\#|\./)?e:"#"+e);n.exists()?PF.fn.scroll(n):console.log("PF scrollto error: target doesn't exists",n)}),$(document).on("click focus","[data-login-needed], [data-user-logged=must]",function(t){if(!PF.fn.is_user_logged())return t.preventDefault(),t.stopPropagation(),window.location.href=PF.obj.vars.urls.login,!1}),$(document).on("click","[data-trigger]",function(t){if(t.isPropagationStopped())return!1;var e=$(this).data("trigger"),n=$(e.match(/^\#|\./)?e:"#"+e);n.exists()?(t.stopPropagation(),t.preventDefault(),n.closest(PF.obj.modal.selectors.root).length||PF.fn.modal.close(),n.trigger("click")):console.log("PF trigger error: target doesn't exists",n)}),$("form[method=post]").each(function(){$("input[name=auth_token]",this).exists()||$(this).append($("",{type:"hidden",name:"auth_token",value:PF.obj.config.auth_token}))}),$(document).on("click",".clear-form",function(){$(this).closest("form")[0].reset()}),$(document).on("submit","form[data-action=validate]",function(t){$(this).data("type");var e=!1,n=$(this).find("[required], [data-validate]");if(n.each(function(){var t=$(this).attr("type"),n=$(this).attr("pattern"),i=function(t){$(t).highlight(),e=!0};if($(this).is("[required]")&&""==$(this).val()){if($(this).is(":hidden")){var o=$($($(this).data("highlight")).exists()?$(this).data("highlight"):"#"+$(this).data("highlight"));$(o).highlight()}i(this)}if(void 0===n&&0==/mail|url/.test(t))return!0;n&&(n=new RegExp(n),n.test($(this).val())||i(this)),"email"!=t||$(this).val().isEmail()||i(this)}),e)return PF.fn.growl.expirable(PF.fn._s("Check the errors in the form to continue.")),!1}),$(document).on("change","select[data-combo]",function(){var t=$("#"+$(this).data("combo"));t.exists()&&t.children(".switch-combo").hide();var e=$("#"+$(this).closest("select").data("combo")),n=$("[data-combo-value~="+$("option:selected",this).attr("value")+"]",e);n.exists()&&n.show().find("[data-required]").each(function(){$(this).attr("required","required")}),$(".switch-combo",e).each(function(){$(this).is(":visible")||$("[required]",this).attr("data-required",!0).removeAttr("required")})}),$(document).on("keyup",function(t){var e=$(t.target),n=t.originalEvent;"Escape"==n.key&&$(PF.obj.modal.selectors.root).is(":visible")&&(e.is(":input")?e.trigger("blur"):$("[data-action=cancel],[data-action=close-modal]",PF.obj.modal.selectors.root).first().trigger("click"),PF.fn.keyFeedback.spawn(t))}),$(document).on("change",":input",function(t){PF.fn.growl.close()}),$(document).on("keyup",":input",function(t){$(".input-warning",$(this).closest(".input-label")).html("")}),$(document).on("blur",":input",function(){var t=$.trim($(this).prop("value"));$(this).prop("value",t)}),$(document).on("click","[data-focus=select-all],[data-click=select-all]",function(){if($(this).is(":input"))this.select();else{var t=document.createRange();t.selectNodeContents(this);var e=window.getSelection();e.removeAllRanges(),e.addRange(t)}}),$(document).on("keyup change blur",":input[type=password]",function(){var t=testPassword($(this).val()),e=$(this).closest("div");""==$(this).val()&&(t.percent=0,t.verdict=""),$("[data-content=password-meter-bar]",e).attr("data-veredict",t.verdict.replace(/ /g,"-")).width(t.percent),$("[data-text=password-meter-message]",e).removeClass("red-warning").text(""!==t.verdict?PF.fn._s(t.verdict):"")}),$(document).on("click","[rel=popup-link], .popup-link",function(t){t.preventDefault();var e=$(this)[void 0!==$(this).attr("href")?"attr":"data"]("href");if(void 0!==e){if(PF.fn.isDevice(["phone","phablet"])){if("mailto"==e.substring(0,6))return void(window.location=e);if("share"==e.substring(0,5))return void(navigator.canShare&&navigator.share(PF.fn.deparam(e.substring(6))))}PF.fn.popup({href:e})}}),$(document).on("click","[data-modal=simple],[data-modal=html]",function(){var t=$("[data-modal="+$(this).data("target")+"], #"+$(this).data("target")).first();PF.fn.modal.call({template:t.html(),buttons:!1})}),$(document).on("submit",PF.obj.modal.selectors.root+" form",function(t){return!$(this).data("prevented")&&(void 0!==$(this).attr("method")&&void 0)}),$(document).on("click","[data-modal=edit],[data-modal=form],[data-confirm]",function(t){t.preventDefault();var e,n=$(this);n.is("[data-confirm]")?(e=n,PF.obj.modal.type="confirm"):(e=$("[data-modal="+n.data("target")+"], #"+n.data("target")).first(),0==e.length&&(e=$("[data-modal=form-modal], #form-modal").first()),0==e.length&&console.log("PF Error: Modal target doesn't exists."),PF.obj.modal.type=n.data("modal"));var i=n.data("args"),o=window[e.data("submit-fn")],r=window[e.data("cancel-fn")],a=(window[e.data("load-fn")],e.data("submit-done")),s={url:e.data("ajax-url")||(void 0!==e.data("is-xhr")?PF.obj.config.json_api:null),deferred:window[e.data("ajax-deferred")]};if("function"!=typeof o&&e.data("submit-fn")){var l=e.data("submit-fn").split(".");o=window;for(var c=0;c

    '+PF.fn._s("All the changes that you have made will be lost if you continue.")+'

    '+PF.fn._s("or")+' '+PF.fn._s("continue anyway")+"
    "),$(PF.obj.modal.selectors.changes_confirm).css("margin-top",-$(PF.obj.modal.selectors.changes_confirm).outerHeight(!0)/2).hide().fadeIn("fast")}else PF.fn.modal.close(),"#edit"==window.location.hash&&(window.location.hash="")},load:function(){"function"==typeof load_function&&load_function()},callback:function(){},ajax:s};PF.fn.modal.call($.extend(m,g))}}),PF.fn.is_user_logged()||$("[data-login-needed]:input, [data-user-logged=must]:input").each(function(){$(this).attr("readonly",!0)}),$(document).on("keydown","html",function(t){var e=$(t.target),n=t.originalEvent;if("Escape"!==n.key){var i="Enter"===n.key&&(n.ctrlKey||n.metaKey),o=e.is(":input.search, textarea")||e.closest(".input-with-button").exists();if(!o&&e.is(":input")&&"Enter"===n.key&&!i)return t.stopPropagation(),void t.preventDefault();if($(PF.obj.modal.selectors.root).exists()){if(i||"Enter"!==n.key||!$("[data-action=submit]",PF.obj.modal.selectors.root).exists()||e.is(".prevent-submit")||(i=!0),!i)return;$("[data-action=submit]",PF.obj.modal.selectors.root).trigger("click")}else if(i){var r=e.is(":input")?e.closest("form"):$("form",".form-content:visible").first();r.trigger("submit")}i&&PF.fn.keyFeedback.spawn(t)}else PF.fn.growl.close()}),window.location.hash&&"#edit"==window.location.hash&&$("[data-modal=edit]").first().click(),$(document).on("click","#menu-fullscreen .fullscreen, [data-action=top-bar-menu-full]",function(t){if(!$(t.target).is("#pop-box-mask")){var e=$("[data-action=top-bar-menu-full]","#top-bar").hasClass("current");if(PF.fn.topMenu[e?"hide":"show"](),Boolean(window.navigator.vibrate)){var n=e?[15,200,15]:[15,200,25,125,15];window.navigator.vibrate(0),window.navigator.vibrate(n)}}}),$(document).on("click","[data-action=top-bar-search]",function(){$("[data-action=top-bar-search-input]",".top-bar").removeClass("hidden").show(),$("[data-action=top-bar-search-input]:visible input").first().focus(),is_ios()&&!$(this).closest(PF.fn.topMenu.vars.menu).exists()&&$(".top-bar").css("position","absolute"),$("[data-action=top-bar-search]",".top-bar").hide()}),$(document).on("click",".input-search .icon--search",function(t){$("input",t.currentTarget.offsetParent).focus()}),$(document).on("click",".input-search .icon--close, .input-search [data-action=clear-search]",function(t){var e=$("input",t.currentTarget.offsetParent);""==e.val()?$(this).closest("[data-action=top-bar-search-input]").exists()&&($("[data-action=top-bar-search-input]",".top-bar").hide(),$("[data-action=top-bar-search]",".top-bar").removeClass("opened").show()):($(this).closest("[data-action=top-bar-search-input]").exists()||$(this).hide(),e.val("").change())}),$(document).on("keyup change","input.search",function(t){var e=$(this),n=$(this).closest(".input-search");if(!$(this).closest("[data-action=top-bar-search-input]").exists()){var i=""==e.val()?"hide":"show";$(".icon--close, [data-action=clear-search]",n)[i]()}}),$(document).on("click mouseenter",".pop-btn",function(t){if(!PF.fn.isDevice(["phone","phablet"])||"mouseenter"!=t.type&&!$(this).hasClass("pop-btn-desktop")){var e,n,i=$(t.target),o=$.makeArray(["phone","phablet"]),r=$(this);if(("mouseenter"!=t.type||$(this).hasClass("pop-btn-auto"))&&!$(this).hasClass("disabled")&&(!i.closest(".current").exists()||PF.fn.isDevice("phone")||i.closest(".pop-btn-show").exists())){if(PF.fn.growl.close(),t.stopPropagation(),e=$(this),n=$(".pop-box",e),e.addClass("opened"),$(".pop-box-inner",n).css("max-height",""),PF.fn.isDevice(o)){var a=$(".pop-btn-text,.btn-text,.text",e).first().text(),s=$(".pop-btn-icon,.btn-icon,.icon",e)[0].outerHTML;$(".pop-box-header",n).exists()||n.prepend($("
    ",{class:"pop-box-header",html:s+" "+a+''}),$("
    ",{class:"hidden phone-show phablet-show or-separator margin-top-0 margin-bottom-0"}))}else $(".pop-box-header",n).remove(),n.css({bottom:""});if(n.hasClass("anchor-center")&&void 0===n.data("guidstr")&&(PF.fn.isDevice(o)?n.css("margin-left",""):n.css("margin-left",-n.width()/2)),i.is("[data-change]")&&($("li",n).removeClass("current"),i.closest("li").addClass("current"),$("[data-text-change]",e).text($("li.current a",n).text()),t.preventDefault()),n.exists()){r=t.istriggered?$(t.target):$(this);if(!(n.is(":visible")&&$(t.target).closest(".pop-box-inner").exists()&&r.hasClass("pop-keep-click"))){$(".pop-box:visible").not(n).hide().closest(".pop-btn").removeClass("opened");var l=function(t){if(t.is(":visible"))if(PF.fn.isDevice(o))$(".antiscroll-inner",t).height("100%");else{var e=t.css("marginLeft");void 0!==e&&(e=parseFloat(e),t.css("marginLeft",""));var n=t.getWindowCutoff();if(n&&(n.left||n.right)&&n.right'+a.join()+" { left: "+i+"px; }").appendTo("head")}else t.css("marginLeft",e+"px");$(".antiscroll-wrap:not(.jsly):visible",t).addClass("jsly").antiscroll()}else{var s=t.attr("data-guidstr");t.css("marginLeft","").removeClass(s).removeAttr("data-guidstr").closest(".pop-btn").removeClass("opened"),void 0!==s&&$("style#"+s).remove()}};if(PF.fn.isDevice(o)){$(this).is("[data-action=top-bar-notifications]")&&n.css({height:$(window).height()});var c=n.height()+"px";parseInt($(".top-bar").outerHeight()),parseInt($(".top-bar").css("top")),parseInt($(".top-bar").css("margin-top")),parseInt($(".top-bar").css("margin-bottom"));n.is(":visible")?($("#pop-box-mask").css({opacity:0}),n.css({transform:"none"}),r.closest(PF.fn.topMenu.vars.menu).exists()&&$(".top-bar").css({transform:"none"}),setTimeout(function(){if(n.hide().attr("style",""),$("#pop-box-mask").remove(),l(n),r.closest(PF.fn.topMenu.vars.menu).exists()&&($(PF.fn.topMenu.vars.menu).css({height:""}),$(PF.fn.topMenu.vars.menu).animate({scrollTop:PF.fn.topMenu.vars.scrollTop},PF.obj.config.animation.normal/2)),!$("body").data("hasOverflowHidden")){var t="pop-box-show pop-box-show--top";$(PF.obj.modal.selectors.root).exists()||(t+=" overflow-hidden"),$("body").removeClass(t)}n.find(".pop-box-inner").css("height","")},PF.obj.config.animation.normal)):($("#pop-box-mask").remove(),n.parent().prepend($("
    ",{id:"pop-box-mask",class:"fullscreen black"}).css({zIndex:400,display:"block"})),PF.fn.topMenu.vars.scrollTop=$(PF.fn.topMenu.vars.menu).scrollTop(),setTimeout(function(){$("#pop-box-mask").css({opacity:1}),setTimeout(function(){n.show().css({bottom:"-"+c,maxHeight:"100%",zIndex:1e3,transform:"translate(0,0)"}),setTimeout(function(){n.find(".pop-box-inner").scrollTop(0)},1),setTimeout(function(){n.css({transform:"translate(0,-"+c+")"})},1),setTimeout(function(){l(n)},PF.obj.config.animation.normal),$("body").hasClass("overflow-hidden")?$("body").data("hasOverflowHidden",1):$("body").addClass("overflow-hidden "+(r.closest(".top-bar").exists()?"pop-box-show--top":"pop-box-show")),$(".pop-box-inner",n).css("height",n.height()-$(".pop-box-header",n).outerHeight(!0))},1)},1))}else n[n.is(":visible")?"hide":"show"](0,function(){l(n)})}}}}}).on("mouseleave",".pop-btn",function(){if(PF.fn.isDevice(["laptop","desktop"])){var t=$(this),e=$(".pop-box",t);!t.hasClass("pop-btn-auto")||PF.fn.isDevice(["phone","phablet"])&&t.hasClass("pop-btn-auto")||e.hide().closest(".pop-btn").removeClass("opened")}}),window.location.hash,$(".content-tabs").exists()){var c=$("a",".content-tabs .current");History.replaceState({href:c.attr("href"),"data-tab":c.data("tab"),pushed:"tabs",statenum:0},null,null)}var u=History.getState();void 0===u.data&&History.replaceState({scrollTop:0},document.title,window.location.href),History.Adapter.bind(window,"popstate",function(){var t=History.getState();t.data&&void 0!==t.data.scrollTop&&$(window).scrollTop()!==t.data.scrollTop&&$(window).scrollTop(t.data.scrollTop)}),$("a",".content-tabs").on("click",function(t){if(1==$(this).data("link")&&$(this).data("tab",!1),$(this).closest(".current,.disabled").exists())t.preventDefault();else if(void 0!==$(this).data("tab")){var e={};if($.each(this.attributes,function(){e[this.name]=this.value}),e.pushed="tabs","classic"!=$("#"+e["data-tab"]).data("load")){if(window.location.hash){var n=window.location.href;n=n.replace(window.location.hash,"")}History.pushState(e,document.title,void 0!==n?n:$(this).attr("href")),t.preventDefault()}var i=$("[data-action=tab-menu]",$(this).closest(".header"));i.find("[data-content=current-tab-label]").text($(this).text()),i.find('[data-content="tab-icon"]').attr("class","").addClass($(this).find(".btn-icon").attr("class")),i.is(":visible")&&i.click()}}),$(document).on("click","[data-action=tab-menu]",function(){var t=$(this).closest(".header").find(".content-tabs"),e=t.is(":visible"),n=t.closest(".content-tabs-wrap");$this=$(this),n.css("display",e?"":"block"),$this.toggleClass("--hide",e),e||(t.data("classes",t.attr("class")),t.removeClass(function(t,e){return(e.match(/\b\w+-hide/g)||[]).join(" ")})),e||$this.removeClass("current"),e&&(t.css("display","").addClass(t.data("classes")),$this.addClass("current"))}),$(window).bind("statechange",function(t){var e;PF.fn.growl.close(),e=History.getState().data,e&&"tabs"==e.pushed&&PF.fn.show_tab(e["data-tab"])}),$(document).on("click",PF.obj.listing.selectors.list_item+" a",function(t){""!=$(this).attr("src")&&History.replaceState({scrollTop:$(window).scrollTop()},document.title,window.location.href)}),$(document).on("click","[data-action=load-more]",function(t){PF.obj.listing.lockClickMore||(PF.obj.listing.lockClickMore=!0,$(this).closest(".content-listing-more").hide(),!PF.fn.is_listing()||$(this).closest(PF.obj.listing.selectors.content_listing).is(":hidden")||$(this).closest("#content-listing-template").exists()||PF.obj.listing.calling||(PF.fn.listing.queryString.stock_new(),PF.obj.listing.query_string.seek=$(this).attr("data-seek"),PF.obj.listing.query_string.page=$(PF.obj.listing.selectors.content_listing_visible).data("page"),PF.obj.listing.query_string.page++,PF.fn.listing.ajax(),t.preventDefault()))}),$(PF.obj.listing.selectors.list_item).length>0?(PF.fn.listing.show(),$(window).scroll(function(){var t=$(PF.obj.listing.selectors.content_listing_load_more,PF.obj.listing.selectors.content_listing_visible).find("button[data-action=load-more]"),e=$(document).height()-$(window).height()-1.5*document.documentElement.clientHeight;t.length>0&&$(window).scrollTop()>e&&0==PF.obj.listing.calling&&t.click()})):$(PF.obj.listing.selectors.content_listing+".visible").addClass("jsly"),$(document).on("click",PF.obj.modal.selectors.root+" [data-switch]",function(){var t=$(this).closest(PF.obj.modal.selectors.root);$("[data-view=switchable]",t).hide(),$("#"+$(this).attr("data-switch"),t).show()}),$(document).on("click","[data-toggle]",function(){var t=$("[data-content="+$(this).data("toggle")+"]"),e=!t.is(":visible");$(this).html($(this).data("html-"+(e?"on":"off"))),t.toggle()}),$(document).on("click","[data-action=cookie-law-close]",function(){var t=$(this).closest("#cookie-law-banner"),e=void 0!==t.data("cookie")?t.data("cookie"):"PF_COOKIE_LAW_DISPLAY";Cookies.set(e,0,{expires:365}),t.remove()}),Clipboard=new Clipboard("[data-action=copy]",{text:function(t){var e=$(t.getAttribute("data-action-target")),n=e.is(":input")?e.val():e.text();return n.trim()}}),Clipboard.on("success",function(t){var e=$(t.trigger.getAttribute("data-action-target"));e.highlight(),t.clearSelection()})});var PF={fn:{},str:{},obj:{}};PF.obj.config={base_url:"",json_api:"/json/",listing:{items_per_page:24},animation:{easingFn:"ease",normal:400,fast:250}},PF.obj.l10n={},PF.fn._s=function(t,e){return void 0===t?t:(void 0!==PF.obj.l10n&&void 0!==PF.obj.l10n[t]?(t=PF.obj.l10n[t][0],void 0===t&&(t=t)):t=t,t=t.toString(),void 0!==e&&(t=sprintf(t,e)),t)},PF.fn._n=function(t,e,n){var i;return i=void 0!==PF.obj.l10n&&void 0!==PF.obj.l10n[t]?PF.obj.l10n[t][1==n?0:1]:1==n?t:e,i=void 0===i?t:i.toString(),void 0!==n&&(i=sprintf(i,n)),i},PF.fn.extend_lang=function(t){$.each(PF.obj.lang_strings,function(e,n){void 0!==t[e]&&$.extend(PF.obj.lang_strings[e],t[e])})},PF.fn.get_url_vars=function(){for(var t,e=/\+/g,n=/([^&=]+)=?([^&]*)/g,i=function(t){return decodeURIComponent(escape(t.replace(e," ")))},o=window.location.search.substring(1),r={};t=n.exec(o);)r[i(t[1])]=i(t[2]);return r},PF.fn.get_url_var=function(t){return PF.fn.get_url_vars()[t]},PF.fn.is_user_logged=function(){return $("#top-bar-user").exists()},PF.fn.generate_random_string=function(t){void 0===t&&(t=5);for(var e="",n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",i=0;i").text($.trim(t)).html()},PF.fn.htmlDecode=function(t){return $("
    ").html($.trim(t)).text()},PF.fn.nl2br=function(t){var e="
    ";return(t+"").replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g,"$1"+e+"$2")},PF.fn.versionCompare=function(t,e,n){this.php_js=this.php_js||{},this.php_js.ENV=this.php_js.ENV||{};var i=0,o=0,r=0,a={dev:-6,alpha:-5,a:-5,beta:-4,b:-4,RC:-3,rc:-3,"#":-2,p:1,pl:1},s=function(t){return t=(""+t).replace(/[_\-+]/g,"."),t=t.replace(/([^.\d]+)/g,".$1.").replace(/\.{2,}/g,"."),t.length?t.split("."):[-8]};for(numVersion=function(t){return t?isNaN(t)?a[t]||-7:parseInt(t,10):0},t=s(t),e=s(e),o=Math.max(t.length,e.length),i=0;ie[i]){r=1;break}}if(!n)return r;switch(n){case">":case"gt":return r>0;case">=":case"ge":return r>=0;case"<=":case"le":return r<=0;case"==":case"=":case"eq":return 0===r;case"<>":case"!=":case"ne":return 0!==r;case"":case"<":case"lt":return r<0;default:return null}},PF.fn.baseName=function(t){var e=new String(t).substring(t.lastIndexOf("/")+1);return-1!=e.lastIndexOf(".")&&(e=e.substring(0,e.lastIndexOf("."))),e},PF.fn.guid=function(){var t=(new Date).getTime();return"undefined"!=typeof performance&&"function"==typeof performance.now&&(t+=performance.now()),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var n=(t+16*Math.random())%16|0;return t=Math.floor(t/16),("x"===e?n:3&n|8).toString(16)})},PF.fn.md5=function(t){return SparkMD5.hash(t)},PF.fn.dataURItoBlob=function(t){var e;e=t.split(",")[0].indexOf("base64")>=0?atob(t.split(",")[1]):unescape(t.split(",")[1]);for(var n=t.split(",")[0].split(":")[1].split(";")[0],i=new Uint8Array(e.length),o=0;o0|-(value<0),o=value%1==.5*r,i=Math.floor(value),o)switch(e){case"PHP_ROUND_HALF_DOWN":value=i+(r<0);break;case"PHP_ROUND_HALF_EVEN":value=i+i%2*r;break;case"PHP_ROUND_HALF_ODD":value=i+!(i%2);break;default:value=i+(r>0)}return(o?value:Math.round(value))/n},String.prototype.getBytes=function(){var t=["KB","MB","GB","TB","PB","EB","ZB","YB"],e=this.toUpperCase().substr(-2);if(-1==t.indexOf(e))return this;var n=t.indexOf(e)+1;return parseFloat(this)*Math.pow(1e3,n)},String.prototype.formatBytes=function(t){var e=parseInt(this),n=["KB","MB","GB","TB","PB","EB","ZB","YB"];if(!$.isNumeric(this))return!1;if(e<1e3)return e+" B";if(void 0===t)t=2;for(var i=0;i=o&&i.indexOf(t[a])>=0));a++);return n?r.split("").reverse().join(""):r}t=void 0!==t?t:40;var n=t/2,i=this.replace(/https?:\/\//g,"");return i.length<=t?i:e(i,n,!1)+"..."+e(i,n,!0)},jQuery.extend({compare:function(t,e){var n="[object Object]",i="[object Array]",o=Object.prototype.toString.apply(t),r=Object.prototype.toString.apply(e);return o===r&&(o===n?$.compareObject(t,e):o===i?$.compareArray(t,e):t===e)},compareArray:function(t,e){var n,i,o,r,a;if(t===e)return!0;if(t.length!=e.length)return!1;for(n=jQuery.extend(!0,[],t),i=jQuery.extend(!0,[],e),n.sort(),i.sort(),o=0,l=n.length;o0},jQuery.fn.replace_svg=function(){this.attr("src")&&$(this).each(function(){$(this).attr("src",$(this).attr("src").replace(".svg",".png"))})},jQuery.fn.is_fluid=function(){return!0},jQuery.fn.bindFormData=function(){return $(":input",this).each(function(){var t=PF.fn.htmlEncode($(this).val());if($(this).is("input")&&(this.setAttribute("value",this.value),this.checked?this.setAttribute("checked","checked"):this.removeAttribute("checked")),$(this).is("textarea")&&$(this).html(t),$(this).is("select")){var e=this.selectedIndex,n=0;$(this).children("option").each(function(){n++!=e?this.removeAttribute("selected"):this.setAttribute("selected","selected")})}}),this},jQuery.fn.formValues=function(t){var e=$(":input",this);return"object"!=typeof t?(t={},$.each(e,function(){this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/color|date|datetime|datetime-local|email|month|range|search|tel|time|url|week|text|number|hidden|password/i.test(this.type))&&(this.name.match(/^.*\[\]$/)&&this.checked?(void 0===t[this.name]&&(t[this.name]=[]),t[this.name].push($(this).val())):t[this.name]=$(this).val())}),t):($.each(e,function(){this.name.match(/^.*\[\]$/)&&"object"==typeof t[this.name]?$(this).prop("checked",-1!==t[this.name].indexOf($(this).val())):this.name&&t[this.name]?/checkbox|radio/i.test(this.type)?$(this).prop("checked",t[this.name]==$(this).val()):$(this).val(t[this.name]):/checkbox|radio/i.test(this.type)&&$(this).removeProp("checked")}),$(this))},jQuery.fn.storeformData=function(t){return void 0===t&&void 0!==$(this).attr("id")&&(t=$(this).attr("id")),void 0!==t&&$(this).data(t,$(this).formValues()),this},jQuery.fn.is_sameformData=function(t){var e=$(this);return void 0===t&&(t=e.attr("id")),jQuery.compare(e.formValues(),e.data(t))},jQuery.Event.prototype.keydown_numeric=function(){var t=this;if(t.shiftKey)return t.preventDefault(),!1;var e=t.charCode||t.keyCode,n=t.target;""==$(n).val()||parseInt($(n).val());return 13==e||(46==e||8==e||9==e||27==e||65==e&&!0===t.ctrlKey||e>=35&&e<=40||void((e<48||e>57)&&(e<96||e>105)&&t.preventDefault()))},PF.fn.is_canvas_supported=function(){var t=document.createElement("canvas");return!(!t.getContext||!t.getContext("2d"))},PF.fn.is_validity_supported=function(){var t=document.createElement("input");return"object"==typeof t.validity},PF.fn.getScrollBarWidth=function(){var t=document.createElement("p");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.style.visibility="hidden",e.style.width="200px",e.style.height="150px",e.style.overflow="hidden",e.appendChild(t),document.body.appendChild(e);var n=t.offsetWidth;e.style.overflow="scroll";var i=t.offsetWidth;return n==i&&(i=e.clientWidth),document.body.removeChild(e),n-i},PF.str.ScrollBarWidth=PF.fn.getScrollBarWidth(),PF.fn.top_notifications_viewed=function(){var t=$("[data-action=top-bar-notifications]"),e=($(".top-bar-notifications-list",t),$(".top-btn-number",t));$(".persistent",t).exists()?e.text($(".persistent",t).length).addClass("on"):e.removeClass("on")},PF.fn.bindtipTip=function(t,e){void 0===t&&(t=$("body")),t instanceof jQuery==0&&(t=$(t));var n={delay:0,content:!1,fadeIn:0};void 0!==e&&(void 0!==e.delay&&(n.delay=e.delay),void 0!==e.content&&(n.content=e.content),void 0!==e.content&&(n.fadeIn=e.fadeIn)),"tooltip"!==t.attr("rel")&&(t=$("[rel=tooltip]",t)),t.each(function(){if((void 0!==$(this).attr("href")||void 0!==$(this).data("href"))&&PF.fn.isDevice(["phone","phablet","tablet"]))return!0;var t=void 0===$(this).data("tiptip")?"bottom":$(this).data("tiptip");PF.fn.isDevice(["phone","phablet"])&&(t="top"),$(this).tipTip({delay:n.delay,defaultPosition:t,content:n.content,fadeIn:n.fadeIn,fadeOut:0})})},PF.fn.form_modal_has_changed=function(){if(!$(PF.obj.modal.selectors.root).is(":hidden")&&void 0!==$("html").data("modal-form-values")){var t=$("html").data("modal-form-values"),e=PF.fn.deparam($(":input:visible",PF.obj.modal.selectors.root).serialize()),n=!1,i=$.extend({},t,e);for(var o in i)if(t[o]!==e[o]){n=!0;break}return n}},PF.fn.is_listing=function(){return $(PF.obj.listing.selectors.content_listing).exists()},PF.fn.is_tabs=function(){return $(".content-tabs").exists()},jQuery.fn.shake=function(t){return this.each(function(t){var e=$(this);e.addClass("animate shake").promise().done(function(){setTimeout(function(){e.removeClass("shake")},820)})}),"function"==typeof t&&t(),this},jQuery.fn.highlight=function(t){if(this.is(":animated")||!this.exists())return this;void 0===t&&(t="yellow");var e=t;switch(t){case"yellow":e="#FFFBA2";break;case"red":e="#FF7F7F";break;default:e=t}var n=$(this).css("background-color");$(this).css("background");return $(this).css({background:"",backgroundColor:e,borderColor:window.getComputedStyle(document.body).getPropertyValue("--colorAccent")}).animate({backgroundColor:n,borderColor:""},1e3,function(){$(this).css("background","")}),this},jQuery.fn.pf_slideDown=function(t,e){var n,i,o,r="normal",a=$(this).length;return"function"==typeof t&&(e=t,t=r),void 0===t&&(t=r),$(this).each(function(r){var s=parseInt($(this).css("top")),l=s>0?s:0;0==t?(n={display:"block",opacity:0},i={opacity:1},o=jQuery.speed("fast").duration):(n={top:-$(this).outerHeight(!0),opacity:1,display:"block"},i={top:l},o=jQuery.speed(t).duration),$(this).data("originalTop",$(this).css("top")),$(this).css(n).animate(i,o,function(){r==a-1&&"function"==typeof e&&e()})}),this},jQuery.fn.pf_slideUp=function(t,e){var n="normal",i=$(this).length;return"function"==typeof t&&(e=t,t=n),void 0===t&&(t=n),$(this).each(function(n){$(this).animate({top:-$(this).outerHeight(!0)},jQuery.speed(t).duration,function(){$(this).css({display:"none",top:$(this).data("originalTop")}),n==i-1&&"function"==typeof e&&e()})}),this},jQuery.fn.is_in_viewport=function(){var t=$(this)[0].getBoundingClientRect();return t.top>=0&&t.left>=0&&t.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&t.right<=(window.innerWidth||document.documentElement.clientWidth)},jQuery.fn.is_within_viewport=function(t){var e=$(this)[0].getBoundingClientRect();return void 0===t&&(t=0),e.top>=0&&e.left>=0&&e.top+t<=(window.innerHeight||document.documentElement.clientHeight)&&e.right<=(window.innerWidth||document.documentElement.clientWidth)},jQuery.fn.getWindowCutoff=function(){var t={top:$(this).offset().top,left:$(this).offset().left,width:$(this).outerWidth(),height:$(this).outerHeight()};t.right=t.left+t.width,t.bottom=t.top+t.height;var e=!1,n={top:t.top>0?0:t.top,right:document.body.clientWidth-t.right,bottom:document.body.clientHeight-t.bottom,left:t.left>0?0:t.left};for(var i in n)n[i]<0?e=!0:n[i]=0;return e?n:null},PF.fn.scroll=function(t,e){if("function"==typeof t)e=t,t="";var n=parseInt($("body").css("margin-top"));0==n&&$(".top-bar-placeholder").exists()&&(n=$(".top-bar-placeholder").height()),$(t).exists()||(t="html"),$("body,html").animate({scrollTop:$(t).offset().top-n},"normal",function(){"function"==typeof e&&e()})},PF.fn.close_pops=function(t){$(".pop-box:visible").each(function(){$(this).closest(".pop-btn").trigger("click")})},PF.fn.growl={selectors:{root:"#growl"},str:{timeout:null,timeoutcall:!1},call:function(t){if(void 0!==t&&("string"==typeof t&&(t={message:t}),void 0!==t.message)){var e,n,i,o;for(key in e={message:t.message,insertTo:"body",where:"before",color:"default",css:{},classes:"",expires:0,callback:function(){}},e)void 0!==t[key]&&(key.match("/^(callback)$/")?"function"==typeof t[key]&&(e[key]=t[key]):e[key]=t[key]);if($(e.insertTo).exists()||(e.insertTo="body"),$(PF.fn.growl.selectors.root).exists()){if($(PF.fn.growl.selectors.root).text()==e.message)return void $(PF.fn.growl.selectors.root).shake();$(PF.fn.growl.selectors.root).remove()}switch(n=$('
    '+e.message+'
    ').css(e.css).addClass(e.classes),i="body"!==e.insertTo?"static":"",e.color){case"dark":o="dark";break;default:o=""}n.addClass(i+" "+o),"before"==e.where?$(e.insertTo).prepend(n.hide()):$(e.insertTo).append(n.hide()),n.pf_slideDown("static"==i?0:200,function(){"function"==typeof e.callback&&e.callback()}),$(document).on("click",".growl",function(t){(PF.fn.isDevice(["phone","phablet"])||$(t.target).is("[data-action=close]"))&&PF.fn.growl.close(!0)}),e.expires>0&&("number"==typeof this.str.timeout&&clearTimeout(this.str.timeout),this.str.timeout=setTimeout(function(){PF.fn.growl.str.timeoutcall=!0,PF.fn.growl.close()},e.expires))}},expirable:function(t,e){void 0!==t&&(void 0===e&&(e=5e3),PF.fn.growl.call({message:t,expires:e}))},close:function(t,e){var n=$(PF.fn.growl.selectors.root);t&&(this.str.timeout=null,this.str.timeoutcall=!1,clearTimeout(this.str.timeout)),n.exists()&&("number"!=typeof this.str.timeout||this.str.timeoutcall)&&n.fadeOut("fast",function(){$(this).remove(),"function"==typeof e&&e()})}},PF.obj.modal={type:"",selectors:{root:"#fullscreen-modal",box:"#fullscreen-modal-box",body:"#fullscreen-modal-body",login:"[data-modal=login]",changes_confirm:"#fullscreen-changes-confirm",btn_container:".btn-container",close_buttons:".close-modal,.cancel-modal,[data-action=cancel],[data-action-close]",submit_button:"[data-action=submit]",growl_placeholder:"#fullscreen-growl-placeholder"},ajax:{url:"",deferred:{}},locked:!1,form_data:{},XHR:{},prevented:!1},PF.obj.modal.$close_buttons=$(PF.obj.modal.selectors.close_buttons,PF.obj.modal.selectors.root),PF.fn.modal={str:{transition:"all "+PF.obj.config.animation.fast+"ms "+PF.obj.config.animation.easingFn},call:function(t){var e,n;if(void 0!==t&&(void 0!==t.template&&void 0===t.type&&(t.type="html"),void 0!==t.title&&void 0!==t.message||"login"===t.type||"html"===t.type)){for(key in PF.fn.growl.close(),e={forced:!1,type:"confirm",title:t.title,message:t.message,html:!1,template:t.template,buttons:!0,button_submit:PF.fn._s("Submit"),txt_or:PF.fn._s("or"),button_cancel:PF.fn._s("cancel"),ajax:{url:null,data:null,deferred:{}},confirm:function(){},cancel:function(){PF.fn.modal.close()},load:function(){},callback:function(){}},e)void 0!==t[key]&&(/^cancel|confirm|callback$/.test(key)?"function"==typeof t[key]&&(e[key]=t[key]):e[key]=t[key]);void 0!==t.ajax&&!t.ajax.url&&t.ajax.deferred&&(e.ajax.url=PF.obj.config.json_api),"login"==e.type&&(e.buttons=!1),"confirm"==e.type&&(e.button_submit=PF.fn._s("Confirm"));var i,o="black",r=['
    %MODAL_BODY%
    %MODAL_BUTTONS%
    '].join(""),a=e.buttons?['
    "].join(""):"";switch("login"==e.type&&(e.template=void 0===e.template?$(PF.obj.modal.selectors.login).html():e.template),e.type){case"html":case"login":i=e.template;break;case"confirm":default:n=e.message,e.html||(n="

    "+n+"

    "),i="

    "+e.title+"

    "+n}if(void 0!==i){if(r=r.replace("%MODAL_BODY%",i).replace("%MODAL_BUTTONS%",a).replace(/template-tooltip/g,"tooltip"),$(PF.obj.modal.selectors.root).remove(),$("body").data("hasOverflowHidden",$("body").hasClass("overflow-hidden")&&!$("body").hasClass("pop-box-show")),$("body").prepend(r).addClass("overflow-hidden"),this.fixScrollbars(),$("[rel=tooltip]",PF.obj.modal.selectors.root).each(function(){PF.fn.bindtipTip(this,{content:$(this).data("title")})}),$(":button, input[type=submit], input[type=reset]",PF.obj.modal.selectors.root).length>0){var s=$("form",PF.obj.modal.selectors.root);s.exists()?(s.append($($(PF.obj.modal.selectors.btn_container,PF.obj.modal.selectors.root).html()).wrapInner(PF.obj.modal.selectors.btn_container.replace(".",""))),$(PF.obj.modal.selectors.btn_container,PF.obj.modal.selectors.root).each(function(){$(this).closest("form").exists()||$(this).remove()})):$(PF.obj.modal.selectors.box,PF.obj.modal.selectors.root).wrapInner("
    ")}e.callback(),$(PF.obj.modal.selectors.box).css({transform:"scale(0.7)",opacity:0,transition:PF.fn.modal.str.transition}),$(PF.obj.modal.selectors.root).addClass("--show"),setTimeout(function(){$(PF.obj.modal.selectors.root).css({opacity:1}),$(PF.obj.modal.selectors.box).css({transform:"scale(1)",opacity:1}),"undefined"!=typeof PFrecaptchaCallback&&PFrecaptchaCallback(),setTimeout(function(){$("html").data("modal-form-values",PF.fn.deparam($(":input:visible",PF.obj.modal.selectors.root).serialize())),"function"==typeof e.load&&e.load()},PF.obj.config.animation.fast),PF.fn.modal.styleAware()},10),$(PF.obj.modal.selectors.root).on("click",function(n){var i=$(n.target),o=this;if(!PF.obj.modal.locked&&!i.is(PF.obj.modal.selectors.root)){var r=i.is(PF.obj.modal.selectors.close_buttons)||i.closest(PF.obj.modal.selectors.close_buttons).exists(),a=i.is(PF.obj.modal.selectors.submit_button)||i.closest(PF.obj.modal.selectors.submit_button).exists(),s=r||a;if(i.closest(PF.obj.modal.selectors.changes_confirm).exists()&&s)$(PF.obj.modal.selectors.changes_confirm).remove(),r?$(PF.obj.modal.selectors.box,o).fadeIn("fast",function(){$(this).css("transition",PF.fn.modal.str.transition)}):PF.fn.modal.close();else if(i.closest(".clickable").exists()&&!r||(PF.fn.growl.close(),e.cancel()),a){if(!1===e.confirm())return;var l=!0;if($("input, textarea, select",PF.obj.modal.selectors.root).not(":input[type=button], :input[type=submit], :input[type=reset]").length>0&&!PF.fn.form_modal_has_changed()&&!e.forced&&(l=!1),l)if(e.ajax.url){var c,u=$(PF.obj.modal.selectors.btn_container,PF.obj.modal.selectors.root);switch(PF.obj.modal.locked=!0,u.first().clone().height(u.height()).html("").addClass("loading").appendTo(PF.obj.modal.selectors.root+" form"),u.hide(),PF.obj.modal.$close_buttons.hide(),PF.obj.modal.type){case"edit":c=PF.fn._s("Saving");break;case"confirm":case"form":default:c=PF.fn._s("Sending")}PF.fn.loading.inline($(PF.obj.modal.selectors.btn_container+".loading",PF.obj.modal.selectors.root),{size:"small",message:c,valign:"center"}),$(PF.obj.modal.selectors.root).disableForm(),(!$.isEmptyObject(PF.obj.modal.form_data)||void 0!==t.ajax&&void 0===t.ajax.data)&&(e.ajax.data=PF.obj.modal.form_data),PF.obj.modal.XHR=$.ajax({url:e.ajax.url,type:"POST",data:e.ajax.data}).complete(function(t){if(PF.obj.modal.locked=!1,200==t.status){var n=void 0!==e.ajax.deferred&&void 0!==e.ajax.deferred.success?e.ajax.deferred.success:null;"function"==typeof n?PF.fn.modal.close(function(){"function"==typeof n&&n(t)}):"object"==typeof n&&("function"==typeof n.before&&n.before(t),"function"==typeof n.done&&n.done(t))}else if($(PF.obj.modal.selectors.root).enableForm(),$(PF.obj.modal.selectors.btn_container+".loading",PF.obj.modal.selectors.root).remove(),u.css("display",""),void 0!==e.ajax.deferred&&"function"==typeof e.ajax.deferred.error)e.ajax.deferred.error(t);else{var i=PF.fn._s("An error occurred. Please try again later.");t.responseJSON.error.message&&(i=t.responseJSON.error.message),PF.fn.growl.call(i)}})}else PF.fn.modal.close(e.callback())}}})}else console.log("PF Error: Modal content is empty")}},styleAware:function(){$(PF.obj.modal.selectors.root).exists()&&$(PF.obj.modal.selectors.root).toggleClass("--has-scrollbar",$(PF.obj.modal.selectors.root).hasScrollbar().vertical)},confirm:function(t){t.type="confirm",void 0===t.title&&(t.title=PF.fn._s("Confirm action")),PF.fn.modal.call(t)},simple:function(t){"string"==typeof t&&(t={message:t}),void 0===t.buttons&&(t.buttons=!1),void 0===t.title&&(t.title=PF.fn._s("information")),PF.fn.modal.call(t)},fixScrollbars:function(){if($(PF.obj.modal.selectors.root).exists()){var t={padding:$(".fixed, .position-fixed"),margin:$("html")},e={};PF.str.ScrollBarWidth>0&&$("html").hasScrollbar().vertical&&!$("body").data("hasOverflowHidden")?(e.padding=PF.str.ScrollBarWidth+"px",e.margin=PF.str.ScrollBarWidth+"px"):(e.padding="",e.margin=""),t.padding.css({paddingRight:e.padding}),t.margin.css({marginRight:e.margin})}},close:function(t){$(PF.obj.modal.selectors.root).exists()&&(PF.fn.growl.close(!0),$("[rel=tooltip]",PF.obj.modal.selectors.root).tipTip("hide"),$(PF.obj.modal.selectors.box).css({transform:"scale(0.5)",opacity:0}),$(PF.obj.modal.selectors.root).css({opacity:0}),setTimeout(function(){PF.str.ScrollBarWidth>0&&$("html").hasScrollbar().vertical&&$(".fixed, .position-fixed").css({paddingRight:""}),$("html").css({marginRight:""}),$("body").data("hasOverflowHidden")||$("body").removeClass("overflow-hidden"),$("body").removeData("hasOverflowHidden"),$(PF.obj.modal.selectors.root).remove(),"function"==typeof t&&t()},PF.obj.config.animation.normal))}},PF.fn.keyFeedback={enabled:!0,timeout:{spawn:null,remove:null},selectors:{root:"#key-feedback"},translate:{ArrowLeft:"◄",ArrowRight:"►",Delete:"Del",Escape:"Esc"},spawn:function(t){if(0!=this.enabled&&!PF.fn.isDevice(["phone","phablet"])){var e=$(PF.fn.keyFeedback.selectors.root);e.exists()||($("body").append($("
    ").attr({id:"key-feedback",class:"key-feedback"})),e=$(PF.fn.keyFeedback.selectors.root));var n=[];if((t.ctrlKey||t.metaKey)&&"KeyV"===t.originalEvent.code&&(t={type:"keydown",key:PF.fn._s("Paste")}),"contextmenu"===t.type&&t.ctrlKey&&(t.type="click"),"contextmenu"===t.type)n.push(PF.fn._s("Right click"));else if(t.ctrlKey&&n.push("Ctrl"),t.metaKey&&n.push("⌘"),t.hasOwnProperty("key")){var i=1===t.key.length?t.key.toUpperCase():t.key;i in this.translate&&(i=this.translate[i]),n.push(i)}"click"===t.type&&n.push("click"),e.html(n.join(" + ",n)).css("opacity",1),clearTimeout(PF.fn.keyFeedback.timeout.spawn),clearTimeout(PF.fn.keyFeedback.timeout.remove),PF.fn.keyFeedback.timeout.spawn=setTimeout(function(){e.css("opacity",0),PF.fn.keyFeedback.timeout.remove=setTimeout(function(){e.remove()},500)},1500)}}},PF.fn.popup=function(t){var e={height:t.height||500,width:t.width||650,scrollTo:0,resizable:0,scrollbars:0,location:0};e.top=screen.height/2-e.height/2,e.left=screen.width/2-e.width/2;var n="";for(var i in e)n+=i+"="+e[i]+",";n=n.slice(0,-1),window.open(t.href,"Popup",n)},PF.fn.list_fluid_width=function(){if($("body").is_fluid()){var t=$(PF.obj.listing.selectors.content_listing_visible),e=$(PF.obj.listing.selectors.pad_content,t),n=$(PF.obj.listing.selectors.list_item,t),i=n.outerWidth(!0),o=n.outerWidth(!0)-n.width();PF.obj.listing.content_listing_ratio=parseInt((t.width()+o)/i),n.length6?"small-cols":""),s.css("width","100%");var d=0;c.each(function(t){$(this).addClass("jsly");var i=$(".list-item-image",this),o=$(".list-item-image img",this),r=$(".list-item-thumbs",this);o.hasClass("jsly-loaded");o.show(),n&&($(this).css({top:"",left:"",height:"",position:""}),i.css({maxHeight:"",height:""}),o.removeClass("jsly").css({width:"",height:""}).parent().css({marginLeft:"",marginTop:""}),$("li",r).css({width:"",height:""}));var s=1==PF.obj.listing.columns_number?"100%":parseFloat(1/PF.obj.listing.columns_number*a.width()+"px");if($(this).css("width",s),PF.obj.listing.current_column>PF.obj.listing.columns_number&&(PF.obj.listing.current_column=1),$(this).attr("data-col",PF.obj.listing.current_column),!o.exists()){var l=!0;o=$(".image-container .empty",this)}var u=$(this).is(":visible");c.show();var h=i.hasClass("fixed-size"),f={w:parseFloat(o.attr("width")),h:parseFloat(o.attr("height"))};if(f.ratio=f.w/f.h,l||i.css("min-height")&&!o.hasClass("jsly")){var p={w:$(this).width(),h:h?$(this).width():null},g=Math.min(f.w,f.w1||1==f.ratio)?(f.h=Math.min(f.h,f.w=3||f.ratio<1||1==f.ratio?f.h=f.w/f.ratio:(f.h=Math.min(f.h,f.w),f.w=f.h*f.ratio),l&&(f.h=p.w),i.css({height:f.h})),0==o.width()&&o.css({width:g,height:g/f.ratio}),$(".image-container",this).is(".list-item-avatar-cover")&&o.css(h?{width:"auto",height:"100%"}:{width:"100%",height:"auto"});var m=Math.max(2*o.position().left,0),b=Math.max(2*o.position().top,0),v=m/i.width(),y=b/i.height();(m>0||b>0)&&(v<=.25||y<=.25)&&i.addClass("--fit"),r.exists()&&$("li",r).css({width:100/$("li",r).length+"%"}).css({height:$("li",r).width()}),u||c.hide()}!o.hasClass("jsly")&&$(this).is(":hidden")&&$(this).css("top","100%"),PF.obj.listing.columns[PF.obj.listing.current_column]+=$(this).outerHeight(!0),$(this).is(":animated")&&(e=0),$(this).addClass("position-absolute") -;var w=$(this).outerWidth(!0)*(PF.obj.listing.current_column-1),P=parseFloat($(this).css("left"))!=w;P&&(animate_grid=!0,$(this).animate({left:w},e));var x=PF.obj.listing.columns[PF.obj.listing.current_column]-$(this).outerHeight(!0);parseFloat($(this).css("top"))!=x&&(animate_grid=!0,$(this).animate({top:x},e),P&&(d=1)),u&&c.show(),PF.obj.listing.current_column++}),a.data({columns:PF.obj.listing.columns,current_column:PF.obj.listing.current_column}).attr("data-columns",PF.obj.listing.columns_number);var h=0;if($.each(PF.obj.listing.columns,function(t,e){e>h&&(h=e)}),PF.obj.listing.width=a.width(),void 0!==PF.obj.listing.height)var f=PF.obj.listing.height;PF.obj.listing.height=h;var p=void 0!==f&&f!==PF.obj.listing.height;p||(s.height(h),PF.fn.list_fluid_width()),p&&(s.height(f),setTimeout(function(){s.animate({height:h},e,function(){PF.fn.list_fluid_width()})},e*d)),a.data("list-mode",PF.obj.listing.mode),$(PF.obj.listing.selectors.content_listing_visible).data("queued",!1),a.addClass("jsly")}},PF.fn.loading={spin:{small:{lines:11,length:0,width:3,radius:7,speed:1,trail:45,blocksize:20},normal:{lines:11,length:0,width:5,radius:10,speed:1,trail:45,blocksize:30},big:{lines:11,length:0,width:7,radius:13,speed:1,trail:45,blocksize:40},huge:{lines:11,length:0,width:9,radius:16,speed:1,trail:45,blocksize:50}},inline:function(t,e){if(void 0!==t){if(t instanceof jQuery==0)t=$(t);var n={size:"normal",color:$("body").css("color"),center:!1,position:"absolute",shadow:!1,valign:"top"};if(void 0===e)e=n;else for(var i in n)void 0===e[i]&&(e[i]=n[i]);PF.fn.loading.spin[e.size];PF.fn.loading.spin[e.size].color=e.color,PF.fn.loading.spin[e.size].shadow=e.shadow,t.html(''+(void 0!==e.message?''+e.message+"":"")).css({"line-height":PF.fn.loading.spin[e.size].blocksize+"px"}),$(".loading-indicator",t).css({width:PF.fn.loading.spin[e.size].blocksize,height:PF.fn.loading.spin[e.size].blocksize}).spin(PF.fn.loading.spin[e.size]),e.center&&$(".loading-indicator",t.css("textAlign","center")).css({position:e.position,top:"50%",left:"50%",marginTop:-PF.fn.loading.spin[e.size].blocksize/2,marginLeft:-PF.fn.loading.spin[e.size].blocksize/2}),"center"==e.valign&&$(".loading-indicator,.loading-text",t).css("marginTop",(t.height()-PF.fn.loading.spin[e.size].blocksize)/2+"px"),$(".spinner",t).css({top:PF.fn.loading.spin[e.size].blocksize/2+"px",left:PF.fn.loading.spin[e.size].blocksize/2+"px"})}},fullscreen:function(){$("body").append('
    '+PF.fn._s("loading")+"
    "),$(".fullscreen-loader","#pf-fullscreen-loader").spin(PF.fn.loading.spin.huge),$("#pf-fullscreen-loader").css("opacity",1)},destroy:function(t){var e=$("#pf-fullscreen-loader"),n=$("#pf-onscreen-loader");"fullscreen"==t&&(t=e),"onscreen"==t&&(t=n),void 0!==t?t.remove():(e.remove(),n.remove())}},jQuery.fn.disableForm=function(){return $(this).data("disabled",!0),$(":input",this).each(function(){$(this).attr("disabled",!0)}),this},jQuery.fn.enableForm=function(){return $(this).data("disabled",!1),$(":input",this).removeAttr("disabled"),this},PF.fn.isDevice=function(t){if("object"==typeof t)t="."+t.join(",.");else t="."+t;return $("html").is(t)},PF.fn.getDeviceName=function(){var t;return $.each(PF.obj.devices,function(e,n){if(PF.fn.isDevice(n))return t=n,!0}),t},PF.fn.topMenu={vars:{$button:$("[data-action=top-bar-menu-full]","#top-bar"),menu:"#menu-fullscreen",speed:PF.obj.config.animation.fast,menu_top:parseInt($("#top-bar").outerHeight())+parseInt($("#top-bar").css("top"))+parseInt($("#top-bar").css("margin-top"))+parseInt($("#top-bar").css("margin-bottom"))-parseInt($("#top-bar").css("border-bottom-width"))+"px"},show:function(t){if(!$("body").is(":animated")){if(void 0===t)t=this.vars.speed;this.vars.$button.addClass("current"),$("html").addClass("menu-fullscreen-visible"),$("#top-bar").append($("
    ",{id:"menu-fullscreen",class:"touch-scroll",html:$("
    ",{class:"fullscreen black"})}).css({left:"-100%"}).append($("
      ",{html:$(".top-bar-left").html()+$(".top-bar-right").html()})));var e=$(this.vars.menu);$("li.phone-hide, li > .top-btn-text, li > .top-btn-text > span, li > a > .top-btn-text > span",e).each(function(){$(this).removeClass("phone-hide")}),$("[data-action=top-bar-menu-full]",e).remove(),$(".btn.black, .btn.default, .btn.blue, .btn.green, .btn.orange, .btn.red, .btn.transparent",e).removeClass("btn black default blue green orange red transparent"),setTimeout(function(){e.css({transform:"translateX(100%)"}),$(".fullscreen").css("opacity",1)},1),setTimeout(function(){e.css({transition:"none",transform:"",left:""}),$("html").css({backgroundColor:""})},t)}},hide:function(t){if(!$("body").is(":animated")&&$(this.vars.menu).is(":visible")){var e=$(this.vars.menu);if(void 0===t)t=this.vars.speed;e.css({transition:""}),setTimeout(function(){e.css({transform:"translateX(-100%)"})},1),$("#top-bar").css("position",""),this.vars.$button.removeClass("current"),$("html").removeClass("menu-fullscreen-visible"),setTimeout(function(){e.remove()},t)}}},function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var n=this._events=this._events||{},i=n[t]=n[t]||[];return-1==i.indexOf(e)&&i.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var n=this._onceEvents=this._onceEvents||{},i=n[t]=n[t]||{};return i[e]=!0,this}},e.off=function(t,e){var n=this._events&&this._events[t];if(n&&n.length){var i=n.indexOf(e);return-1!=i&&n.splice(i,1),this}},e.emitEvent=function(t,e){var n=this._events&&this._events[t];if(n&&n.length){n=n.slice(0),e=e||[];for(var i=this._onceEvents&&this._onceEvents[t],o=0;o
    '),o=t('
    '),r=t('
    ');t("body").append(i.html(o).prepend(r.html('
    ')))}else i=t("#tiptip_holder"),o=t("#tiptip_content"),r=t("#tiptip_arrow");return this.each(function(){function a(){var e;if(!1!==u.enter.call(l,d)&&(u.content?e=t.isFunction(u.content)?u.content.call(l,d):u.content:(e=u.content=l.attr(u.attribute),l.removeAttr(u.attribute)),e)){o.html(e),i.hide().removeAttr("class").css({margin:"0px","max-width":u.maxWidth}),u.cssClass&&i.addClass(u.cssClass),r.removeAttr("style");var n=parseInt(l.offset().top),a=parseInt(l.offset().left),s=parseInt(l.outerWidth()),c=parseInt(l.outerHeight()),f=i.outerWidth(),p=i.outerHeight(),g=Math.round((s-f)/2),m=Math.round((c-p)/2),b=Math.round(a+g),v=Math.round(n+c+u.edgeOffset),y="",w="",P=Math.round(f-12)/2;"bottom"==u.defaultPosition?y="_bottom":"top"==u.defaultPosition?y="_top":"left"==u.defaultPosition?y="_left":"right"==u.defaultPosition&&(y="_right");var $=g+aparseInt(t(window).width());$&&g<0||"_right"==y&&!x||"_left"==y&&aparseInt(t(window).height()+t(window).scrollTop()),_=n+c-(u.edgeOffset+p+8)<0;F||"_bottom"==y&&F||"_top"==y&&!_?("_top"==y||"_bottom"==y?y="_top":y+="_top",w=p,v=Math.round(n-(p+5+u.edgeOffset))):(_|("_top"==y&&_)||"_bottom"==y&&!F)&&("_top"==y||"_bottom"==y?y="_bottom":y+="_bottom",w=-12,v=Math.round(n+c+u.edgeOffset)),"_right_top"==y||"_left_top"==y?v+=5:"_right_bottom"!=y&&"_left_bottom"!=y||(v-=5),"_left_top"!=y&&"_left_bottom"!=y||(b+=5),r.css({"margin-left":P+"px","margin-top":w+"px"}),i.css({"margin-left":b+"px","margin-top":v+"px"}).addClass("tip"+y),h&&clearTimeout(h),h=setTimeout(function(){i.stop(!0,!0).fadeIn(u.fadeIn)},u.delay),u.afterEnter.call(l,d)}}function s(){!1!==u.exit.call(l,d)&&(h&&clearTimeout(h),i.fadeOut(u.fadeOut),u.afterExit.call(l,d))}var l=t(this),c=l.data("tipTip"),u=c&&c.options||t.extend(n,e),d={holder:i,content:o,arrow:r,options:u};if(c)switch(e){case"show":a();break;case"hide":s();break;case"destroy":l.unbind(".tipTip").removeData("tipTip")}else{var h=!1;l.data("tipTip",{options:u}),"hover"==u.activation?l.bind("mouseenter.tipTip",function(){a()}).bind("mouseleave.tipTip",function(){u.keepAlive?i.one("mouseleave.tipTip",function(){s()}):s()}):"focus"==u.activation?l.bind("focus.tipTip",function(){a()}).bind("blur.tipTip",function(){s()}):"click"==u.activation?l.bind("click.tipTip",function(t){return t.preventDefault(),a(),!1}).bind("mouseleave.tipTip",function(){u.keepAlive?i.one("mouseleave.tipTip",function(){s()}):s()}):u.activation}})}}(jQuery),function(t){function e(t,e){if(!(t.originalEvent.touches.length>1)){t.preventDefault();var n=t.originalEvent.changedTouches[0],i=document.createEvent("MouseEvents");i.initMouseEvent(e,!0,!0,window,1,n.screenX,n.screenY,n.clientX,n.clientY,!1,!1,!1,!1,0,null),t.target.dispatchEvent(i)}}if(t.support.touch="ontouchend"in document,t.support.touch){var n,i=t.ui.mouse.prototype,o=i._mouseInit;i._touchStart=function(t){var i=this;!n&&i._mouseCapture(t.originalEvent.changedTouches[0])&&(n=!0,i._touchMoved=!1,e(t,"mouseover"),e(t,"mousemove"),e(t,"mousedown"))},i._touchMove=function(t){n&&(this._touchMoved=!0,e(t,"mousemove"))},i._touchEnd=function(t){n&&(e(t,"mouseup"),e(t,"mouseout"),this._touchMoved||e(t,"click"),n=!1)},i._mouseInit=function(){var e=this;e.element.bind("touchstart",t.proxy(e,"_touchStart")).bind("touchmove",t.proxy(e,"_touchMove")).bind("touchend",t.proxy(e,"_touchEnd")),o.call(e)}}}(jQuery),function(t){"function"==typeof define&&define.amd&&define.amd.jQuery?define(["jquery"],t):t(jQuery)}(function(t){function e(e){return!e||void 0!==e.allowPageScroll||void 0===e.swipe&&void 0===e.swipeStatus||(e.allowPageScroll=c),void 0!==e.click&&void 0===e.tap&&(e.tap=e.click),e||(e={}),e=t.extend({},t.fn.swipe.defaults,e),this.each(function(){var i=t(this),o=i.data(_);o||(o=new n(this,e),i.data(_,o))})}function n(e,n){function S(e){if(!(st()||t(e.target).closest(n.excludedElements,zt).length>0)){var i,o=e.originalEvent?e.originalEvent:e,r=F?o.touches[0]:o;return qt=w,F?Nt=o.touches.length:e.preventDefault(),Ot=0,At=null,Bt=null,Ht=0,Mt=0,Lt=0,Dt=1,Ut=0,Wt=ht(),Rt=gt(),rt(),!F||Nt===n.fingers||n.fingers===v||R()?(ct(0,r),Vt=Ft(),2==Nt&&(ct(1,o.touches[1]),Mt=Lt=vt(Wt[0].start,Wt[1].start)),(n.swipeStatus||n.pinchStatus)&&(i=O(o,qt))):i=!1,!1===i?(qt=x,O(o,qt),i):(lt(!0),null)}}function j(t){var e=t.originalEvent?t.originalEvent:t;if(qt!==$&&qt!==x&&!at()){var i,o=F?e.touches[0]:e,r=ut(o);if(Qt=Ft(),F&&(Nt=e.touches.length),qt=P,2==Nt&&(0==Mt?(ct(1,e.touches[1]),Mt=Lt=vt(Wt[0].start,Wt[1].start)):(ut(e.touches[1]),Lt=vt(Wt[0].end,Wt[1].end),Bt=wt(Wt[0].end,Wt[1].end)),Dt=yt(Mt,Lt),Ut=Math.abs(Mt-Lt)),Nt===n.fingers||n.fingers===v||!F||R()){if(At=xt(r.start,r.end),U(t,At),Ot=Pt(r.start,r.end),Ht=bt(),ft(At,Ot),(n.swipeStatus||n.pinchStatus)&&(i=O(e,qt)),!n.triggerOnTouchEnd||n.triggerOnTouchLeave){var a=!0;if(n.triggerOnTouchLeave){var s=_t(this);a=St(r.end,s)}!n.triggerOnTouchEnd&&a?qt=I(P):n.triggerOnTouchLeave&&!a&&(qt=I($)),qt!=x&&qt!=$||O(e,qt)}}else qt=x,O(e,qt);!1===i&&(qt=x,O(e,qt))}}function k(t){var e=t.originalEvent;return F&&e.touches.length>0?(ot(),!0):(at()&&(Nt=Xt),t.preventDefault(),Qt=Ft(),Ht=bt(),M()?(qt=x,O(e,qt)):n.triggerOnTouchEnd||0==n.triggerOnTouchEnd&&qt===P?(qt=$,O(e,qt)):!n.triggerOnTouchEnd&&G()?(qt=$,A(e,qt,f)):qt===P&&(qt=x,O(e,qt)),lt(!1),null)}function T(){Nt=0,Qt=0,Vt=0,Mt=0,Lt=0,Dt=1,rt(),lt(!1)}function C(t){var e=t.originalEvent;n.triggerOnTouchLeave&&(qt=I($),O(e,qt))}function E(){zt.unbind(kt,S),zt.unbind(It,T),zt.unbind(Tt,j),zt.unbind(Ct,k),Et&&zt.unbind(Et,C),lt(!1)}function I(t){var e=t,i=D(),o=H(),r=M();return!i||r?e=x:!o||t!=P||n.triggerOnTouchEnd&&!n.triggerOnTouchLeave?!o&&t==$&&n.triggerOnTouchLeave&&(e=x):e=$,e}function O(t,e){var n=void 0;return W()||N()?n=A(t,e,d):(z()||R())&&!1!==n&&(n=A(t,e,h)),nt()&&!1!==n?n=A(t,e,p):it()&&!1!==n?n=A(t,e,g):et()&&!1!==n&&(n=A(t,e,f)),e===x&&T(t),e===$&&(F?0==t.touches.length&&T(t):T(t)),n}function A(e,c,u){var m=void 0;if(u==d){if(zt.trigger("swipeStatus",[c,At||null,Ot||0,Ht||0,Nt]),n.swipeStatus&&(m=n.swipeStatus.call(zt,e,c,At||null,Ot||0,Ht||0,Nt),!1===m))return!1;if(c==$&&q()){if(zt.trigger("swipe",[At,Ot,Ht,Nt]),n.swipe&&(m=n.swipe.call(zt,e,At,Ot,Ht,Nt),!1===m))return!1;switch(At){case i:zt.trigger("swipeLeft",[At,Ot,Ht,Nt]),n.swipeLeft&&(m=n.swipeLeft.call(zt,e,At,Ot,Ht,Nt));break;case o:zt.trigger("swipeRight",[At,Ot,Ht,Nt]),n.swipeRight&&(m=n.swipeRight.call(zt,e,At,Ot,Ht,Nt));break;case r:zt.trigger("swipeUp",[At,Ot,Ht,Nt]),n.swipeUp&&(m=n.swipeUp.call(zt,e,At,Ot,Ht,Nt));break;case a:zt.trigger("swipeDown",[At,Ot,Ht,Nt]),n.swipeDown&&(m=n.swipeDown.call(zt,e,At,Ot,Ht,Nt))}}}if(u==h){if(zt.trigger("pinchStatus",[c,Bt||null,Ut||0,Ht||0,Nt,Dt]),n.pinchStatus&&(m=n.pinchStatus.call(zt,e,c,Bt||null,Ut||0,Ht||0,Nt,Dt),!1===m))return!1;if(c==$&&B())switch(Bt){case s:zt.trigger("pinchIn",[Bt||null,Ut||0,Ht||0,Nt,Dt]),n.pinchIn&&(m=n.pinchIn.call(zt,e,Bt||null,Ut||0,Ht||0,Nt,Dt));break;case l:zt.trigger("pinchOut",[Bt||null,Ut||0,Ht||0,Nt,Dt]),n.pinchOut&&(m=n.pinchOut.call(zt,e,Bt||null,Ut||0,Ht||0,Nt,Dt))}}return u==f?c!==x&&c!==$||(clearTimeout(Jt),X()&&!K()?(Yt=Ft(),Jt=setTimeout(t.proxy(function(){Yt=null,zt.trigger("tap",[e.target]),n.tap&&(m=n.tap.call(zt,e,e.target))},this),n.doubleTapThreshold)):(Yt=null,zt.trigger("tap",[e.target]),n.tap&&(m=n.tap.call(zt,e,e.target)))):u==p?c!==x&&c!==$||(clearTimeout(Jt),Yt=null,zt.trigger("doubletap",[e.target]),n.doubleTap&&(m=n.doubleTap.call(zt,e,e.target))):u==g&&(c!==x&&c!==$||(clearTimeout(Jt),Yt=null,zt.trigger("longtap",[e.target]),n.longTap&&(m=n.longTap.call(zt,e,e.target)))),m}function H(){var t=!0;return null!==n.threshold&&(t=Ot>=n.threshold),t}function M(){var t=!1;return null!==n.cancelThreshold&&null!==At&&(t=pt(At)-Ot>=n.cancelThreshold),t}function L(){return null===n.pinchThreshold||Ut>=n.pinchThreshold}function D(){var t;return t=!n.maxTimeThreshold||!(Ht>=n.maxTimeThreshold),t}function U(t,e){if(n.allowPageScroll===c||R())t.preventDefault();else{var s=n.allowPageScroll===u;switch(e){case i:(n.swipeLeft&&s||!s&&n.allowPageScroll!=m)&&t.preventDefault();break;case o:(n.swipeRight&&s||!s&&n.allowPageScroll!=m)&&t.preventDefault();break;case r:(n.swipeUp&&s||!s&&n.allowPageScroll!=b)&&t.preventDefault();break;case a:(n.swipeDown&&s||!s&&n.allowPageScroll!=b)&&t.preventDefault()}}}function B(){var t=V(),e=Q(),n=L();return t&&e&&n}function R(){return!!(n.pinchStatus||n.pinchIn||n.pinchOut)}function z(){return!(!B()||!R())}function q(){var t=D(),e=H(),n=V(),i=Q(),o=M(),r=!o&&i&&n&&e&&t;return r}function N(){return!!(n.swipe||n.swipeStatus||n.swipeLeft||n.swipeRight||n.swipeUp||n.swipeDown)}function W(){return!(!q()||!N())}function V(){return Nt===n.fingers||n.fingers===v||!F}function Q(){return 0!==Wt[0].end.x}function G(){return!!n.tap}function X(){return!!n.doubleTap}function Y(){return!!n.longTap}function J(){if(null==Yt)return!1;var t=Ft();return X()&&t-Yt<=n.doubleTapThreshold}function K(){return J()}function Z(){return(1===Nt||!F)&&(isNaN(Ot)||0===Ot)}function tt(){return Ht>n.longTapThreshold&&Ot=0?i:n<=360&&n>=315?i:n>=135&&n<=225?o:n>45&&n<135?a:r}function Ft(){var t=new Date;return t.getTime()}function _t(e){e=t(e);var n=e.offset(),i={left:n.left,right:n.left+e.outerWidth(),top:n.top,bottom:n.top+e.outerHeight()};return i}function St(t,e){return t.x>e.left&&t.xe.top&&t.ya?(n.maxWidth=r*a,n.maxHeight=r):(n.maxWidth=o,n.maxHeight=o/a),n},e.renderImageToCanvas=function(t,e,n,i,o,r,a,s,l,c){return t.getContext("2d").drawImage(e,n,i,o,r,a,s,l,c),t},e.hasCanvasOption=function(t){return t.canvas||t.crop||!!t.aspectRatio},e.scale=function(t,n,i){function o(){var t=Math.max((l||P)/P,(c||$)/$);t>1&&(P*=t,$*=t)}function r(){var t=Math.min((a||P)/P,(s||$)/$);t<1&&(P*=t,$*=t)}n=n||{};var a,s,l,c,u,d,h,f,p,g,m,b=document.createElement("canvas"),v=t.getContext||e.hasCanvasOption(n)&&b.getContext,y=t.naturalWidth||t.width,w=t.naturalHeight||t.height,P=y,$=w;if(b.originalWidth=y,b.originalHeight=w,v&&(n=e.getTransformedOptions(t,n,i),h=n.left||0,f=n.top||0,n.sourceWidth?(u=n.sourceWidth,void 0!==n.right&&void 0===n.left&&(h=y-u-n.right)):u=y-h-(n.right||0),n.sourceHeight?(d=n.sourceHeight,void 0!==n.bottom&&void 0===n.top&&(f=w-d-n.bottom)):d=w-f-(n.bottom||0),P=u,$=d),a=n.maxWidth,s=n.maxHeight,l=n.minWidth,c=n.minHeight,v&&a&&s&&n.crop?(P=a,$=s,m=u/d-a/s,m<0?(d=s*u/a,void 0===n.top&&void 0===n.bottom&&(f=(w-d)/2)):m>0&&(u=a*d/s,void 0===n.left&&void 0===n.right&&(h=(y-u)/2))):((n.contain||n.cover)&&(l=a=a||l,c=s=s||c),n.cover?(r(),o()):(o(),r())),v){if(p=n.pixelRatio,p>1&&(b.style.width=P+"px",b.style.height=$+"px",P*=p,$*=p,b.getContext("2d").scale(p,p)),g=n.downsamplingRatio,g>0&&g<1&&PP;)b.width=u*g,b.height=d*g,e.renderImageToCanvas(b,t,h,f,u,d,0,0,b.width,b.height),u=b.width,d=b.height,t=document.createElement("canvas"),t.width=u,t.height=d,e.renderImageToCanvas(t,b,0,0,u,d,0,0,u,d);return b.width=P,b.height=$,e.transformCoordinates(b,n),e.renderImageToCanvas(b,t,h,f,u,d,0,0,P,$)}return t.width=P,t.height=$,t},e.createObjectURL=function(t){return!!i&&i.createObjectURL(t)},e.revokeObjectURL=function(t){return!!i&&i.revokeObjectURL(t)},e.readFile=function(t,e,n){if(window.FileReader){var i=new FileReader;if(i.onload=i.onerror=e,n=n||"readAsDataURL",i[n])return i[n](t),i}return!1},"function"==typeof define&&define.amd?define(function(){return e}):"object"==typeof module&&module.exports?module.exports=e:t.loadImage=e}(window),function(t){"use strict";"function"==typeof define&&define.amd?define(["./load-image"],t):t("object"==typeof module&&module.exports?require("./load-image"):window.loadImage)}(function(t){"use strict";var e=window.Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice);t.blobSlice=e&&function(){var t=this.slice||this.webkitSlice||this.mozSlice;return t.apply(this,arguments)},t.metaDataParsers={jpeg:{65505:[]}},t.parseMetaData=function(e,n,i,o){i=i||{},o=o||{};var r=this,a=i.maxMetaDataSize||262144,s=!(window.DataView&&e&&e.size>=12&&"image/jpeg"===e.type&&t.blobSlice);!s&&t.readFile(t.blobSlice.call(e,0,a),function(e){if(e.target.error)return console.log(e.target.error),void n(o);var a,s,l,c,u=e.target.result,d=new DataView(u),h=2,f=d.byteLength-4,p=h;if(65496===d.getUint16(0)){for(;h=65504&&a<=65519||65534===a);){if(s=d.getUint16(h+2)+2,h+s>d.byteLength){console.log("Invalid meta data: Invalid segment size.");break}if(l=t.metaDataParsers.jpeg[a])for(c=0;c6&&(u.slice?o.imageHead=u.slice(0,p):o.imageHead=new Uint8Array(u).subarray(0,p))}else console.log("Invalid JPEG file: Missing JPEG marker.");n(o)},"readAsArrayBuffer")||n(o)},t.hasMetaOption=function(t){return t.meta};var n=t.transform;t.transform=function(e,i,o,r,a){t.hasMetaOption(i||{})?t.parseMetaData(r,function(a){n.call(t,e,i,o,r,a)},i,a):n.apply(t,arguments)}}),function(t){"use strict";"function"==typeof define&&define.amd?define(["./load-image","./load-image-meta"],t):"object"==typeof module&&module.exports?t(require("./load-image"),require("./load-image-meta")):t(window.loadImage)}(function(t){"use strict";t.ExifMap=function(){return this},t.ExifMap.prototype.map={Orientation:274},t.ExifMap.prototype.get=function(t){return this[t]||this[this.map[t]]},t.getExifThumbnail=function(t,e,n){var i,o,r;if(n&&!(e+n>t.byteLength)){for(i=[],o=0;o4?n+e.getUint32(i+8,a):i+8,!(l+s>e.byteLength)){if(1===r)return f.getValue(e,l,a);for(c=[],u=0;ut.byteLength)console.log("Invalid Exif data: Invalid directory offset.");else{if(r=t.getUint16(n,i),a=n+2+12*r,!(a+4>t.byteLength)){for(s=0;se.byteLength)return void console.log("Invalid Exif data: Invalid segment size.");if(0!==e.getUint16(n+8))return void console.log("Invalid Exif data: Missing byte alignment offset.");switch(e.getUint16(c)){case 18761:a=!0;break;case 19789:a=!1;break;default:return void console.log("Invalid Exif data: Invalid byte alignment marker.")}if(42!==e.getUint16(c+2,a))return void console.log("Invalid Exif data: Missing TIFF marker.");s=e.getUint32(c+4,a),o.exif=new t.ExifMap,s=t.parseExifTags(e,c,c+s,a,o),s&&!r.disableExifThumbnail&&(l={exif:{}},s=t.parseExifTags(e,c,c+s,a,l),l.exif[513]&&(o.exif.Thumbnail=t.getExifThumbnail(e,c+l.exif[513],l.exif[514]))), -o.exif[34665]&&!r.disableExifSub&&t.parseExifTags(e,c,c+o.exif[34665],a,o),o.exif[34853]&&!r.disableExifGps&&t.parseExifTags(e,c,c+o.exif[34853],a,o)}}},t.metaDataParsers.jpeg[65505].push(t.parseExifData)}),function(t){"use strict";"function"==typeof define&&define.amd?define(["./load-image","./load-image-exif"],t):"object"==typeof module&&module.exports?t(require("./load-image"),require("./load-image-exif")):t(window.loadImage)}(function(t){"use strict";t.ExifMap.prototype.tags={256:"ImageWidth",257:"ImageHeight",34665:"ExifIFDPointer",34853:"GPSInfoIFDPointer",40965:"InteroperabilityIFDPointer",258:"BitsPerSample",259:"Compression",262:"PhotometricInterpretation",274:"Orientation",277:"SamplesPerPixel",284:"PlanarConfiguration",530:"YCbCrSubSampling",531:"YCbCrPositioning",282:"XResolution",283:"YResolution",296:"ResolutionUnit",273:"StripOffsets",278:"RowsPerStrip",279:"StripByteCounts",513:"JPEGInterchangeFormat",514:"JPEGInterchangeFormatLength",301:"TransferFunction",318:"WhitePoint",319:"PrimaryChromaticities",529:"YCbCrCoefficients",532:"ReferenceBlackWhite",306:"DateTime",270:"ImageDescription",271:"Make",272:"Model",305:"Software",315:"Artist",33432:"Copyright",36864:"ExifVersion",40960:"FlashpixVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",42240:"Gamma",37121:"ComponentsConfiguration",37122:"CompressedBitsPerPixel",37500:"MakerNote",37510:"UserComment",40964:"RelatedSoundFile",36867:"DateTimeOriginal",36868:"DateTimeDigitized",37520:"SubSecTime",37521:"SubSecTimeOriginal",37522:"SubSecTimeDigitized",33434:"ExposureTime",33437:"FNumber",34850:"ExposureProgram",34852:"SpectralSensitivity",34855:"PhotographicSensitivity",34856:"OECF",34864:"SensitivityType",34865:"StandardOutputSensitivity",34866:"RecommendedExposureIndex",34867:"ISOSpeed",34868:"ISOSpeedLatitudeyyy",34869:"ISOSpeedLatitudezzz",37377:"ShutterSpeedValue",37378:"ApertureValue",37379:"BrightnessValue",37380:"ExposureBias",37381:"MaxApertureValue",37382:"SubjectDistance",37383:"MeteringMode",37384:"LightSource",37385:"Flash",37396:"SubjectArea",37386:"FocalLength",41483:"FlashEnergy",41484:"SpatialFrequencyResponse",41486:"FocalPlaneXResolution",41487:"FocalPlaneYResolution",41488:"FocalPlaneResolutionUnit",41492:"SubjectLocation",41493:"ExposureIndex",41495:"SensingMethod",41728:"FileSource",41729:"SceneType",41730:"CFAPattern",41985:"CustomRendered",41986:"ExposureMode",41987:"WhiteBalance",41988:"DigitalZoomRatio",41989:"FocalLengthIn35mmFilm",41990:"SceneCaptureType",41991:"GainControl",41992:"Contrast",41993:"Saturation",41994:"Sharpness",41995:"DeviceSettingDescription",41996:"SubjectDistanceRange",42016:"ImageUniqueID",42032:"CameraOwnerName",42033:"BodySerialNumber",42034:"LensSpecification",42035:"LensMake",42036:"LensModel",42037:"LensSerialNumber",0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude",5:"GPSAltitudeRef",6:"GPSAltitude",7:"GPSTimeStamp",8:"GPSSatellites",9:"GPSStatus",10:"GPSMeasureMode",11:"GPSDOP",12:"GPSSpeedRef",13:"GPSSpeed",14:"GPSTrackRef",15:"GPSTrack",16:"GPSImgDirectionRef",17:"GPSImgDirection",18:"GPSMapDatum",19:"GPSDestLatitudeRef",20:"GPSDestLatitude",21:"GPSDestLongitudeRef",22:"GPSDestLongitude",23:"GPSDestBearingRef",24:"GPSDestBearing",25:"GPSDestDistanceRef",26:"GPSDestDistance",27:"GPSProcessingMethod",28:"GPSAreaInformation",29:"GPSDateStamp",30:"GPSDifferential",31:"GPSHPositioningError"},t.ExifMap.prototype.stringValues={ExposureProgram:{0:"Undefined",1:"Manual",2:"Normal program",3:"Aperture priority",4:"Shutter priority",5:"Creative program",6:"Action program",7:"Portrait mode",8:"Landscape mode"},MeteringMode:{0:"Unknown",1:"Average",2:"CenterWeightedAverage",3:"Spot",4:"MultiSpot",5:"Pattern",6:"Partial",255:"Other"},LightSource:{0:"Unknown",1:"Daylight",2:"Fluorescent",3:"Tungsten (incandescent light)",4:"Flash",9:"Fine weather",10:"Cloudy weather",11:"Shade",12:"Daylight fluorescent (D 5700 - 7100K)",13:"Day white fluorescent (N 4600 - 5400K)",14:"Cool white fluorescent (W 3900 - 4500K)",15:"White fluorescent (WW 3200 - 3700K)",17:"Standard light A",18:"Standard light B",19:"Standard light C",20:"D55",21:"D65",22:"D75",23:"D50",24:"ISO studio tungsten",255:"Other"},Flash:{0:"Flash did not fire",1:"Flash fired",5:"Strobe return light not detected",7:"Strobe return light detected",9:"Flash fired, compulsory flash mode",13:"Flash fired, compulsory flash mode, return light not detected",15:"Flash fired, compulsory flash mode, return light detected",16:"Flash did not fire, compulsory flash mode",24:"Flash did not fire, auto mode",25:"Flash fired, auto mode",29:"Flash fired, auto mode, return light not detected",31:"Flash fired, auto mode, return light detected",32:"No flash function",65:"Flash fired, red-eye reduction mode",69:"Flash fired, red-eye reduction mode, return light not detected",71:"Flash fired, red-eye reduction mode, return light detected",73:"Flash fired, compulsory flash mode, red-eye reduction mode",77:"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",79:"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",89:"Flash fired, auto mode, red-eye reduction mode",93:"Flash fired, auto mode, return light not detected, red-eye reduction mode",95:"Flash fired, auto mode, return light detected, red-eye reduction mode"},SensingMethod:{1:"Undefined",2:"One-chip color area sensor",3:"Two-chip color area sensor",4:"Three-chip color area sensor",5:"Color sequential area sensor",7:"Trilinear sensor",8:"Color sequential linear sensor"},SceneCaptureType:{0:"Standard",1:"Landscape",2:"Portrait",3:"Night scene"},SceneType:{1:"Directly photographed"},CustomRendered:{0:"Normal process",1:"Custom process"},WhiteBalance:{0:"Auto white balance",1:"Manual white balance"},GainControl:{0:"None",1:"Low gain up",2:"High gain up",3:"Low gain down",4:"High gain down"},Contrast:{0:"Normal",1:"Soft",2:"Hard"},Saturation:{0:"Normal",1:"Low saturation",2:"High saturation"},Sharpness:{0:"Normal",1:"Soft",2:"Hard"},SubjectDistanceRange:{0:"Unknown",1:"Macro",2:"Close view",3:"Distant view"},FileSource:{3:"DSC"},ComponentsConfiguration:{0:"",1:"Y",2:"Cb",3:"Cr",4:"R",5:"G",6:"B"},Orientation:{1:"top-left",2:"top-right",3:"bottom-right",4:"bottom-left",5:"left-top",6:"right-top",7:"right-bottom",8:"left-bottom"}},t.ExifMap.prototype.getText=function(t){var e=this.get(t);switch(t){case"LightSource":case"Flash":case"MeteringMode":case"ExposureProgram":case"SensingMethod":case"SceneCaptureType":case"SceneType":case"CustomRendered":case"WhiteBalance":case"GainControl":case"Contrast":case"Saturation":case"Sharpness":case"SubjectDistanceRange":case"FileSource":case"Orientation":return this.stringValues[t][e];case"ExifVersion":case"FlashpixVersion":if(!e)return;return String.fromCharCode(e[0],e[1],e[2],e[3]);case"ComponentsConfiguration":if(!e)return;return this.stringValues[t][e[0]]+this.stringValues[t][e[1]]+this.stringValues[t][e[2]]+this.stringValues[t][e[3]];case"GPSVersionID":if(!e)return;return e[0]+"."+e[1]+"."+e[2]+"."+e[3]}return String(e)},function(t){var e,n=t.tags,i=t.map;for(e in n)n.hasOwnProperty(e)&&(i[n[e]]=e)}(t.ExifMap.prototype),t.ExifMap.prototype.getAll=function(){var t,e,n={};for(t in this)this.hasOwnProperty(t)&&(e=this.tags[t],e&&(n[e]=this.getText(e)));return n}}),function(t){"use strict";"function"==typeof define&&define.amd?define(["./load-image"],t):t("object"==typeof module&&module.exports?require("./load-image"):window.loadImage)}(function(t){"use strict";var e=t.hasCanvasOption,n=t.hasMetaOption,i=t.transformCoordinates,o=t.getTransformedOptions;t.hasCanvasOption=function(n){return!!n.orientation||e.call(t,n)},t.hasMetaOption=function(e){return!0===e.orientation||n.call(t,e)},t.transformCoordinates=function(e,n){i.call(t,e,n);var o=e.getContext("2d"),r=e.width,a=e.height,s=e.style.width,l=e.style.height,c=n.orientation;if(c&&!(c>8))switch(c>4&&(e.width=a,e.height=r,e.style.width=l,e.style.height=s),c){case 2:o.translate(r,0),o.scale(-1,1);break;case 3:o.translate(r,a),o.rotate(Math.PI);break;case 4:o.translate(0,a),o.scale(1,-1);break;case 5:o.rotate(.5*Math.PI),o.scale(1,-1);break;case 6:o.rotate(.5*Math.PI),o.translate(0,-a);break;case 7:o.rotate(.5*Math.PI),o.translate(r,-a),o.scale(-1,1);break;case 8:o.rotate(-.5*Math.PI),o.translate(-r,0)}},t.getTransformedOptions=function(e,n,i){var r,a,s=o.call(t,e,n),l=s.orientation;if(!0===l&&i&&i.exif&&(l=i.exif.get("Orientation")),!l||l>8||1===l)return s;for(a in r={},s)s.hasOwnProperty(a)&&(r[a]=s[a]);switch(r.orientation=l,l){case 2:r.left=s.right,r.right=s.left;break;case 3:r.left=s.right,r.top=s.bottom,r.right=s.left,r.bottom=s.top;break;case 4:r.top=s.bottom,r.bottom=s.top;break;case 5:r.left=s.top,r.top=s.left,r.right=s.bottom,r.bottom=s.right;break;case 6:r.left=s.top,r.top=s.right,r.right=s.bottom,r.bottom=s.left;break;case 7:r.left=s.bottom,r.top=s.right,r.right=s.top,r.bottom=s.left;break;case 8:r.left=s.bottom,r.top=s.left,r.right=s.top,r.bottom=s.right}return s.orientation>4&&(r.maxWidth=s.maxHeight,r.maxHeight=s.maxWidth,r.minWidth=s.minHeight,r.minHeight=s.minWidth,r.sourceWidth=s.sourceHeight,r.sourceHeight=s.sourceWidth),r}}),"object"!=typeof JSON&&(JSON={}),function(){"use strict";function f(t){return t<10?"0"+t:t}function quote(t){return escapable.lastIndex=0,escapable.test(t)?'"'+t.replace(escapable,function(t){var e=meta[t];return"string"==typeof e?e:"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+t+'"'}function str(t,e){var n,i,o,r,a,s=gap,l=e[t];switch(l&&"object"==typeof l&&"function"==typeof l.toJSON&&(l=l.toJSON(t)),"function"==typeof rep&&(l=rep.call(e,t,l)),typeof l){case"string":return quote(l);case"number":return isFinite(l)?String(l):"null";case"boolean":case"null":return String(l);case"object":if(!l)return"null";if(gap+=indent,a=[],"[object Array]"===Object.prototype.toString.apply(l)){for(r=l.length,n=0;n")&&n[0];);return t>4&&t}();return t},h.isInternetExplorer=function(){var t=h.isInternetExplorer.cached=void 0!==h.isInternetExplorer.cached?h.isInternetExplorer.cached:Boolean(h.getInternetExplorerMajorVersion());return t},h.options.html4Mode?h.emulated={pushState:!0,hashChange:!0}:h.emulated={pushState:!Boolean(t.history&&t.history.pushState&&t.history.replaceState&&!/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i.test(o.userAgent)&&!/AppleWebKit\/5([0-2]|3[0-2])/i.test(o.userAgent)),hashChange:Boolean(!("onhashchange"in t||"onhashchange"in i)||h.isInternetExplorer()&&h.getInternetExplorerMajorVersion()<8)},h.enabled=!h.emulated.pushState,h.bugs={setHash:Boolean(!h.emulated.pushState&&"Apple Computer, Inc."===o.vendor&&/AppleWebKit\/5([0-2]|3[0-3])/.test(o.userAgent)),safariPoll:Boolean(!h.emulated.pushState&&"Apple Computer, Inc."===o.vendor&&/AppleWebKit\/5([0-2]|3[0-3])/.test(o.userAgent)),ieDoubleCheck:Boolean(h.isInternetExplorer()&&h.getInternetExplorerMajorVersion()<8),hashEscape:Boolean(h.isInternetExplorer()&&h.getInternetExplorerMajorVersion()<7)},h.isEmptyObject=function(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0},h.cloneObject=function(t){var e,n;return t?(e=u.stringify(t),n=u.parse(e)):n={},n},h.getRootUrl=function(){var t=i.location.protocol+"//"+(i.location.hostname||i.location.host);return i.location.port&&(t+=":"+i.location.port),t+="/",t},h.getBaseHref=function(){var t=i.getElementsByTagName("base"),e=null,n="";return 1===t.length&&(e=t[0],n=e.href.replace(/[^\/]+$/,"")),n=n.replace(/\/+$/,""),n&&(n+="/"),n},h.getBaseUrl=function(){var t=h.getBaseHref()||h.getBasePageUrl()||h.getRootUrl();return t},h.getPageUrl=function(){var t,e=h.getState(!1,!1),n=(e||{}).url||h.getLocationHref();return t=n.replace(/\/+$/,"").replace(/[^\/]+$/,function(t,e,n){return/\./.test(t)?t:t+"/"}),t},h.getBasePageUrl=function(){var t=h.getLocationHref().replace(/[#\?].*/,"").replace(/[^\/]+$/,function(t,e,n){return/[^\/]$/.test(t)?"":t}).replace(/\/+$/,"")+"/";return t},h.getFullUrl=function(t,e){var n=t,i=t.substring(0,1);return e=void 0===e||e,/[a-z]+\:\/\//.test(t)||(n="/"===i?h.getRootUrl()+t.replace(/^\/+/,""):"#"===i?h.getPageUrl().replace(/#.*/,"")+t:"?"===i?h.getPageUrl().replace(/[\?#].*/,"")+t:e?h.getBaseUrl()+t.replace(/^(\.\/)+/,""):h.getBasePageUrl()+t.replace(/^(\.\/)+/,"")),n.replace(/\#$/,"")},h.getShortUrl=function(t){var e=t,n=h.getBaseUrl(),i=h.getRootUrl();return h.emulated.pushState&&(e=e.replace(n,"")),e=e.replace(i,"/"),h.isTraditionalAnchor(e)&&(e="./"+e),e=e.replace(/^(\.\/)+/g,"./").replace(/\#$/,""),e},h.getLocationHref=function(t){return t=t||i,t.URL===t.location.href?t.location.href:t.location.href===decodeURIComponent(t.URL)?t.URL:t.location.hash&&decodeURIComponent(t.location.href.replace(/^[^#]+/,""))===t.location.hash?t.location.href:-1==t.URL.indexOf("#")&&-1!=t.location.href.indexOf("#")?t.location.href:t.URL||t.location.href},h.store={},h.idToState=h.idToState||{},h.stateToId=h.stateToId||{},h.urlToId=h.urlToId||{},h.storedStates=h.storedStates||[],h.savedStates=h.savedStates||[],h.normalizeStore=function(){h.store.idToState=h.store.idToState||{},h.store.urlToId=h.store.urlToId||{},h.store.stateToId=h.store.stateToId||{}},h.getState=function(t,e){void 0===t&&(t=!0),void 0===e&&(e=!0);var n=h.getLastSavedState();return!n&&e&&(n=h.createStateObject()),t&&(n=h.cloneObject(n),n.url=n.cleanUrl||n.url),n},h.getIdByState=function(t){var e,n=h.extractId(t.url);if(!n)if(e=h.getStateString(t),void 0!==h.stateToId[e])n=h.stateToId[e];else if(void 0!==h.store.stateToId[e])n=h.store.stateToId[e];else{for(;n=(new Date).getTime()+String(Math.random()).replace(/\D/g,""),void 0!==h.idToState[n]||void 0!==h.store.idToState[n];);h.stateToId[e]=n,h.idToState[n]=t}return n},h.normalizeState=function(t){var e,n;return t&&"object"==typeof t||(t={}),void 0!==t.normalized?t:(t.data&&"object"==typeof t.data||(t.data={}),e={},e.normalized=!0,e.title=t.title||"",e.url=h.getFullUrl(t.url?t.url:h.getLocationHref()),e.hash=h.getShortUrl(e.url),e.data=h.cloneObject(t.data),e.id=h.getIdByState(e),e.cleanUrl=e.url.replace(/\??\&_suid.*/,""),e.url=e.cleanUrl,n=!h.isEmptyObject(e.data),(e.title||n)&&!0!==h.options.disableSuid&&(e.hash=h.getShortUrl(e.url).replace(/\??\&_suid.*/,""),/\?/.test(e.hash)||(e.hash+="?"),e.hash+="&_suid="+e.id),e.hashedUrl=h.getFullUrl(e.hash),(h.emulated.pushState||h.bugs.safariPoll)&&h.hasUrlDuplicate(e)&&(e.url=e.hashedUrl),e)},h.createStateObject=function(t,e,n){var i={data:t,title:e,url:n};return i=h.normalizeState(i),i},h.getStateById=function(t){t=String(t);var n=h.idToState[t]||h.store.idToState[t]||e;return n},h.getStateString=function(t){var e,n,i;return e=h.normalizeState(t),n={data:e.data,title:t.title,url:t.url},i=u.stringify(n),i},h.getStateId=function(t){var e,n;return e=h.normalizeState(t),n=e.id,n},h.getHashByState=function(t){var e,n;return e=h.normalizeState(t),n=e.hash,n},h.extractId=function(t){var e,n,i;return i=-1!=t.indexOf("#")?t.split("#")[0]:t,n=/(.*)\&_suid=([0-9]+)$/.exec(i),n&&n[1]||t,e=n?String(n[2]||""):"",e||!1},h.isTraditionalAnchor=function(t){var e=!/[\/\?\.]/.test(t);return e},h.extractState=function(t,e){var n,i,o=null;return e=e||!1,n=h.extractId(t),n&&(o=h.getStateById(n)),o||(i=h.getFullUrl(t),n=h.getIdByUrl(i)||!1,n&&(o=h.getStateById(n)),!o&&e&&!h.isTraditionalAnchor(t)&&(o=h.createStateObject(null,null,i))),o},h.getIdByUrl=function(t){var n=h.urlToId[t]||h.store.urlToId[t]||e;return n},h.getLastSavedState=function(){return h.savedStates[h.savedStates.length-1]||e},h.getLastStoredState=function(){return h.storedStates[h.storedStates.length-1]||e},h.hasUrlDuplicate=function(t){var e,n=!1;return e=h.extractState(t.url),n=e&&e.id!==t.id,n},h.storeState=function(t){return h.urlToId[t.url]=t.id,h.storedStates.push(h.cloneObject(t)),t},h.isLastSavedState=function(t){var e,n,i,o=!1;return h.savedStates.length&&(e=t.id,n=h.getLastSavedState(),i=n.id,o=e===i),o},h.saveState=function(t){return!h.isLastSavedState(t)&&(h.savedStates.push(h.cloneObject(t)),!0)},h.getStateByIndex=function(t){var e=null;return e=void 0===t?h.savedStates[h.savedStates.length-1]:t<0?h.savedStates[h.savedStates.length+t]:h.savedStates[t],e},h.getCurrentIndex=function(){var t=null;return t=h.savedStates.length<1?0:h.savedStates.length-1,t},h.getHash=function(t){var e,n=h.getLocationHref(t);return e=h.getHashByUrl(n),e},h.unescapeHash=function(t){var e=h.normalizeHash(t);return e=decodeURIComponent(e),e},h.normalizeHash=function(t){var e=t.replace(/[^#]*#/,"").replace(/#.*/,"");return e},h.setHash=function(t,e){var n,o;return!1!==e&&h.busy()?(h.pushQueue({scope:h,callback:h.setHash,args:arguments,queue:e}),!1):(h.busy(!0),n=h.extractState(t,!0),n&&!h.emulated.pushState?h.pushState(n.data,n.title,n.url,!1):h.getHash()!==t&&(h.bugs.setHash?(o=h.getPageUrl(),h.pushState(null,null,o+"#"+t,!1)):i.location.hash=t),h)},h.escapeHash=function(e){var n=h.normalizeHash(e);return n=t.encodeURIComponent(n),h.bugs.hashEscape||(n=n.replace(/\%21/g,"!").replace(/\%26/g,"&").replace(/\%3D/g,"=").replace(/\%3F/g,"?")),n},h.getHashByUrl=function(t){var e=String(t).replace(/([^#]*)#?([^#]*)#?(.*)/,"$2");return e=h.unescapeHash(e),e},h.setTitle=function(t){var e,n=t.title;n||(e=h.getStateByIndex(0),e&&e.url===t.url&&(n=e.title||h.options.initialTitle));try{i.getElementsByTagName("title")[0].innerHTML=n.replace("<","<").replace(">",">").replace(" & "," & ")}catch(t){}return i.title=n,h},h.queues=[],h.busy=function(t){if(void 0!==t?h.busy.flag=t:void 0===h.busy.flag&&(h.busy.flag=!1),!h.busy.flag){s(h.busy.timeout);var e=function(){var t,n,i;if(!h.busy.flag)for(t=h.queues.length-1;t>=0;--t)n=h.queues[t],0!==n.length&&(i=n.shift(),h.fireQueueItem(i),h.busy.timeout=a(e,h.options.busyDelay))};h.busy.timeout=a(e,h.options.busyDelay)}return h.busy.flag},h.busy.flag=!1,h.fireQueueItem=function(t){return t.callback.apply(t.scope||h,t.args||[])},h.pushQueue=function(t){return h.queues[t.queue||0]=h.queues[t.queue||0]||[],h.queues[t.queue||0].push(t),h},h.queue=function(t,e){return"function"==typeof t&&(t={callback:t}),void 0!==e&&(t.queue=e),h.busy()?h.pushQueue(t):h.fireQueueItem(t),h},h.clearQueue=function(){return h.busy.flag=!1,h.queues=[],h},h.stateChanged=!1,h.doubleChecker=!1,h.doubleCheckComplete=function(){return h.stateChanged=!0,h.doubleCheckClear(),h},h.doubleCheckClear=function(){return h.doubleChecker&&(s(h.doubleChecker),h.doubleChecker=!1),h},h.doubleCheck=function(t){return h.stateChanged=!1,h.doubleCheckClear(),h.bugs.ieDoubleCheck&&(h.doubleChecker=a(function(){return h.doubleCheckClear(),h.stateChanged||t(),!0},h.options.doubleCheckInterval)),h},h.safariStatePoll=function(){var e,n=h.extractState(h.getLocationHref());if(!h.isLastSavedState(n))return e=n,e||(e=h.createStateObject()),h.Adapter.trigger(t,"popstate"),h},h.back=function(t){return!1!==t&&h.busy()?(h.pushQueue({scope:h,callback:h.back,args:arguments,queue:t}),!1):(h.busy(!0),h.doubleCheck(function(){h.back(!1)}),f.go(-1),!0)},h.forward=function(t){return!1!==t&&h.busy()?(h.pushQueue({scope:h,callback:h.forward,args:arguments,queue:t}),!1):(h.busy(!0),h.doubleCheck(function(){h.forward(!1)}),f.go(1),!0)},h.go=function(t,e){var n;if(t>0)for(n=1;n<=t;++n)h.forward(e);else{if(!(t<0))throw new Error("History.go: History.go requires a positive or negative integer passed.");for(n=-1;n>=t;--n)h.back(e)}return h},h.emulated.pushState){var g=function(){};h.pushState=h.pushState||g,h.replaceState=h.replaceState||g}else h.onPopState=function(e,n){var i,o,r=!1,a=!1;return h.doubleCheckComplete(),i=h.getHash(),i?(o=h.extractState(i||h.getLocationHref(),!0),o?h.replaceState(o.data,o.title,o.url,!1):(h.Adapter.trigger(t,"anchorchange"),h.busy(!1)),h.expectedStateId=!1,!1):(r=h.Adapter.extractEventData("state",e,n)||!1,a=r?h.getStateById(r):h.expectedStateId?h.getStateById(h.expectedStateId):h.extractState(h.getLocationHref()),a||(a=h.createStateObject(null,null,h.getLocationHref())),h.expectedStateId=!1,h.isLastSavedState(a)?(h.busy(!1),!1):(h.storeState(a),h.saveState(a),h.setTitle(a),h.Adapter.trigger(t,"statechange"),h.busy(!1),!0))},h.Adapter.bind(t,"popstate",h.onPopState),h.pushState=function(e,n,i,o){if(h.getHashByUrl(i)&&h.emulated.pushState)throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(!1!==o&&h.busy())return h.pushQueue({scope:h,callback:h.pushState,args:arguments,queue:o}),!1;h.busy(!0);var r=h.createStateObject(e,n,i);return h.isLastSavedState(r)?h.busy(!1):(h.storeState(r),h.expectedStateId=r.id,f.pushState(r.id,r.title,r.url),h.Adapter.trigger(t,"popstate")),!0},h.replaceState=function(e,n,i,o){if(h.getHashByUrl(i)&&h.emulated.pushState)throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(!1!==o&&h.busy())return h.pushQueue({scope:h,callback:h.replaceState,args:arguments,queue:o}),!1;h.busy(!0);var r=h.createStateObject(e,n,i);return h.isLastSavedState(r)?h.busy(!1):(h.storeState(r),h.expectedStateId=r.id,f.replaceState(r.id,r.title,r.url),h.Adapter.trigger(t,"popstate")),!0};if(r){try{h.store=u.parse(r.getItem("History.store"))||{}}catch(t){h.store={}}h.normalizeStore()}else h.store={},h.normalizeStore();h.Adapter.bind(t,"unload",h.clearAllIntervals),h.saveState(h.storeState(h.extractState(h.getLocationHref(),!0))),r&&(h.onUnload=function(){var t,e,n;try{t=u.parse(r.getItem("History.store"))||{}}catch(e){t={}}for(e in t.idToState=t.idToState||{},t.urlToId=t.urlToId||{},t.stateToId=t.stateToId||{},h.idToState)h.idToState.hasOwnProperty(e)&&(t.idToState[e]=h.idToState[e]);for(e in h.urlToId)h.urlToId.hasOwnProperty(e)&&(t.urlToId[e]=h.urlToId[e]);for(e in h.stateToId)h.stateToId.hasOwnProperty(e)&&(t.stateToId[e]=h.stateToId[e]);h.store=t,h.normalizeStore(),n=u.stringify(t);try{r.setItem("History.store",n)}catch(t){if(t.code!==DOMException.QUOTA_EXCEEDED_ERR)throw t;r.length&&(r.removeItem("History.store"),r.setItem("History.store",n))}},h.intervalList.push(l(h.onUnload,h.options.storeInterval)),h.Adapter.bind(t,"beforeunload",h.onUnload),h.Adapter.bind(t,"unload",h.onUnload)),h.emulated.pushState||(h.bugs.safariPoll&&h.intervalList.push(l(h.safariStatePoll,h.options.safariPollInterval)),"Apple Computer, Inc."!==o.vendor&&"Mozilla"!==(o.appCodeName||"")||(h.Adapter.bind(t,"hashchange",function(){h.Adapter.trigger(t,"popstate")}),h.getHash()&&h.Adapter.onDomLoad(function(){h.Adapter.trigger(t,"hashchange")})))},(!h.options||!h.options.delayInit)&&h.init()}(window),function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(window.jQuery)}(function(t){var e=0;t.ajaxTransport("iframe",function(n){var i,o,r;if(n.async)return{send:function(a,s){i=t(''),i.attr("accept-charset",n.formAcceptCharset),r=/\?/.test(n.url)?"&":"?","DELETE"===n.type?(n.url=n.url+r+"_method=DELETE", -n.type="POST"):"PUT"===n.type?(n.url=n.url+r+"_method=PUT",n.type="POST"):"PATCH"===n.type&&(n.url=n.url+r+"_method=PATCH",n.type="POST"),e+=1,o=t('').bind("load",function(){var e,r=t.isArray(n.paramName)?n.paramName:[n.paramName];o.unbind("load").bind("load",function(){var e;try{if(e=o.contents(),!e.length||!e[0].firstChild)throw new Error}catch(t){e=void 0}s(200,"success",{iframe:e}),t('').appendTo(i),window.setTimeout(function(){i.remove()},0)}),i.prop("target",o.prop("name")).prop("action",n.url).prop("method",n.type),n.formData&&t.each(n.formData,function(e,n){t('').prop("name",n.name).val(n.value).appendTo(i)}),n.fileInput&&n.fileInput.length&&"POST"===n.type&&(e=n.fileInput.clone(),n.fileInput.after(function(t){return e[t]}),n.paramName&&n.fileInput.each(function(e){t(this).prop("name",r[e]||n.paramName)}),i.append(n.fileInput).prop("enctype","multipart/form-data").prop("encoding","multipart/form-data")),i.submit(),e&&e.length&&n.fileInput.each(function(n,i){var o=t(e[n]);t(i).prop("name",o.prop("name")),o.replaceWith(i)})}),i.append(o).appendTo(document.body)},abort:function(){o&&o.unbind("load").prop("src","javascript".concat(":false;")),i&&i.remove()}}}),t.ajaxSetup({converters:{"iframe text":function(e){return e&&t(e[0].body).text()},"iframe json":function(e){return e&&t.parseJSON(t(e[0].body).text())},"iframe html":function(e){return e&&t(e[0].body).html()},"iframe xml":function(e){var n=e&&e[0];return n&&t.isXMLDoc(n)?n:t.parseXML(n.XMLDocument&&n.XMLDocument.xml||t(n.body).html())},"iframe script":function(e){return e&&t.globalEval(t(e[0].body).text())}}})}),function(t,e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Spinner=e()}(this,function(){function t(t,e){var n,i=document.createElement(t||"div");for(n in e)i[n]=e[n];return i}function e(t){for(var e=1,n=arguments.length;e',n)}p.addRule(".spin-vml","behavior:url(#default#VML)"),l.prototype.lines=function(t,i){function r(){return o(n("group",{coordsize:u+" "+u,coordorigin:-c+" "+-c}),{width:u,height:u})}function a(t,a,l){e(h,e(o(r(),{rotation:360/i.lines*t+"deg",left:~~a}),e(o(n("roundrect",{arcsize:i.corners}),{width:c,height:i.width,left:i.radius,top:-i.width>>1,filter:l}),n("fill",{color:s(i.color,t),opacity:i.opacity}),n("stroke",{opacity:0}))))}var l,c=i.length+i.width,u=2*c,d=2*-(i.width+i.length)+"px",h=o(r(),{position:"absolute",top:d,left:d});if(i.shadow)for(l=1;l<=i.lines;l++)a(l,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(l=1;l<=i.lines;l++)a(l);return e(t,h)},l.prototype.opacity=function(t,e,n,i){var o=t.firstChild;i=i.shadow&&i.lines||0,o&&e+i>1):parseInt(s.left,10)+c)+"px",top:("auto"==s.top?i.y-n.y+(e.offsetHeight>>1):parseInt(s.top,10)+c)+"px"})),l.setAttribute("role","progressbar"),r.lines(l,r.opts),!u){var d,h=0,f=(s.lines-1)*(1-s.direction)/2,p=s.fps,g=p/s.speed,m=(1-s.opacity)/(g*s.trail/100),b=g/s.lines;(function t(){h++;for(var e=0;e>1)+"px"})}for(var l,c=0,d=(r.lines-1)*(1-r.direction)/2;ce.clientHeight,t.horizontal=e.scrollWidth>e.clientWidth,t}}(jQuery),function(t){function e(e,n){this.el=t(e),this.options=n||{},this.x=!1!==this.options.x||this.options.forceHorizontal,this.y=!1!==this.options.y||this.options.forceVertical,this.autoHide=!1!==this.options.autoHide,this.padding=null==this.options.padding?2:this.options.padding,this.inner=this.el.find(".antiscroll-inner"),this.inner.css({width:"+="+(this.y?o():0),height:"+="+(this.x?o():0)}),this.refresh()}function n(e){this.pane=e,this.pane.el.append(this.el),this.innerEl=this.pane.inner.get(0),this.dragging=!1,this.enter=!1,this.shown=!1,this.pane.el.mouseenter(t.proxy(this,"mouseenter")),this.pane.el.mouseleave(t.proxy(this,"mouseleave")),this.el.mousedown(t.proxy(this,"mousedown")),this.innerPaneScrollListener=t.proxy(this,"scroll"),this.pane.inner.scroll(this.innerPaneScrollListener),this.innerPaneMouseWheelListener=t.proxy(this,"mousewheel"),this.pane.inner.bind("mousewheel",this.innerPaneMouseWheelListener);var n=this.pane.options.initialDisplay;!1!==n&&(this.show(),this.pane.autoHide&&(this.hiding=setTimeout(t.proxy(this,"hide"),parseInt(n,10)||3e3)))}function i(t,e){function n(){}n.prototype=e.prototype,t.prototype=new n}function o(){if(void 0===r){var e=t('
    ');t("body").append(e);var n=t(e).innerWidth(),i=t("div",e).innerWidth();t(e).remove(),r=n-i}return r}var r;t.fn.antiscroll=function(e){return this.each(function(){t(this).data("antiscroll")&&t(this).data("antiscroll").destroy(),t(this).data("antiscroll",new t.Antiscroll(this,e))})},t.Antiscroll=e,e.prototype.refresh=function(){var t=this.inner.get(0).scrollWidth>this.el.width()+(this.y?o():0),e=this.inner.get(0).scrollHeight>this.el.height()+(this.x?o():0);this.x&&(!this.horizontal&&t?this.horizontal=new n.Horizontal(this):this.horizontal&&!t?(this.horizontal.destroy(),this.horizontal=null):this.horizontal&&this.horizontal.update()),this.y&&(!this.vertical&&e?this.vertical=new n.Vertical(this):this.vertical&&!e?(this.vertical.destroy(),this.vertical=null):this.vertical&&this.vertical.update())},e.prototype.destroy=function(){return this.horizontal&&(this.horizontal.destroy(),this.horizontal=null),this.vertical&&(this.vertical.destroy(),this.vertical=null),this},e.prototype.rebuild=function(){return this.destroy(),this.inner.attr("style",""),e.call(this,this.el,this.options),this},n.prototype.destroy=function(){return this.el.remove(),this.pane.inner.unbind("scroll",this.innerPaneScrollListener),this.pane.inner.unbind("mousewheel",this.innerPaneMouseWheelListener),this},n.prototype.mouseenter=function(){this.enter=!0,this.show()},n.prototype.mouseleave=function(){this.enter=!1,this.dragging||this.pane.autoHide&&this.hide()},n.prototype.scroll=function(){this.shown||(this.show(),this.enter||this.dragging||this.pane.autoHide&&(this.hiding=setTimeout(t.proxy(this,"hide"),1500))),this.update()},n.prototype.mousedown=function(e){e.preventDefault(),this.dragging=!0,this.startPageY=e.pageY-parseInt(this.el.css("top"),10),this.startPageX=e.pageX-parseInt(this.el.css("left"),10),this.el[0].ownerDocument.onselectstart=function(){return!1};this.pane;var n=t.proxy(this,"mousemove"),i=this;t(this.el[0].ownerDocument).mousemove(n).mouseup(function(){i.dragging=!1,this.onselectstart=null,t(this).unbind("mousemove",n),i.enter||i.hide()})},n.prototype.show=function(t){!this.shown&&this.update()&&(this.el.addClass("antiscroll-scrollbar-shown"),this.hiding&&(clearTimeout(this.hiding),this.hiding=null),this.shown=!0)},n.prototype.hide=function(){!1!==this.pane.autoHide&&this.shown&&(this.el.removeClass("antiscroll-scrollbar-shown"),this.shown=!1)},n.Horizontal=function(e){this.el=t('
    ',e.el),n.call(this,e)},i(n.Horizontal,n),n.Horizontal.prototype.update=function(){var t=this.pane.el.width(),e=t-2*this.pane.padding,n=this.pane.inner.get(0);return this.el.css("width",e*t/n.scrollWidth).css("left",e*n.scrollLeft/n.scrollWidth),t0&&this.innerEl.scrollLeft+Math.ceil(this.pane.el.width())==this.innerEl.scrollWidth)return t.preventDefault(),!1},n.Vertical=function(e){this.el=t('
    ',e.el),n.call(this,e)},i(n.Vertical,n),n.Vertical.prototype.update=function(){var t=this.pane.el.height(),e=t-2*this.pane.padding,n=this.innerEl,i=e*t/n.scrollHeight;i=i<20?20:i;var o=e*n.scrollTop/n.scrollHeight;if(o+i>e){var r=o+i-e;o=o-r-3}return this.el.css("height",i).css("top",o),t0&&0==this.innerEl.scrollTop||i<0&&this.innerEl.scrollTop+Math.ceil(this.pane.el.height())==this.innerEl.scrollHeight)return t.preventDefault(),!1}}(jQuery),function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof exports?module.exports=t:t(jQuery)}(function(t){function e(e){var o,r=e||window.event,a=[].slice.call(arguments,1),s=0,l=0,c=0,u=0,d=0;return e=t.event.fix(r),e.type="mousewheel",r.wheelDelta&&(s=r.wheelDelta),r.detail&&(s=-1*r.detail),r.deltaY&&(c=-1*r.deltaY,s=c),r.deltaX&&(l=r.deltaX,s=-1*l),void 0!==r.wheelDeltaY&&(c=r.wheelDeltaY),void 0!==r.wheelDeltaX&&(l=-1*r.wheelDeltaX),u=Math.abs(s),(!n||u0?"floor":"ceil",s=Math[o](s/n),l=Math[o](l/i),c=Math[o](c/i),a.unshift(e,s,l,c),(t.event.dispatch||t.event.handle).apply(this,a)}var n,i,o=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],r="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"];if(t.event.fixHooks)for(var a=o.length;a;)t.event.fixHooks[o[--a]]=t.event.mouseHooks;t.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var t=r.length;t;)this.addEventListener(r[--t],e,!1);else this.onmousewheel=e},teardown:function(){if(this.removeEventListener)for(var t=r.length;t;)this.removeEventListener(r[--t],e,!1);else this.onmousewheel=null}},t.fn.extend({mousewheel:function(t){return t?this.bind("mousewheel",t):this.trigger("mousewheel")},unmousewheel:function(t){return this.unbind("mousewheel",t)}})}),function(t){t.fn.delayedAction=function(e){var n=t.extend({},{delayedAction:function(){},cancelledAction:function(){},hoverTime:1e3},e);return this.each(function(){var e=t(this);e.hover(function(){e.data("timerId",setTimeout(function(){e.data("hover",!1),n.delayedAction(e)},n.hoverTime)),e.data("hover",!0)},function(){e.data("hover")&&(clearTimeout(e.data("timerId")),n.cancelledAction(e)),e.data("hover",!1)})})}}(jQuery),function(t){if("object"==typeof exports)module.exports=t();else if("function"==typeof define&&define.amd)define(t);else{var e;try{e=window}catch(t){e=self}e.SparkMD5=t()}}(function(t){"use strict";function e(t,e,n,i,o,r){return e=v(v(e,t),v(i,r)),v(e<>>32-o,n)}function n(t,n,i,o,r,a,s){return e(n&i|~n&o,t,n,r,a,s)}function i(t,n,i,o,r,a,s){return e(n&o|i&~o,t,n,r,a,s)}function o(t,n,i,o,r,a,s){return e(n^i^o,t,n,r,a,s)}function r(t,n,i,o,r,a,s){return e(i^(n|~o),t,n,r,a,s)}function a(t,e){var a=t[0],s=t[1],l=t[2],c=t[3];a=n(a,s,l,c,e[0],7,-680876936),c=n(c,a,s,l,e[1],12,-389564586),l=n(l,c,a,s,e[2],17,606105819),s=n(s,l,c,a,e[3],22,-1044525330),a=n(a,s,l,c,e[4],7,-176418897),c=n(c,a,s,l,e[5],12,1200080426),l=n(l,c,a,s,e[6],17,-1473231341),s=n(s,l,c,a,e[7],22,-45705983),a=n(a,s,l,c,e[8],7,1770035416),c=n(c,a,s,l,e[9],12,-1958414417),l=n(l,c,a,s,e[10],17,-42063),s=n(s,l,c,a,e[11],22,-1990404162),a=n(a,s,l,c,e[12],7,1804603682),c=n(c,a,s,l,e[13],12,-40341101),l=n(l,c,a,s,e[14],17,-1502002290),s=n(s,l,c,a,e[15],22,1236535329),a=i(a,s,l,c,e[1],5,-165796510),c=i(c,a,s,l,e[6],9,-1069501632),l=i(l,c,a,s,e[11],14,643717713),s=i(s,l,c,a,e[0],20,-373897302),a=i(a,s,l,c,e[5],5,-701558691),c=i(c,a,s,l,e[10],9,38016083),l=i(l,c,a,s,e[15],14,-660478335),s=i(s,l,c,a,e[4],20,-405537848),a=i(a,s,l,c,e[9],5,568446438),c=i(c,a,s,l,e[14],9,-1019803690),l=i(l,c,a,s,e[3],14,-187363961),s=i(s,l,c,a,e[8],20,1163531501),a=i(a,s,l,c,e[13],5,-1444681467),c=i(c,a,s,l,e[2],9,-51403784),l=i(l,c,a,s,e[7],14,1735328473),s=i(s,l,c,a,e[12],20,-1926607734),a=o(a,s,l,c,e[5],4,-378558),c=o(c,a,s,l,e[8],11,-2022574463),l=o(l,c,a,s,e[11],16,1839030562),s=o(s,l,c,a,e[14],23,-35309556),a=o(a,s,l,c,e[1],4,-1530992060),c=o(c,a,s,l,e[4],11,1272893353),l=o(l,c,a,s,e[7],16,-155497632),s=o(s,l,c,a,e[10],23,-1094730640),a=o(a,s,l,c,e[13],4,681279174),c=o(c,a,s,l,e[0],11,-358537222),l=o(l,c,a,s,e[3],16,-722521979),s=o(s,l,c,a,e[6],23,76029189),a=o(a,s,l,c,e[9],4,-640364487),c=o(c,a,s,l,e[12],11,-421815835),l=o(l,c,a,s,e[15],16,530742520),s=o(s,l,c,a,e[2],23,-995338651),a=r(a,s,l,c,e[0],6,-198630844),c=r(c,a,s,l,e[7],10,1126891415),l=r(l,c,a,s,e[14],15,-1416354905),s=r(s,l,c,a,e[5],21,-57434055),a=r(a,s,l,c,e[12],6,1700485571),c=r(c,a,s,l,e[3],10,-1894986606),l=r(l,c,a,s,e[10],15,-1051523),s=r(s,l,c,a,e[1],21,-2054922799),a=r(a,s,l,c,e[8],6,1873313359),c=r(c,a,s,l,e[15],10,-30611744),l=r(l,c,a,s,e[6],15,-1560198380),s=r(s,l,c,a,e[13],21,1309151649),a=r(a,s,l,c,e[4],6,-145523070),c=r(c,a,s,l,e[11],10,-1120210379),l=r(l,c,a,s,e[2],15,718787259),s=r(s,l,c,a,e[9],21,-343485551),t[0]=v(a,t[0]),t[1]=v(s,t[1]),t[2]=v(l,t[2]),t[3]=v(c,t[3])}function s(t){var e,n=[];for(e=0;e<64;e+=4)n[e>>2]=t.charCodeAt(e)+(t.charCodeAt(e+1)<<8)+(t.charCodeAt(e+2)<<16)+(t.charCodeAt(e+3)<<24);return n}function l(t){var e,n=[];for(e=0;e<64;e+=4)n[e>>2]=t[e]+(t[e+1]<<8)+(t[e+2]<<16)+(t[e+3]<<24);return n}function c(t){var e,n,i,o,r,l,c=t.length,u=[1732584193,-271733879,-1732584194,271733878];for(e=64;e<=c;e+=64)a(u,s(t.substring(e-64,e)));for(t=t.substring(e-64),n=t.length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],e=0;e>2]|=t.charCodeAt(e)<<(e%4<<3);if(i[e>>2]|=128<<(e%4<<3),e>55)for(a(u,i),e=0;e<16;e+=1)i[e]=0;return o=8*c,o=o.toString(16).match(/(.*?)(.{0,8})$/),r=parseInt(o[2],16),l=parseInt(o[1],16)||0,i[14]=r,i[15]=l,a(u,i),u}function u(t){var e,n,i,o,r,s,c=t.length,u=[1732584193,-271733879,-1732584194,271733878];for(e=64;e<=c;e+=64)a(u,l(t.subarray(e-64,e)));for(t=e-64>2]|=t[e]<<(e%4<<3);if(i[e>>2]|=128<<(e%4<<3),e>55)for(a(u,i),e=0;e<16;e+=1)i[e]=0;return o=8*c,o=o.toString(16).match(/(.*?)(.{0,8})$/),r=parseInt(o[2],16),s=parseInt(o[1],16)||0,i[14]=r,i[15]=s,a(u,i),u}function d(t){var e,n="";for(e=0;e<4;e+=1)n+=y[t>>8*e+4&15]+y[t>>8*e&15];return n}function h(t){var e;for(e=0;e>16)+(e>>16)+(n>>16);return i<<16|65535&n}),b.prototype.append=function(t){return this.appendBinary(f(t)),this},b.prototype.appendBinary=function(t){this._buff+=t,this._length+=t.length;var e,n=this._buff.length;for(e=64;e<=n;e+=64)a(this._hash,s(this._buff.substring(e-64,e)));return this._buff=this._buff.substring(e-64),this},b.prototype.end=function(t){var e,n,i=this._buff,o=i.length,r=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(e=0;e>2]|=i.charCodeAt(e)<<(e%4<<3);return this._finish(r,o),n=t?this._hash:h(this._hash),this.reset(),n},b.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},b.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash}},b.prototype.setState=function(t){return this._buff=t.buff,this._length=t.length,this._hash=t.hash,this},b.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},b.prototype._finish=function(t,e){var n,i,o,r=e;if(t[r>>2]|=128<<(r%4<<3),r>55)for(a(this._hash,t),r=0;r<16;r+=1)t[r]=0;n=8*this._length,n=n.toString(16).match(/(.*?)(.{0,8})$/),i=parseInt(n[2],16),o=parseInt(n[1],16)||0,t[14]=i,t[15]=o,a(this._hash,t)},b.hash=function(t,e){return b.hashBinary(f(t),e)},b.hashBinary=function(t,e){var n=c(t);return e?n:h(n)},b.ArrayBuffer=function(){this.reset()},b.ArrayBuffer.prototype.append=function(t){var e,n=m(this._buff.buffer,t,!0),i=n.length;for(this._length+=t.byteLength,e=64;e<=i;e+=64)a(this._hash,l(n.subarray(e-64,e)));return this._buff=e-64>2]|=i[e]<<(e%4<<3);return this._finish(r,o),n=t?this._hash:h(this._hash),this.reset(),n},b.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},b.ArrayBuffer.prototype.getState=function(){var t=b.prototype.getState.call(this);return t.buff=g(t.buff),t},b.ArrayBuffer.prototype.setState=function(t){return t.buff=p(t.buff,!0),b.prototype.setState.call(this,t)},b.ArrayBuffer.prototype.destroy=b.prototype.destroy,b.ArrayBuffer.prototype._finish=b.prototype._finish,b.ArrayBuffer.hash=function(t,e){var n=u(new Uint8Array(t));return e?n:h(n)},b}),function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Clipboard=t()}}(function(){return function t(e,n,i){function o(a,s){if(!n[a]){if(!e[a]){var l="function"==typeof require&&require;if(!s&&l)return l(a,!0);if(r)return r(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var u=n[a]={exports:{}};e[a][0].call(u.exports,function(t){var n=e[a][1][t];return o(n||t)},u,u.exports,t,e,n,i)}return n[a].exports}for(var r="function"==typeof require&&require,a=0;ai;i++)n[i].fn.apply(n[i].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),i=n[t],o=[];if(i&&e)for(var r=0,a=i.length;a>r;r++)i[r].fn!==e&&i[r].fn._!==e&&o.push(i[r]);return o.length?n[t]=o:delete n[t],this}},e.exports=i},{}],8:[function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}n.__esModule=!0;var r=function(){function t(t,e){for(var n=0;n=e?"":new Array(1+e-t.length>>>0).join(n);return i?t+o:o+t},r=function(t,e,n,i,r,a){var s=i-t.length;return s>0&&(t=n||!r?o(t,i,a,n):t.slice(0,e.length)+o("",s,"0",!0)+t.slice(e.length)),t},a=function(t,e,n,i,a,s,l){var c=t>>>0;return n=n&&c&&{2:"0b",8:"0",16:"0x"}[e]||"",t=n+o(c.toString(e),s||0,"0",!1),r(t,n,i,a,l)},s=function(t,e,n,i,o,a){return null!=i&&(t=t.slice(0,i)),r(t,"",e,n,o,a)},l=function(t,i,l,c,u,d,h){var f,p,g,m,b;if("%%"===t)return"%";for(var v=!1,y="",w=!1,P=!1,$=" ",x=l.length,F=0;l&&F-1?6:"d"===h?0:void 0,b=i?e[i.slice(0,-1)]:e[n++],h){case"s":return s(String(b),v,c,d,w,$);case"c":return s(String.fromCharCode(+b),v,c,d,w);case"b":return a(b,2,P,v,c,d,w);case"o":return a(b,8,P,v,c,d,w);case"x":return a(b,16,P,v,c,d,w);case"X":return a(b,16,P,v,c,d,w).toUpperCase();case"u":return a(b,10,P,v,c,d,w);case"i":case"d":return f=+b||0,f=Math.round(f-f%1),p=f<0?"-":y,b=p+o(String(Math.abs(f)),d,"0",!1),r(b,p,v,c,w);case"e":case"E":case"f":case"F":case"g":case"G":return f=+b,p=f<0?"-":y,g=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],m=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],b=p+Math.abs(f)[g](d),r(b,p,v,c,w)[m]();default:return t}};return i.replace(t,l)}function testPassword(t){var e=0,n="weak",i="",o=0;return t.length<5?(e+=3,i=i+"3 points for length ("+t.length+")\n"):t.length>4&&t.length<8?(e+=6,i=i+"6 points for length ("+t.length+")\n"):t.length>7&&t.length<16?(e+=12,i=i+"12 points for length ("+t.length+")\n"):t.length>15&&(e+=18,i=i+"18 point for length ("+t.length+")\n"),t.match(/[a-z]/)&&(e+=1,i+="1 point for at least one lower case char\n"),t.match(/[A-Z]/)&&(e+=5,i+="5 points for at least one upper case char\n"),t.match(/\d+/)&&(e+=5,i+="5 points for at least one number\n"),t.match(/(.*[0-9].*[0-9].*[0-9])/)&&(e+=5,i+="5 points for at least three numbers\n"),t.match(/.[!,@,#,$,%,^,&,*,?,_,~]/)&&(e+=5,i+="5 points for at least one special char\n"),t.match(/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/)&&(e+=5,i+="5 points for at least two special chars\n"),t.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)&&(e+=2,i+="2 combo points for upper and lower letters\n"),t.match(/([a-zA-Z])/)&&t.match(/([0-9])/)&&(e+=2,i+="2 combo points for letters and numbers\n"),t.match(/([a-zA-Z0-9].*[!,@,#,$,%,^,&,*,?,_,~])|([!,@,#,$,%,^,&,*,?,_,~].*[a-zA-Z0-9])/)&&(e+=2,i+="2 combo points for letters, numbers and special chars\n"),0==t.length&&(e=0),n=e<16?"very weak":e>15&&e<25?"weak":e>24&&e<35?"average":e>34&&e<45?"strong":"stronger",o=Math.round(Math.min(100,100*e/45))/100,{score:e,ratio:o,percent:100*o+"%",verdict:n,log:i}}$(function(){var t={url:PF.obj.config.json_api,cache:!1,dataType:"json",data:{auth_token:PF.obj.config.auth_token}};void 0!==PF.obj.config.session_id&&(t.data.session_id=PF.obj.config.session_id),$.ajaxSetup(t),$(window).bind("beforeunload",function(){if("continue"!=$("form",PF.obj.modal.selectors.root).data("beforeunload"))return $(PF.obj.modal.selectors.root).is(":visible")&&PF.fn.form_modal_has_changed()?' '+PF.fn._s("All the changes that you have made will be lost if you continue."):void 0});let e=0;const n=void 0!==window.pageXOffset,i="CSS1Compat"===(document.compatMode||""),o=function(){let t,o=n?window.pageYOffset:i?document.documentElement.scrollTop:document.body.scrollTop;return t=o>e,e=o,t};var r;window.addEventListener("scroll",function(){r||(r=!0,setTimeout(function(){var t=o();$("#top-bar, .follow-scroll").each(function(){"1"!==$(this).attr("data-scroll-lock")&&$(this).addClass("scroll-"+(t?"down":"up")).removeClass("scroll-"+(t?"up":"down"))}),r=!1},250))}),$(window).bind("hashchange",function(){"#edit"!=window.location.hash||$(PF.obj.modal.selectors.root).exists()||$("[data-modal=edit]").first().click()}),PF.fn.bindtipTip();var a,s=0,l=$(window).width();if($(window).on("resize",function(){PF.fn.modal.styleAware(),PF.fn.close_pops(),clearTimeout(a),a=setTimeout(function(){PF.fn.modal.fixScrollbars();var t=PF.fn.getDeviceName(),e=["phone","phablet"],n=["tablet","laptop","desktop"],i=PF.fn.getDeviceName();(i!==t&&$.inArray(t,e)>=0&&-1==$.inArray(i,e)||$.inArray(t,n)>=0&&-1==$.inArray(i,n))&&PF.fn.close_pops(),$(".top-bar").css("top",""),$("body").css({position:"",height:""}),$(".antiscroll").removeClass("jsly").data("antiscroll",""),$(".antiscroll-inner").css({height:"",width:"",maxheight:""}),PF.fn.list_fluid_width(),l!==$(window).width()&&($(PF.obj.listing.selectors.list_item,PF.obj.listing.selectors.content_listing_visible).css("opacity",0),$("[data-action=top-bar-menu-full]","#top-bar").hasClass("current")&&PF.fn.topMenu.hide(0),PF.fn.listing.columnizer(!0,0,!0),$(PF.obj.listing.selectors.list_item,PF.obj.listing.selectors.content_listing_visible).css("opacity",1)),l=$(window).width()},s)}),$(document).on("click","html",function(){PF.fn.close_pops()}),$(document).on("keydown",".numeric-input",function(t){t.keydown_numeric()}),$(document).on("click","[data-scrollto]",function(t){var e=$(this).data("scrollto"),n=$(e.match(/^\#|\./)?e:"#"+e);n.exists()?PF.fn.scroll(n):console.log("PF scrollto error: target doesn't exists",n)}),$(document).on("click focus","[data-login-needed], [data-user-logged=must]",function(t){if(!PF.fn.is_user_logged())return t.preventDefault(),t.stopPropagation(),window.location.href=PF.obj.vars.urls.login,!1}),$(document).on("click","[data-trigger]",function(t){if(t.isPropagationStopped())return!1;var e=$(this).data("trigger"),n=$(e.match(/^\#|\./)?e:"#"+e);n.exists()?(t.stopPropagation(),t.preventDefault(),n.closest(PF.obj.modal.selectors.root).length||PF.fn.modal.close(),n.trigger("click")):console.log("PF trigger error: target doesn't exists",n)}),$("form[method=post]").each(function(){$("input[name=auth_token]",this).exists()||$(this).append($("",{type:"hidden",name:"auth_token",value:PF.obj.config.auth_token}))}),$(document).on("click",".clear-form",function(){$(this).closest("form")[0].reset()}),$(document).on("submit","form[data-action=validate]",function(t){$(this).data("type");var e=!1,n=$(this).find("[required], [data-validate]");if(n.each(function(){var t=$(this).attr("type"),n=$(this).attr("pattern"),i=function(t){$(t).highlight(),e=!0};if($(this).is("[required]")&&""==$(this).val()){if($(this).is(":hidden")){var o=$($($(this).data("highlight")).exists()?$(this).data("highlight"):"#"+$(this).data("highlight"));$(o).highlight()}i(this)}if(void 0===n&&0==/mail|url/.test(t))return!0;n&&(n=new RegExp(n),n.test($(this).val())||i(this)),"email"!=t||$(this).val().isEmail()||i(this)}),e)return PF.fn.growl.expirable(PF.fn._s("Check the errors in the form to continue.")),!1}),$(document).on("change","select[data-combo]",function(){var t=$("#"+$(this).data("combo"));t.exists()&&t.children(".switch-combo").hide();var e=$("#"+$(this).closest("select").data("combo")),n=$("[data-combo-value~="+$("option:selected",this).attr("value")+"]",e);n.exists()&&n.show().find("[data-required]").each(function(){$(this).attr("required","required")}),$(".switch-combo",e).each(function(){$(this).is(":visible")||$("[required]",this).attr("data-required",!0).removeAttr("required")})}),$(document).on("keyup",function(t){var e=$(t.target),n=t.originalEvent;"Escape"==n.key&&$(PF.obj.modal.selectors.root).is(":visible")&&(e.is(":input")?e.trigger("blur"):$("[data-action=cancel],[data-action=close-modal]",PF.obj.modal.selectors.root).first().trigger("click"),PF.fn.keyFeedback.spawn(t))}),$(document).on("change",":input",function(t){PF.fn.growl.close()}),$(document).on("keyup",":input",function(t){$(".input-warning",$(this).closest(".input-label")).html("")}),$(document).on("blur",":input",function(){var t=$.trim($(this).prop("value"));$(this).prop("value",t)}),$(document).on("click","[data-focus=select-all],[data-click=select-all]",function(){if($(this).is(":input"))this.select();else{var t=document.createRange();t.selectNodeContents(this);var e=window.getSelection();e.removeAllRanges(),e.addRange(t)}}),$(document).on("keyup change blur",":input[type=password]",function(){var t=testPassword($(this).val()),e=$(this).closest("div");""==$(this).val()&&(t.percent=0,t.verdict=""),$("[data-content=password-meter-bar]",e).attr("data-veredict",t.verdict.replace(/ /g,"-")).width(t.percent),$("[data-text=password-meter-message]",e).removeClass("red-warning").text(""!==t.verdict?PF.fn._s(t.verdict):"")}),$(document).on("click","[rel=popup-link], .popup-link",function(t){t.preventDefault();var e=$(this)[void 0!==$(this).attr("href")?"attr":"data"]("href");if(void 0!==e){if(PF.fn.isDevice(["phone","phablet"])){if("mailto"==e.substring(0,6))return void(window.location=e);if("share"==e.substring(0,5))return void(navigator.canShare&&navigator.share(PF.fn.deparam(e.substring(6))))}PF.fn.popup({href:e})}}),$(document).on("click","[data-modal=simple],[data-modal=html]",function(){var t=$("[data-modal="+$(this).data("target")+"], #"+$(this).data("target")).first();PF.fn.modal.call({template:t.html(),buttons:!1})}),$(document).on("submit",PF.obj.modal.selectors.root+" form",function(t){return!$(this).data("prevented")&&(void 0!==$(this).attr("method")&&void 0)}),$(document).on("click","[data-modal=edit],[data-modal=form],[data-confirm]",function(t){t.preventDefault();var e,n=$(this);n.is("[data-confirm]")?(e=n,PF.obj.modal.type="confirm"):(e=$("[data-modal="+n.data("target")+"], #"+n.data("target")).first(),0==e.length&&(e=$("[data-modal=form-modal], #form-modal").first()),0==e.length&&console.log("PF Error: Modal target doesn't exists."),PF.obj.modal.type=n.data("modal"));var i=n.data("args"),o=window[e.data("submit-fn")],r=window[e.data("cancel-fn")],a=(window[e.data("load-fn")],e.data("submit-done")),s={url:e.data("ajax-url")||(void 0!==e.data("is-xhr")?PF.obj.config.json_api:null),deferred:window[e.data("ajax-deferred")]};if("function"!=typeof o&&e.data("submit-fn")){var l=e.data("submit-fn").split(".");o=window;for(var c=0;c

    '+PF.fn._s("All the changes that you have made will be lost if you continue.")+'

    '+PF.fn._s("or")+' '+PF.fn._s("continue anyway")+"
    "),$(PF.obj.modal.selectors.changes_confirm).css("margin-top",-$(PF.obj.modal.selectors.changes_confirm).outerHeight(!0)/2).hide().fadeIn("fast")}else PF.fn.modal.close(),"#edit"==window.location.hash&&(window.location.hash="")},load:function(){"function"==typeof load_function&&load_function()},callback:function(){},ajax:s};PF.fn.modal.call($.extend(m,g))}}),PF.fn.is_user_logged()||$("[data-login-needed]:input, [data-user-logged=must]:input").each(function(){$(this).attr("readonly",!0)}),$(document).on("keydown","html",function(t){var e=$(t.target),n=t.originalEvent;if("Escape"!==n.key){var i="Enter"===n.key&&(n.ctrlKey||n.metaKey);if(!e.is("textarea")||i){var o=e.is(":input.search")||e.closest(".input-with-button").exists();if(!o&&e.is(":input, textarea")&&"Enter"===n.key&&!i)return t.stopPropagation(),void t.preventDefault();if($(PF.obj.modal.selectors.root).exists()){if(i||"Enter"!==n.key||!$("[data-action=submit]",PF.obj.modal.selectors.root).exists()||e.is(".prevent-submit")||(i=!0),!i)return;$("[data-action=submit]",PF.obj.modal.selectors.root).trigger("click")}else if(i){var r=e.is(":input")?e.closest("form"):$("form",".form-content:visible").first();r.trigger("submit")}i&&PF.fn.keyFeedback.spawn(t)}else t.stopPropagation()}else PF.fn.growl.close()}),window.location.hash&&"#edit"==window.location.hash&&$("[data-modal=edit]").first().click(),$(document).on("click","#menu-fullscreen .fullscreen, [data-action=top-bar-menu-full]",function(t){if(!$(t.target).is("#pop-box-mask")){var e=$("[data-action=top-bar-menu-full]","#top-bar").hasClass("current");if(PF.fn.topMenu[e?"hide":"show"](),Boolean(window.navigator.vibrate)){var n=e?[15,200,15]:[15,200,25,125,15];window.navigator.vibrate(0),window.navigator.vibrate(n)}}}),$(document).on("click","[data-action=top-bar-search]",function(){$("[data-action=top-bar-search-input]",".top-bar").removeClass("hidden").show(),$("[data-action=top-bar-search-input]:visible input").first().focus(),is_ios()&&!$(this).closest(PF.fn.topMenu.vars.menu).exists()&&$(".top-bar").css("position","absolute"),$("[data-action=top-bar-search]",".top-bar").hide()}),$(document).on("click",".input-search .icon--search",function(t){$("input",t.currentTarget.offsetParent).focus()}),$(document).on("click",".input-search .icon--close, .input-search [data-action=clear-search]",function(t){var e=$("input",t.currentTarget.offsetParent);""==e.val()?$(this).closest("[data-action=top-bar-search-input]").exists()&&($("[data-action=top-bar-search-input]",".top-bar").hide(),$("[data-action=top-bar-search]",".top-bar").removeClass("opened").show()):($(this).closest("[data-action=top-bar-search-input]").exists()||$(this).hide(),e.val("").change())}),$(document).on("keyup change","input.search",function(t){var e=$(this),n=$(this).closest(".input-search");if(!$(this).closest("[data-action=top-bar-search-input]").exists()){var i=""==e.val()?"hide":"show";$(".icon--close, [data-action=clear-search]",n)[i]()}}),$(document).on("click mouseenter",".pop-btn",function(t){if(!PF.fn.isDevice(["phone","phablet"])||"mouseenter"!=t.type&&!$(this).hasClass("pop-btn-desktop")){var e,n,i=$(t.target),o=$.makeArray(["phone","phablet"]),r=$(this);if(("mouseenter"!=t.type||$(this).hasClass("pop-btn-auto"))&&!$(this).hasClass("disabled")&&(!i.closest(".current").exists()||PF.fn.isDevice("phone")||i.closest(".pop-btn-show").exists())){PF.fn.growl.close(),t.stopPropagation(),e=$(this),n=$(".pop-box",e),e.addClass("opened");var a=parseInt(n.css("margin-right"));if($(".pop-box-inner",n).css("max-height",""),PF.fn.isDevice(o)){var s=$(".pop-btn-text,.btn-text,.text",e).first().text(),l=$(".pop-btn-icon,.btn-icon,.icon",e)[0].outerHTML;$(".pop-box-header",n).exists()||n.prepend($("
    ",{class:"pop-box-header",html:l+" "+s+''}),$("
    ",{class:"hidden phone-show phablet-show or-separator margin-top-0 margin-bottom-0"}))}else $(".pop-box-header",n).remove(),n.css({bottom:""});if(n.hasClass("anchor-center")&&(PF.fn.isDevice(o)?n.css("marginInlineStart",""):n.css("marginInlineStart",-n.outerWidth()/2)),i.is("[data-change]")&&($("li",n).removeClass("current"),i.closest("li").addClass("current"),$("[data-text-change]",e).text($("li.current a",n).text()),t.preventDefault()),n.exists()){r=t.istriggered?$(t.target):$(this);if(!(n.is(":visible")&&$(t.target).closest(".pop-box-inner").exists()&&r.hasClass("pop-keep-click"))){$(".pop-box:visible").not(n).hide().closest(".pop-btn").removeClass("opened");var c=function(t){if(t.is(":visible"))if(PF.fn.isDevice(o))$(".antiscroll-inner",t).height("100%");else{var e=t.css("marginInlineStart");void 0!==e&&(e=parseFloat(e),t.css("marginInlineStart",""));var n=t.getWindowCutoff();if(n&&n.right&&n.right",{id:"pop-box-mask",class:"fullscreen black"}).css({zIndex:400,display:"block"})),PF.fn.topMenu.vars.scrollTop=$(PF.fn.topMenu.vars.menu).scrollTop(),setTimeout(function(){$("#pop-box-mask").css({opacity:1}),setTimeout(function(){n.show().css({bottom:"-"+u,maxHeight:"100%",zIndex:1e3,transform:"translate(0,0)"}),setTimeout(function(){n.find(".pop-box-inner").scrollTop(0)},1),setTimeout(function(){n.css({transform:"translate(0,-"+u+")"})},1),setTimeout(function(){c(n)},PF.obj.config.animation.normal),$("body").hasClass("overflow-hidden")?$("body").data("hasOverflowHidden",1):$("body").addClass("overflow-hidden "+(r.closest(".top-bar").exists()?"pop-box-show--top":"pop-box-show")),$(".pop-box-inner",n).css("height",n.height()-$(".pop-box-header",n).outerHeight(!0))},1)},1))}else n[n.is(":visible")?"hide":"show"](0,function(){c(n)})}}}}}).on("mouseleave",".pop-btn",function(){if(PF.fn.isDevice(["laptop","desktop"])){var t=$(this),e=$(".pop-box",t);!t.hasClass("pop-btn-auto")||PF.fn.isDevice(["phone","phablet"])&&t.hasClass("pop-btn-auto")||e.hide().closest(".pop-btn").removeClass("opened")}}),window.location.hash,$(".content-tabs").exists()){var c=$("a",".content-tabs .current");History.replaceState({href:c.attr("href"),"data-tab":c.data("tab"),pushed:"tabs",statenum:0},null,null)}var u=History.getState();void 0===u.data&&History.replaceState({scrollTop:0},document.title,window.location.href),History.Adapter.bind(window,"popstate",function(){var t=History.getState();t.data&&void 0!==t.data.scrollTop&&$(window).scrollTop()!==t.data.scrollTop&&$(window).scrollTop(t.data.scrollTop)}),$("a",".content-tabs").on("click",function(t){if(1==$(this).data("link")&&$(this).data("tab",!1),$(this).closest(".current,.disabled").exists())t.preventDefault();else if(void 0!==$(this).data("tab")){var e={};if($.each(this.attributes,function(){e[this.name]=this.value}),e.pushed="tabs","classic"!=$("#"+e["data-tab"]).data("load")){if(window.location.hash){var n=window.location.href;n=n.replace(window.location.hash,"")}History.pushState(e,document.title,void 0!==n?n:$(this).attr("href")),t.preventDefault()}var i=$("[data-action=tab-menu]",$(this).closest(".header"));i.find("[data-content=current-tab-label]").text($(this).text()),i.find('[data-content="tab-icon"]').attr("class","").addClass($(this).find(".btn-icon").attr("class")),i.is(":visible")&&i.click()}}),$(document).on("click","[data-action=tab-menu]",function(){var t=$(this).closest(".header").find(".content-tabs"),e=t.is(":visible"),n=t.closest(".content-tabs-wrap");$this=$(this),n.css("display",e?"":"block"),$this.toggleClass("--hide",e),e||(t.data("classes",t.attr("class")),t.removeClass(function(t,e){return(e.match(/\b\w+-hide/g)||[]).join(" ")})),e||$this.removeClass("current"),e&&(t.css("display","").addClass(t.data("classes")),$this.addClass("current"))}),$(window).bind("statechange",function(t){var e;PF.fn.growl.close(),e=History.getState().data,e&&"tabs"==e.pushed&&PF.fn.show_tab(e["data-tab"])}),$(document).on("click",PF.obj.listing.selectors.list_item+" a",function(t){""!=$(this).attr("src")&&History.replaceState({scrollTop:$(window).scrollTop()},document.title,window.location.href)}),$(document).on("click","[data-action=load-more]",function(t){PF.obj.listing.lockClickMore||(PF.obj.listing.lockClickMore=!0,$(this).closest(".content-listing-more").hide(),!PF.fn.is_listing()||$(this).closest(PF.obj.listing.selectors.content_listing).is(":hidden")||$(this).closest("#content-listing-template").exists()||PF.obj.listing.calling||(PF.fn.listing.queryString.stock_new(),PF.obj.listing.query_string.seek=$(this).attr("data-seek"),PF.obj.listing.query_string.page=$(PF.obj.listing.selectors.content_listing_visible).data("page"),PF.obj.listing.query_string.page++,PF.fn.listing.ajax(),t.preventDefault()))}),$(PF.obj.listing.selectors.list_item).length>0?(PF.fn.listing.show(),$(window).scroll(function(){var t=$(PF.obj.listing.selectors.content_listing_load_more,PF.obj.listing.selectors.content_listing_visible).find("button[data-action=load-more]"),e=$(document).height()-$(window).height()-1.5*document.documentElement.clientHeight;t.length>0&&$(window).scrollTop()>e&&0==PF.obj.listing.calling&&t.click()})):$(PF.obj.listing.selectors.content_listing+".visible").addClass("jsly"),$(document).on("click",PF.obj.modal.selectors.root+" [data-switch]",function(){var t=$(this).closest(PF.obj.modal.selectors.root);$("[data-view=switchable]",t).hide(),$("#"+$(this).attr("data-switch"),t).show()}),$(document).on("click","[data-toggle]",function(){var t=$("[data-content="+$(this).data("toggle")+"]"),e=!t.is(":visible");$(this).html($(this).data("html-"+(e?"on":"off"))),t.toggle()}),$(document).on("click","[data-action=cookie-law-close]",function(){var t=$(this).closest("#cookie-law-banner"),e=void 0!==t.data("cookie")?t.data("cookie"):"PF_COOKIE_LAW_DISPLAY";Cookies.set(e,0,{expires:365}),t.remove()}),Clipboard=new Clipboard("[data-action=copy]",{text:function(t){var e=$(t.getAttribute("data-action-target")),n=e.is(":input")?e.val():e.text();return n.trim()}}),Clipboard.on("success",function(t){var e=$(t.trigger.getAttribute("data-action-target"));e.highlight(),t.clearSelection()})});var PF={fn:{},str:{},obj:{}};PF.obj.config={base_url:"",json_api:"/json/",listing:{items_per_page:24},animation:{easingFn:"ease",normal:400,fast:250}},PF.obj.l10n={},PF.fn._s=function(t,e){return void 0===t?t:(void 0!==PF.obj.l10n&&void 0!==PF.obj.l10n[t]?(t=PF.obj.l10n[t][0],void 0===t&&(t=t)):t=t,t=t.toString(),void 0!==e&&(t=sprintf(t,e)),t)},PF.fn._n=function(t,e,n){var i;return i=void 0!==PF.obj.l10n&&void 0!==PF.obj.l10n[t]?PF.obj.l10n[t][1==n?0:1]:1==n?t:e,i=void 0===i?t:i.toString(),void 0!==n&&(i=sprintf(i,n)),i},PF.fn.extend_lang=function(t){$.each(PF.obj.lang_strings,function(e,n){void 0!==t[e]&&$.extend(PF.obj.lang_strings[e],t[e])})},PF.fn.get_url_vars=function(){for(var t,e=/\+/g,n=/([^&=]+)=?([^&]*)/g,i=function(t){return decodeURIComponent(escape(t.replace(e," ")))},o=window.location.search.substring(1),r={};t=n.exec(o);)r[i(t[1])]=i(t[2]);return r},PF.fn.get_url_var=function(t){return PF.fn.get_url_vars()[t]},PF.fn.is_user_logged=function(){return $("#top-bar-user").exists()},PF.fn.generate_random_string=function(t){void 0===t&&(t=5);for(var e="",n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",i=0;i").text($.trim(t)).html()},PF.fn.htmlDecode=function(t){return $("
    ").html($.trim(t)).text()},PF.fn.nl2br=function(t){var e="
    ";return(t+"").replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g,"$1"+e+"$2")},PF.fn.versionCompare=function(t,e,n){this.php_js=this.php_js||{},this.php_js.ENV=this.php_js.ENV||{};var i=0,o=0,r=0,a={dev:-6,alpha:-5,a:-5,beta:-4,b:-4,RC:-3,rc:-3,"#":-2,p:1,pl:1},s=function(t){return t=(""+t).replace(/[_\-+]/g,"."),t=t.replace(/([^.\d]+)/g,".$1.").replace(/\.{2,}/g,"."),t.length?t.split("."):[-8]};for(numVersion=function(t){return t?isNaN(t)?a[t]||-7:parseInt(t,10):0},t=s(t),e=s(e),o=Math.max(t.length,e.length),i=0;ie[i]){r=1;break}}if(!n)return r;switch(n){case">":case"gt":return r>0;case">=":case"ge":return r>=0;case"<=":case"le":return r<=0;case"==":case"=":case"eq":return 0===r;case"<>":case"!=":case"ne":return 0!==r;case"":case"<":case"lt":return r<0;default:return null}},PF.fn.baseName=function(t){var e=new String(t).substring(t.lastIndexOf("/")+1);return-1!=e.lastIndexOf(".")&&(e=e.substring(0,e.lastIndexOf("."))),e},PF.fn.guid=function(){var t=(new Date).getTime();return"undefined"!=typeof performance&&"function"==typeof performance.now&&(t+=performance.now()),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var n=(t+16*Math.random())%16|0;return t=Math.floor(t/16),("x"===e?n:3&n|8).toString(16)})},PF.fn.md5=function(t){return SparkMD5.hash(t)},PF.fn.dataURItoBlob=function(t){var e;e=t.split(",")[0].indexOf("base64")>=0?atob(t.split(",")[1]):unescape(t.split(",")[1]);for(var n=t.split(",")[0].split(":")[1].split(";")[0],i=new Uint8Array(e.length),o=0;o0|-(value<0),o=value%1==.5*r,i=Math.floor(value),o)switch(e){case"PHP_ROUND_HALF_DOWN":value=i+(r<0);break;case"PHP_ROUND_HALF_EVEN":value=i+i%2*r;break;case"PHP_ROUND_HALF_ODD":value=i+!(i%2);break;default:value=i+(r>0)}return(o?value:Math.round(value))/n},String.prototype.getBytes=function(){var t=["KB","MB","GB","TB","PB","EB","ZB","YB"],e=this.toUpperCase().substr(-2);if(-1==t.indexOf(e))return this;var n=t.indexOf(e)+1;return parseFloat(this)*Math.pow(1e3,n)},String.prototype.formatBytes=function(t){var e=parseInt(this),n=["KB","MB","GB","TB","PB","EB","ZB","YB"];if(!$.isNumeric(this))return!1;if(e<1e3)return e+" B";if(void 0===t)t=2;for(var i=0;i=o&&i.indexOf(t[a])>=0));a++);return n?r.split("").reverse().join(""):r}t=void 0!==t?t:40;var n=t/2,i=this.replace(/https?:\/\//g,"");return i.length<=t?i:e(i,n,!1)+"..."+e(i,n,!0)}, +jQuery.extend({compare:function(t,e){var n="[object Object]",i="[object Array]",o=Object.prototype.toString.apply(t),r=Object.prototype.toString.apply(e);return o===r&&(o===n?$.compareObject(t,e):o===i?$.compareArray(t,e):t===e)},compareArray:function(t,e){var n,i,o,r,a;if(t===e)return!0;if(t.length!=e.length)return!1;for(n=jQuery.extend(!0,[],t),i=jQuery.extend(!0,[],e),n.sort(),i.sort(),o=0,l=n.length;o0},jQuery.fn.replace_svg=function(){this.attr("src")&&$(this).each(function(){$(this).attr("src",$(this).attr("src").replace(".svg",".png"))})},jQuery.fn.is_fluid=function(){return!0},jQuery.fn.bindFormData=function(){return $(":input",this).each(function(){var t=PF.fn.htmlEncode($(this).val());if($(this).is("input")&&(this.setAttribute("value",this.value),this.checked?this.setAttribute("checked","checked"):this.removeAttribute("checked")),$(this).is("textarea")&&$(this).html(t),$(this).is("select")){var e=this.selectedIndex,n=0;$(this).children("option").each(function(){n++!=e?this.removeAttribute("selected"):this.setAttribute("selected","selected")})}}),this},jQuery.fn.formValues=function(t){var e=$(":input",this);return"object"!=typeof t?(t={},$.each(e,function(){this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/color|date|datetime|datetime-local|email|month|range|search|tel|time|url|week|text|number|hidden|password/i.test(this.type))&&(this.name.match(/^.*\[\]$/)&&this.checked?(void 0===t[this.name]&&(t[this.name]=[]),t[this.name].push($(this).val())):t[this.name]=$(this).val())}),t):($.each(e,function(){this.name.match(/^.*\[\]$/)&&"object"==typeof t[this.name]?$(this).prop("checked",-1!==t[this.name].indexOf($(this).val())):this.name&&t[this.name]?/checkbox|radio/i.test(this.type)?$(this).prop("checked",t[this.name]==$(this).val()):$(this).val(t[this.name]):/checkbox|radio/i.test(this.type)&&$(this).removeProp("checked")}),$(this))},jQuery.fn.storeformData=function(t){return void 0===t&&void 0!==$(this).attr("id")&&(t=$(this).attr("id")),void 0!==t&&$(this).data(t,$(this).formValues()),this},jQuery.fn.is_sameformData=function(t){var e=$(this);return void 0===t&&(t=e.attr("id")),jQuery.compare(e.formValues(),e.data(t))},jQuery.Event.prototype.keydown_numeric=function(){var t=this;if(t.shiftKey)return t.preventDefault(),!1;var e=t.charCode||t.keyCode,n=t.target;""==$(n).val()||parseInt($(n).val());return 13==e||(46==e||8==e||9==e||27==e||65==e&&!0===t.ctrlKey||e>=35&&e<=40||void((e<48||e>57)&&(e<96||e>105)&&t.preventDefault()))},PF.fn.is_canvas_supported=function(){var t=document.createElement("canvas");return!(!t.getContext||!t.getContext("2d"))},PF.fn.is_validity_supported=function(){var t=document.createElement("input");return"object"==typeof t.validity},PF.fn.getScrollBarWidth=function(){var t=document.createElement("p");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.style.visibility="hidden",e.style.width="200px",e.style.height="150px",e.style.overflow="hidden",e.appendChild(t),document.body.appendChild(e);var n=t.offsetWidth;e.style.overflow="scroll";var i=t.offsetWidth;return n==i&&(i=e.clientWidth),document.body.removeChild(e),n-i},PF.str.ScrollBarWidth=PF.fn.getScrollBarWidth(),PF.fn.top_notifications_viewed=function(){var t=$("[data-action=top-bar-notifications]"),e=($(".top-bar-notifications-list",t),$(".top-btn-number",t));$(".persistent",t).exists()?e.text($(".persistent",t).length).addClass("on"):e.removeClass("on")},PF.fn.bindtipTip=function(t,e){void 0===t&&(t=$("body")),t instanceof jQuery==0&&(t=$(t));var n={delay:0,content:!1,fadeIn:0};void 0!==e&&(void 0!==e.delay&&(n.delay=e.delay),void 0!==e.content&&(n.content=e.content),void 0!==e.content&&(n.fadeIn=e.fadeIn)),"tooltip"!==t.attr("rel")&&(t=$("[rel=tooltip]",t)),t.each(function(){if((void 0!==$(this).attr("href")||void 0!==$(this).data("href"))&&PF.fn.isDevice(["phone","phablet","tablet"]))return!0;var t=void 0===$(this).data("tiptip")?"bottom":$(this).data("tiptip");PF.fn.isDevice(["phone","phablet"])&&(t="top"),$(this).tipTip({delay:n.delay,defaultPosition:t,content:n.content,fadeIn:n.fadeIn,fadeOut:0})})},PF.fn.form_modal_has_changed=function(){if(!$(PF.obj.modal.selectors.root).is(":hidden")&&void 0!==$("html").data("modal-form-values")){var t=$("html").data("modal-form-values"),e=PF.fn.deparam($(":input:visible",PF.obj.modal.selectors.root).serialize()),n=!1,i=$.extend({},t,e);for(var o in i)if(t[o]!==e[o]){n=!0;break}return n}},PF.fn.is_listing=function(){return $(PF.obj.listing.selectors.content_listing).exists()},PF.fn.is_tabs=function(){return $(".content-tabs").exists()},jQuery.fn.shake=function(t){return this.each(function(t){var e=$(this);e.addClass("animate shake").promise().done(function(){setTimeout(function(){e.removeClass("shake")},820)})}),"function"==typeof t&&t(),this},jQuery.fn.highlight=function(t){if(this.is(":animated")||!this.exists())return this;void 0===t&&(t="yellow");var e=t;switch(t){case"yellow":e="#FFFBA2";break;case"red":e="#FF7F7F";break;default:e=t}var n=$(this).css("background-color");$(this).css("background");return $(this).css({background:"",backgroundColor:e,borderColor:window.getComputedStyle(document.body).getPropertyValue("--colorAccent")}).animate({backgroundColor:n,borderColor:""},1e3,function(){$(this).css("background","")}),this},jQuery.fn.pf_slideDown=function(t,e){var n,i,o,r="normal",a=$(this).length;return"function"==typeof t&&(e=t,t=r),void 0===t&&(t=r),$(this).each(function(r){var s=parseInt($(this).css("top")),l=s>0?s:0;0==t?(n={display:"block",opacity:0},i={opacity:1},o=jQuery.speed("fast").duration):(n={top:-$(this).outerHeight(!0),opacity:1,display:"block"},i={top:l},o=jQuery.speed(t).duration),$(this).data("originalTop",$(this).css("top")),$(this).css(n).animate(i,o,function(){r==a-1&&"function"==typeof e&&e()})}),this},jQuery.fn.pf_slideUp=function(t,e){var n="normal",i=$(this).length;return"function"==typeof t&&(e=t,t=n),void 0===t&&(t=n),$(this).each(function(n){$(this).animate({top:-$(this).outerHeight(!0)},jQuery.speed(t).duration,function(){$(this).css({display:"none",top:$(this).data("originalTop")}),n==i-1&&"function"==typeof e&&e()})}),this},jQuery.fn.is_in_viewport=function(){var t=$(this)[0].getBoundingClientRect();return t.top>=0&&t.left>=0&&t.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&t.right<=(window.innerWidth||document.documentElement.clientWidth)},jQuery.fn.is_within_viewport=function(t){var e=$(this)[0].getBoundingClientRect();return void 0===t&&(t=0),e.top>=0&&e.left>=0&&e.top+t<=(window.innerHeight||document.documentElement.clientHeight)&&e.right<=(window.innerWidth||document.documentElement.clientWidth)},jQuery.fn.getWindowCutoff=function(){var t={top:$(this).offset().top,left:$(this).offset().left,width:$(this).outerWidth(),height:$(this).outerHeight()};t.right=t.left+t.width,t.bottom=t.top+t.height;var e=!1,n={top:t.top>0?0:t.top,right:document.body.clientWidth-t.right,bottom:document.body.clientHeight-t.bottom,left:t.left>0?0:t.left};for(var i in n)n[i]<0?e=!0:n[i]=0;return e?n:null},PF.fn.scroll=function(t,e){if("function"==typeof t)e=t,t="";var n=parseInt($("body").css("margin-top"));0==n&&$(".top-bar-placeholder").exists()&&(n=$(".top-bar-placeholder").height()),$(t).exists()||(t="html"),$("body,html").animate({scrollTop:$(t).offset().top-n},"normal",function(){"function"==typeof e&&e()})},PF.fn.close_pops=function(t){$(".pop-box:visible").each(function(){$(this).closest(".pop-btn").trigger("click")})},PF.fn.growl={selectors:{root:"#growl"},str:{timeout:null,timeoutcall:!1},call:function(t){if(void 0!==t&&("string"==typeof t&&(t={message:t}),void 0!==t.message)){var e,n,i,o;for(key in e={message:t.message,insertTo:"body",where:"before",color:"default",css:{},classes:"",expires:0,callback:function(){}},e)void 0!==t[key]&&(key.match("/^(callback)$/")?"function"==typeof t[key]&&(e[key]=t[key]):e[key]=t[key]);if($(e.insertTo).exists()||(e.insertTo="body"),$(PF.fn.growl.selectors.root).exists()){if($(PF.fn.growl.selectors.root).text()==e.message)return void $(PF.fn.growl.selectors.root).shake();$(PF.fn.growl.selectors.root).remove()}switch(n=$('
    '+e.message+'
    ').css(e.css).addClass(e.classes),i="body"!==e.insertTo?"static":"",e.color){case"dark":o="dark";break;default:o=""}n.addClass(i+" "+o),"before"==e.where?$(e.insertTo).prepend(n.hide()):$(e.insertTo).append(n.hide()),n.pf_slideDown("static"==i?0:200,function(){"function"==typeof e.callback&&e.callback()}),$(document).on("click",".growl",function(t){(PF.fn.isDevice(["phone","phablet"])||$(t.target).is("[data-action=close]"))&&PF.fn.growl.close(!0)}),e.expires>0&&("number"==typeof this.str.timeout&&clearTimeout(this.str.timeout),this.str.timeout=setTimeout(function(){PF.fn.growl.str.timeoutcall=!0,PF.fn.growl.close()},e.expires))}},expirable:function(t,e){void 0!==t&&(void 0===e&&(e=5e3),PF.fn.growl.call({message:t,expires:e}))},close:function(t,e){var n=$(PF.fn.growl.selectors.root);t&&(this.str.timeout=null,this.str.timeoutcall=!1,clearTimeout(this.str.timeout)),n.exists()&&("number"!=typeof this.str.timeout||this.str.timeoutcall)&&n.fadeOut("fast",function(){$(this).remove(),"function"==typeof e&&e()})}},PF.obj.modal={type:"",selectors:{root:"#fullscreen-modal",box:"#fullscreen-modal-box",body:"#fullscreen-modal-body",login:"[data-modal=login]",changes_confirm:"#fullscreen-changes-confirm",btn_container:".btn-container",close_buttons:".close-modal,.cancel-modal,[data-action=cancel],[data-action-close]",submit_button:"[data-action=submit]",growl_placeholder:"#fullscreen-growl-placeholder"},ajax:{url:"",deferred:{}},locked:!1,form_data:{},XHR:{},prevented:!1},PF.obj.modal.$close_buttons=$(PF.obj.modal.selectors.close_buttons,PF.obj.modal.selectors.root),PF.fn.modal={str:{transition:"all "+PF.obj.config.animation.fast+"ms "+PF.obj.config.animation.easingFn},call:function(t){var e,n;if(void 0!==t&&(void 0!==t.template&&void 0===t.type&&(t.type="html"),void 0!==t.title&&void 0!==t.message||"login"===t.type||"html"===t.type)){for(key in PF.fn.growl.close(),e={forced:!1,type:"confirm",title:t.title,message:t.message,html:!1,template:t.template,buttons:!0,button_submit:PF.fn._s("Submit"),txt_or:PF.fn._s("or"),button_cancel:PF.fn._s("cancel"),ajax:{url:null,data:null,deferred:{}},confirm:function(){},cancel:function(){PF.fn.modal.close()},load:function(){},callback:function(){}},e)void 0!==t[key]&&(/^cancel|confirm|callback$/.test(key)?"function"==typeof t[key]&&(e[key]=t[key]):e[key]=t[key]);void 0!==t.ajax&&!t.ajax.url&&t.ajax.deferred&&(e.ajax.url=PF.obj.config.json_api),"login"==e.type&&(e.buttons=!1),"confirm"==e.type&&(e.button_submit=PF.fn._s("Confirm"));var i,o="black",r=['
    %MODAL_BODY%
    %MODAL_BUTTONS%
    '].join(""),a=e.buttons?['
    "].join(""):"";switch("login"==e.type&&(e.template=void 0===e.template?$(PF.obj.modal.selectors.login).html():e.template),e.type){case"html":case"login":i=e.template;break;case"confirm":default:n=e.message,e.html||(n="

    "+n+"

    "),i="

    "+e.title+"

    "+n}if(void 0!==i){if(r=r.replace("%MODAL_BODY%",i).replace("%MODAL_BUTTONS%",a).replace(/template-tooltip/g,"tooltip"),$(PF.obj.modal.selectors.root).remove(),$("body").data("hasOverflowHidden",$("body").hasClass("overflow-hidden")&&!$("body").hasClass("pop-box-show")),$("body").prepend(r).addClass("overflow-hidden"),this.fixScrollbars(),$("[rel=tooltip]",PF.obj.modal.selectors.root).each(function(){PF.fn.bindtipTip(this,{content:$(this).data("title")})}),$(":button, input[type=submit], input[type=reset]",PF.obj.modal.selectors.root).length>0){var s=$("form",PF.obj.modal.selectors.root);s.exists()?(s.append($($(PF.obj.modal.selectors.btn_container,PF.obj.modal.selectors.root).html()).wrapInner(PF.obj.modal.selectors.btn_container.replace(".",""))),$(PF.obj.modal.selectors.btn_container,PF.obj.modal.selectors.root).each(function(){$(this).closest("form").exists()||$(this).remove()})):$(PF.obj.modal.selectors.box,PF.obj.modal.selectors.root).wrapInner("
    ")}e.callback(),$(PF.obj.modal.selectors.box).css({transform:"scale(0.7)",opacity:0,transition:PF.fn.modal.str.transition}),$(PF.obj.modal.selectors.root).addClass("--show"),setTimeout(function(){$(PF.obj.modal.selectors.root).css({opacity:1}),$(PF.obj.modal.selectors.box).css({transform:"scale(1)",opacity:1}),"undefined"!=typeof PFrecaptchaCallback&&PFrecaptchaCallback(),setTimeout(function(){$("html").data("modal-form-values",PF.fn.deparam($(":input:visible",PF.obj.modal.selectors.root).serialize())),"function"==typeof e.load&&e.load()},PF.obj.config.animation.fast),PF.fn.modal.styleAware()},10),$(PF.obj.modal.selectors.root).on("click",function(n){var i=$(n.target),o=this;if(!PF.obj.modal.locked&&!i.is(PF.obj.modal.selectors.root)){var r=i.is(PF.obj.modal.selectors.close_buttons)||i.closest(PF.obj.modal.selectors.close_buttons).exists(),a=i.is(PF.obj.modal.selectors.submit_button)||i.closest(PF.obj.modal.selectors.submit_button).exists(),s=r||a;if(i.closest(PF.obj.modal.selectors.changes_confirm).exists()&&s)$(PF.obj.modal.selectors.changes_confirm).remove(),r?$(PF.obj.modal.selectors.box,o).fadeIn("fast",function(){$(this).css("transition",PF.fn.modal.str.transition)}):PF.fn.modal.close();else if(i.closest(".clickable").exists()&&!r||(PF.fn.growl.close(),e.cancel()),a){if(!1===e.confirm())return;var l=!0;if($("input, textarea, select",PF.obj.modal.selectors.root).not(":input[type=button], :input[type=submit], :input[type=reset]").length>0&&!PF.fn.form_modal_has_changed()&&!e.forced&&(l=!1),l)if(e.ajax.url){var c,u=$(PF.obj.modal.selectors.btn_container,PF.obj.modal.selectors.root);switch(PF.obj.modal.locked=!0,u.first().clone().height(u.height()).html("").addClass("loading").appendTo(PF.obj.modal.selectors.root+" form"),u.hide(),PF.obj.modal.$close_buttons.hide(),PF.obj.modal.type){case"edit":c=PF.fn._s("Saving");break;case"confirm":case"form":default:c=PF.fn._s("Sending")}PF.fn.loading.inline($(PF.obj.modal.selectors.btn_container+".loading",PF.obj.modal.selectors.root),{size:"small",message:c,valign:"center"}),$(PF.obj.modal.selectors.root).disableForm(),(!$.isEmptyObject(PF.obj.modal.form_data)||void 0!==t.ajax&&void 0===t.ajax.data)&&(e.ajax.data=PF.obj.modal.form_data),PF.obj.modal.XHR=$.ajax({url:e.ajax.url,type:"POST",data:e.ajax.data}).complete(function(t){if(PF.obj.modal.locked=!1,200==t.status){var n=void 0!==e.ajax.deferred&&void 0!==e.ajax.deferred.success?e.ajax.deferred.success:null;"function"==typeof n?PF.fn.modal.close(function(){"function"==typeof n&&n(t)}):"object"==typeof n&&("function"==typeof n.before&&n.before(t),"function"==typeof n.done&&n.done(t))}else if($(PF.obj.modal.selectors.root).enableForm(),$(PF.obj.modal.selectors.btn_container+".loading",PF.obj.modal.selectors.root).remove(),u.css("display",""),void 0!==e.ajax.deferred&&"function"==typeof e.ajax.deferred.error)e.ajax.deferred.error(t);else{var i=PF.fn._s("An error occurred. Please try again later.");t.responseJSON.error.message&&(i=t.responseJSON.error.message),PF.fn.growl.call(i)}})}else PF.fn.modal.close(e.callback())}}})}else console.log("PF Error: Modal content is empty")}},styleAware:function(){$(PF.obj.modal.selectors.root).exists()&&$(PF.obj.modal.selectors.root).toggleClass("--has-scrollbar",$(PF.obj.modal.selectors.root).hasScrollbar().vertical)},confirm:function(t){t.type="confirm",void 0===t.title&&(t.title=PF.fn._s("Confirm action")),PF.fn.modal.call(t)},simple:function(t){"string"==typeof t&&(t={message:t}),void 0===t.buttons&&(t.buttons=!1),void 0===t.title&&(t.title=PF.fn._s("information")),PF.fn.modal.call(t)},fixScrollbars:function(){if($(PF.obj.modal.selectors.root).exists()){var t={padding:$(".fixed, .position-fixed"),margin:$("html")},e={};PF.str.ScrollBarWidth>0&&$("html").hasScrollbar().vertical&&!$("body").data("hasOverflowHidden")?(e.padding=PF.str.ScrollBarWidth+"px",e.margin=PF.str.ScrollBarWidth+"px"):(e.padding="",e.margin=""),t.padding.css({paddingRight:e.padding}),t.margin.css({marginRight:e.margin})}},close:function(t){$(PF.obj.modal.selectors.root).exists()&&(PF.fn.growl.close(!0),$("[rel=tooltip]",PF.obj.modal.selectors.root).tipTip("hide"),$(PF.obj.modal.selectors.box).css({transform:"scale(0.5)",opacity:0}),$(PF.obj.modal.selectors.root).css({opacity:0}),setTimeout(function(){PF.str.ScrollBarWidth>0&&$("html").hasScrollbar().vertical&&$(".fixed, .position-fixed").css({paddingRight:""}),$("html").css({marginRight:""}),$("body").data("hasOverflowHidden")||$("body").removeClass("overflow-hidden"),$("body").removeData("hasOverflowHidden"),$(PF.obj.modal.selectors.root).remove(),"function"==typeof t&&t()},PF.obj.config.animation.normal))}},PF.fn.keyFeedback={enabled:!0,timeout:{spawn:null,remove:null},selectors:{root:"#key-feedback"},translate:{ArrowLeft:"◄",ArrowRight:"►",Delete:"Del",Escape:"Esc"},spawn:function(t){if(0!=this.enabled&&!PF.fn.isDevice(["phone","phablet"])){var e=$(PF.fn.keyFeedback.selectors.root);e.exists()||($("body").append($("
    ").attr({id:"key-feedback",class:"key-feedback"})),e=$(PF.fn.keyFeedback.selectors.root));var n=[];if((t.ctrlKey||t.metaKey)&&"KeyV"===t.originalEvent.code&&(t={type:"keydown",key:PF.fn._s("Paste")}),"contextmenu"===t.type&&t.ctrlKey&&(t.type="click"),"contextmenu"===t.type)n.push(PF.fn._s("Right click"));else if(t.ctrlKey&&n.push("Ctrl"),t.metaKey&&n.push("⌘"),t.hasOwnProperty("key")){var i=1===t.key.length?t.key.toUpperCase():t.key;i in this.translate&&(i=this.translate[i]),n.push(i)}"click"===t.type&&n.push("click"),e.html(n.join(" + ",n)).css("opacity",1),clearTimeout(PF.fn.keyFeedback.timeout.spawn),clearTimeout(PF.fn.keyFeedback.timeout.remove),PF.fn.keyFeedback.timeout.spawn=setTimeout(function(){e.css("opacity",0),PF.fn.keyFeedback.timeout.remove=setTimeout(function(){e.remove()},500)},1500)}}},PF.fn.popup=function(t){var e={height:t.height||500,width:t.width||650,scrollTo:0,resizable:0,scrollbars:0,location:0};e.top=screen.height/2-e.height/2,e.left=screen.width/2-e.width/2;var n="";for(var i in e)n+=i+"="+e[i]+",";n=n.slice(0,-1),window.open(t.href,"Popup",n)},PF.fn.list_fluid_width=function(){if($("body").is_fluid()){var t=$(PF.obj.listing.selectors.content_listing_visible),e=$(PF.obj.listing.selectors.pad_content,t),n=$(PF.obj.listing.selectors.list_item,t),i=n.outerWidth(!0),o=n.outerWidth(!0)-n.width();PF.obj.listing.content_listing_ratio=parseInt((t.width()+o)/i),n.length6?"small-cols":""),s.css("width","100%");var d=0;c.each(function(t){$(this).addClass("jsly");var i=$(".list-item-image",this),o=$(".list-item-image img",this),r=$(".list-item-thumbs",this);o.hasClass("jsly-loaded");o.show(),n&&($(this).css({top:"",left:"",height:"",position:""}),i.css({maxHeight:"",height:""}),o.removeClass("jsly").css({width:"",height:""}).parent().css({marginLeft:"",marginTop:""}),$("li",r).css({width:"",height:""}));var s=1==PF.obj.listing.columns_number?"100%":parseFloat(1/PF.obj.listing.columns_number*a.width()+"px");if($(this).css("width",s),PF.obj.listing.current_column>PF.obj.listing.columns_number&&(PF.obj.listing.current_column=1),$(this).attr("data-col",PF.obj.listing.current_column),!o.exists()){var l=!0;o=$(".image-container .empty",this)}var u=$(this).is(":visible");c.show();var h=i.hasClass("fixed-size"),f={w:parseFloat(o.attr("width")),h:parseFloat(o.attr("height"))};if(f.ratio=f.w/f.h,l||i.css("min-height")&&!o.hasClass("jsly")){var p={w:$(this).width(),h:h?$(this).width():null},g=Math.min(f.w,f.w1||1==f.ratio)?(f.h=Math.min(f.h,f.w=3||f.ratio<1||1==f.ratio?f.h=f.w/f.ratio:(f.h=Math.min(f.h,f.w),f.w=f.h*f.ratio),l&&(f.h=p.w),i.css({height:f.h})),0==o.width()&&o.css({width:g,height:g/f.ratio}),$(".image-container",this).is(".list-item-avatar-cover")&&o.css(h?{width:"auto",height:"100%"}:{width:"100%",height:"auto"});var m=Math.max(2*o.position().left,0),b=Math.max(2*o.position().top,0),v=m/i.width(),y=b/i.height();(m>0||b>0)&&(v<=.25||y<=.25)&&i.addClass("--fit"),r.exists()&&$("li",r).css({width:100/$("li",r).length+"%"}).css({height:$("li",r).width()}),u||c.hide()}!o.hasClass("jsly")&&$(this).is(":hidden")&&$(this).css("top","100%"),PF.obj.listing.columns[PF.obj.listing.current_column]+=$(this).outerHeight(!0),$(this).is(":animated")&&(e=0),$(this).addClass("position-absolute");var w=$(this).outerWidth(!0)*(PF.obj.listing.current_column-1),P=parseFloat($(this).css("left"))!=w;P&&(animate_grid=!0,$(this).animate({left:w},e)) +;var x=PF.obj.listing.columns[PF.obj.listing.current_column]-$(this).outerHeight(!0);parseFloat($(this).css("top"))!=x&&(animate_grid=!0,$(this).animate({top:x},e),P&&(d=1)),u&&c.show(),PF.obj.listing.current_column++}),a.data({columns:PF.obj.listing.columns,current_column:PF.obj.listing.current_column}).attr("data-columns",PF.obj.listing.columns_number);var h=0;if($.each(PF.obj.listing.columns,function(t,e){e>h&&(h=e)}),PF.obj.listing.width=a.width(),void 0!==PF.obj.listing.height)var f=PF.obj.listing.height;PF.obj.listing.height=h;var p=void 0!==f&&f!==PF.obj.listing.height;p||(s.height(h),PF.fn.list_fluid_width()),p&&(s.height(f),setTimeout(function(){s.animate({height:h},e,function(){PF.fn.list_fluid_width()})},e*d)),a.data("list-mode",PF.obj.listing.mode),$(PF.obj.listing.selectors.content_listing_visible).data("queued",!1),a.addClass("jsly")}},PF.fn.loading={spin:{small:{lines:11,length:0,width:3,radius:7,speed:1,trail:45,blocksize:20},normal:{lines:11,length:0,width:5,radius:10,speed:1,trail:45,blocksize:30},big:{lines:11,length:0,width:7,radius:13,speed:1,trail:45,blocksize:40},huge:{lines:11,length:0,width:9,radius:16,speed:1,trail:45,blocksize:50}},inline:function(t,e){if(void 0!==t){if(t instanceof jQuery==0)t=$(t);var n={size:"normal",color:$("body").css("color"),center:!1,position:"absolute",shadow:!1,valign:"top"};if(void 0===e)e=n;else for(var i in n)void 0===e[i]&&(e[i]=n[i]);PF.fn.loading.spin[e.size];PF.fn.loading.spin[e.size].color=e.color,PF.fn.loading.spin[e.size].shadow=e.shadow,t.html(''+(void 0!==e.message?''+e.message+"":"")).css({"line-height":PF.fn.loading.spin[e.size].blocksize+"px"}),$(".loading-indicator",t).css({width:PF.fn.loading.spin[e.size].blocksize,height:PF.fn.loading.spin[e.size].blocksize}).spin(PF.fn.loading.spin[e.size]),e.center&&$(".loading-indicator",t.css("textAlign","center")).css({position:e.position,top:"50%",insetInlineStart:"50%",marginTop:-PF.fn.loading.spin[e.size].blocksize/2,marginInlineStart:-PF.fn.loading.spin[e.size].blocksize/2}),"center"==e.valign&&$(".loading-indicator,.loading-text",t).css("marginTop",(t.height()-PF.fn.loading.spin[e.size].blocksize)/2+"px"),$(".spinner",t).css({top:PF.fn.loading.spin[e.size].blocksize/2+"px",insetInlineStart:PF.fn.loading.spin[e.size].blocksize/2+"px"})}},fullscreen:function(){$("body").append('
    '+PF.fn._s("loading")+"
    "),$(".fullscreen-loader","#pf-fullscreen-loader").spin(PF.fn.loading.spin.huge),$("#pf-fullscreen-loader").css("opacity",1)},destroy:function(t){var e=$("#pf-fullscreen-loader"),n=$("#pf-onscreen-loader");"fullscreen"==t&&(t=e),"onscreen"==t&&(t=n),void 0!==t?t.remove():(e.remove(),n.remove())}},jQuery.fn.disableForm=function(){return $(this).data("disabled",!0),$(":input",this).each(function(){$(this).attr("disabled",!0)}),this},jQuery.fn.enableForm=function(){return $(this).data("disabled",!1),$(":input",this).removeAttr("disabled"),this},PF.fn.isDevice=function(t){if("object"==typeof t)t="."+t.join(",.");else t="."+t;return $("html").is(t)},PF.fn.getDeviceName=function(){var t;return $.each(PF.obj.devices,function(e,n){if(PF.fn.isDevice(n))return t=n,!0}),t},PF.fn.topMenu={vars:{$button:$("[data-action=top-bar-menu-full]","#top-bar"),menu:"#menu-fullscreen",speed:PF.obj.config.animation.fast,menu_top:parseInt($("#top-bar").outerHeight())+parseInt($("#top-bar").css("top"))+parseInt($("#top-bar").css("margin-top"))+parseInt($("#top-bar").css("margin-bottom"))-parseInt($("#top-bar").css("border-bottom-width"))+"px"},show:function(t){if(!$("body").is(":animated")){if(void 0===t)t=this.vars.speed;this.vars.$button.addClass("current"),$("html").addClass("menu-fullscreen-visible"),$("#top-bar").append($("
    ",{id:"menu-fullscreen",class:"touch-scroll",html:$("
    ",{class:"fullscreen black"})}).css({left:"-100%"}).append($("
      ",{html:$(".top-bar-left").html()+$(".top-bar-right").html()})));var e=$(this.vars.menu);$("li.phone-hide, li > .top-btn-text, li > .top-btn-text > span, li > a > .top-btn-text > span",e).each(function(){$(this).removeClass("phone-hide")}),$("[data-action=top-bar-menu-full]",e).remove(),$(".btn.black, .btn.default, .btn.blue, .btn.green, .btn.orange, .btn.red, .btn.transparent",e).removeClass("btn black default blue green orange red transparent"),setTimeout(function(){e.css({transform:"translateX(100%)"}),$(".fullscreen").css("opacity",1)},1),setTimeout(function(){e.css({transition:"none",transform:"",left:""}),$("html").css({backgroundColor:""})},t)}},hide:function(t){if(!$("body").is(":animated")&&$(this.vars.menu).is(":visible")){var e=$(this.vars.menu);if(void 0===t)t=this.vars.speed;e.css({transition:""}),setTimeout(function(){e.css({transform:"translateX(-100%)"})},1),$("#top-bar").css("position",""),this.vars.$button.removeClass("current"),$("html").removeClass("menu-fullscreen-visible"),setTimeout(function(){e.remove()},t)}}},function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var n=this._events=this._events||{},i=n[t]=n[t]||[];return-1==i.indexOf(e)&&i.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var n=this._onceEvents=this._onceEvents||{},i=n[t]=n[t]||{};return i[e]=!0,this}},e.off=function(t,e){var n=this._events&&this._events[t];if(n&&n.length){var i=n.indexOf(e);return-1!=i&&n.splice(i,1),this}},e.emitEvent=function(t,e){var n=this._events&&this._events[t];if(n&&n.length){n=n.slice(0),e=e||[];for(var i=this._onceEvents&&this._onceEvents[t],o=0;o
    '),o=t('
    '),r=t('
    ');t("body").append(i.html(o).prepend(r.html('
    ')))}else i=t("#tiptip_holder"),o=t("#tiptip_content"),r=t("#tiptip_arrow");return this.each(function(){function a(){var e;if(!1!==u.enter.call(l,d)&&(u.content?e=t.isFunction(u.content)?u.content.call(l,d):u.content:(e=u.content=l.attr(u.attribute),l.removeAttr(u.attribute)),e)){o.html(e),i.hide().removeAttr("class").css({margin:"0px","max-width":u.maxWidth}),u.cssClass&&i.addClass(u.cssClass),r.removeAttr("style");var n=parseInt(l.offset().top),a=parseInt(l.offset().left),s=parseInt(l.outerWidth()),c=parseInt(l.outerHeight()),f=i.outerWidth(),p=i.outerHeight(),g=Math.round((s-f)/2),m=Math.round((c-p)/2),b=Math.round(a+g),v=Math.round(n+c+u.edgeOffset),y="",w="",P=Math.round(f-12)/2;"bottom"==u.defaultPosition?y="_bottom":"top"==u.defaultPosition?y="_top":"left"==u.defaultPosition?y="_left":"right"==u.defaultPosition&&(y="_right");var $=g+aparseInt(t(window).width());$&&g<0||"_right"==y&&!x||"_left"==y&&aparseInt(t(window).height()+t(window).scrollTop()),_=n+c-(u.edgeOffset+p+8)<0;F||"_bottom"==y&&F||"_top"==y&&!_?("_top"==y||"_bottom"==y?y="_top":y+="_top",w=p,v=Math.round(n-(p+5+u.edgeOffset))):(_|("_top"==y&&_)||"_bottom"==y&&!F)&&("_top"==y||"_bottom"==y?y="_bottom":y+="_bottom",w=-12,v=Math.round(n+c+u.edgeOffset)),"_right_top"==y||"_left_top"==y?v+=5:"_right_bottom"!=y&&"_left_bottom"!=y||(v-=5),"_left_top"!=y&&"_left_bottom"!=y||(b+=5),r.css({"margin-left":P+"px","margin-top":w+"px"}),i.css({"margin-left":b+"px","margin-top":v+"px"}).addClass("tip"+y),h&&clearTimeout(h),h=setTimeout(function(){i.stop(!0,!0).fadeIn(u.fadeIn)},u.delay),u.afterEnter.call(l,d)}}function s(){!1!==u.exit.call(l,d)&&(h&&clearTimeout(h),i.fadeOut(u.fadeOut),u.afterExit.call(l,d))}var l=t(this),c=l.data("tipTip"),u=c&&c.options||t.extend(n,e),d={holder:i,content:o,arrow:r,options:u};if(c)switch(e){case"show":a();break;case"hide":s();break;case"destroy":l.unbind(".tipTip").removeData("tipTip")}else{var h=!1;l.data("tipTip",{options:u}),"hover"==u.activation?l.bind("mouseenter.tipTip",function(){a()}).bind("mouseleave.tipTip",function(){u.keepAlive?i.one("mouseleave.tipTip",function(){s()}):s()}):"focus"==u.activation?l.bind("focus.tipTip",function(){a()}).bind("blur.tipTip",function(){s()}):"click"==u.activation?l.bind("click.tipTip",function(t){return t.preventDefault(),a(),!1}).bind("mouseleave.tipTip",function(){u.keepAlive?i.one("mouseleave.tipTip",function(){s()}):s()}):u.activation}})}}(jQuery),function(t){function e(t,e){if(!(t.originalEvent.touches.length>1)){t.preventDefault();var n=t.originalEvent.changedTouches[0],i=document.createEvent("MouseEvents");i.initMouseEvent(e,!0,!0,window,1,n.screenX,n.screenY,n.clientX,n.clientY,!1,!1,!1,!1,0,null),t.target.dispatchEvent(i)}}if(t.support.touch="ontouchend"in document,t.support.touch){var n,i=t.ui.mouse.prototype,o=i._mouseInit;i._touchStart=function(t){var i=this;!n&&i._mouseCapture(t.originalEvent.changedTouches[0])&&(n=!0,i._touchMoved=!1,e(t,"mouseover"),e(t,"mousemove"),e(t,"mousedown"))},i._touchMove=function(t){n&&(this._touchMoved=!0,e(t,"mousemove"))},i._touchEnd=function(t){n&&(e(t,"mouseup"),e(t,"mouseout"),this._touchMoved||e(t,"click"),n=!1)},i._mouseInit=function(){var e=this;e.element.bind("touchstart",t.proxy(e,"_touchStart")).bind("touchmove",t.proxy(e,"_touchMove")).bind("touchend",t.proxy(e,"_touchEnd")),o.call(e)}}}(jQuery),function(t){"function"==typeof define&&define.amd&&define.amd.jQuery?define(["jquery"],t):t(jQuery)}(function(t){function e(e){return!e||void 0!==e.allowPageScroll||void 0===e.swipe&&void 0===e.swipeStatus||(e.allowPageScroll=c),void 0!==e.click&&void 0===e.tap&&(e.tap=e.click),e||(e={}),e=t.extend({},t.fn.swipe.defaults,e),this.each(function(){var i=t(this),o=i.data(_);o||(o=new n(this,e),i.data(_,o))})}function n(e,n){function S(e){if(!(st()||t(e.target).closest(n.excludedElements,zt).length>0)){var i,o=e.originalEvent?e.originalEvent:e,r=F?o.touches[0]:o;return qt=w,F?Nt=o.touches.length:e.preventDefault(),Ot=0,At=null,Bt=null,Ht=0,Mt=0,Lt=0,Dt=1,Ut=0,Wt=ht(),Rt=gt(),rt(),!F||Nt===n.fingers||n.fingers===v||R()?(ct(0,r),Vt=Ft(),2==Nt&&(ct(1,o.touches[1]),Mt=Lt=vt(Wt[0].start,Wt[1].start)),(n.swipeStatus||n.pinchStatus)&&(i=O(o,qt))):i=!1,!1===i?(qt=x,O(o,qt),i):(lt(!0),null)}}function j(t){var e=t.originalEvent?t.originalEvent:t;if(qt!==$&&qt!==x&&!at()){var i,o=F?e.touches[0]:e,r=ut(o);if(Qt=Ft(),F&&(Nt=e.touches.length),qt=P,2==Nt&&(0==Mt?(ct(1,e.touches[1]),Mt=Lt=vt(Wt[0].start,Wt[1].start)):(ut(e.touches[1]),Lt=vt(Wt[0].end,Wt[1].end),Bt=wt(Wt[0].end,Wt[1].end)),Dt=yt(Mt,Lt),Ut=Math.abs(Mt-Lt)),Nt===n.fingers||n.fingers===v||!F||R()){if(At=xt(r.start,r.end),U(t,At),Ot=Pt(r.start,r.end),Ht=bt(),ft(At,Ot),(n.swipeStatus||n.pinchStatus)&&(i=O(e,qt)),!n.triggerOnTouchEnd||n.triggerOnTouchLeave){var a=!0;if(n.triggerOnTouchLeave){var s=_t(this);a=St(r.end,s)}!n.triggerOnTouchEnd&&a?qt=E(P):n.triggerOnTouchLeave&&!a&&(qt=E($)),qt!=x&&qt!=$||O(e,qt)}}else qt=x,O(e,qt);!1===i&&(qt=x,O(e,qt))}}function k(t){var e=t.originalEvent;return F&&e.touches.length>0?(ot(),!0):(at()&&(Nt=Xt),t.preventDefault(),Qt=Ft(),Ht=bt(),M()?(qt=x,O(e,qt)):n.triggerOnTouchEnd||0==n.triggerOnTouchEnd&&qt===P?(qt=$,O(e,qt)):!n.triggerOnTouchEnd&&G()?(qt=$,A(e,qt,f)):qt===P&&(qt=x,O(e,qt)),lt(!1),null)}function T(){Nt=0,Qt=0,Vt=0,Mt=0,Lt=0,Dt=1,rt(),lt(!1)}function C(t){var e=t.originalEvent;n.triggerOnTouchLeave&&(qt=E($),O(e,qt))}function I(){zt.unbind(kt,S),zt.unbind(Et,T),zt.unbind(Tt,j),zt.unbind(Ct,k),It&&zt.unbind(It,C),lt(!1)}function E(t){var e=t,i=D(),o=H(),r=M();return!i||r?e=x:!o||t!=P||n.triggerOnTouchEnd&&!n.triggerOnTouchLeave?!o&&t==$&&n.triggerOnTouchLeave&&(e=x):e=$,e}function O(t,e){var n=void 0;return W()||N()?n=A(t,e,d):(z()||R())&&!1!==n&&(n=A(t,e,h)),nt()&&!1!==n?n=A(t,e,p):it()&&!1!==n?n=A(t,e,g):et()&&!1!==n&&(n=A(t,e,f)),e===x&&T(t),e===$&&(F?0==t.touches.length&&T(t):T(t)),n}function A(e,c,u){var m=void 0;if(u==d){if(zt.trigger("swipeStatus",[c,At||null,Ot||0,Ht||0,Nt]),n.swipeStatus&&(m=n.swipeStatus.call(zt,e,c,At||null,Ot||0,Ht||0,Nt),!1===m))return!1;if(c==$&&q()){if(zt.trigger("swipe",[At,Ot,Ht,Nt]),n.swipe&&(m=n.swipe.call(zt,e,At,Ot,Ht,Nt),!1===m))return!1;switch(At){case i:zt.trigger("swipeLeft",[At,Ot,Ht,Nt]),n.swipeLeft&&(m=n.swipeLeft.call(zt,e,At,Ot,Ht,Nt));break;case o:zt.trigger("swipeRight",[At,Ot,Ht,Nt]),n.swipeRight&&(m=n.swipeRight.call(zt,e,At,Ot,Ht,Nt));break;case r:zt.trigger("swipeUp",[At,Ot,Ht,Nt]),n.swipeUp&&(m=n.swipeUp.call(zt,e,At,Ot,Ht,Nt));break;case a:zt.trigger("swipeDown",[At,Ot,Ht,Nt]),n.swipeDown&&(m=n.swipeDown.call(zt,e,At,Ot,Ht,Nt))}}}if(u==h){if(zt.trigger("pinchStatus",[c,Bt||null,Ut||0,Ht||0,Nt,Dt]),n.pinchStatus&&(m=n.pinchStatus.call(zt,e,c,Bt||null,Ut||0,Ht||0,Nt,Dt),!1===m))return!1;if(c==$&&B())switch(Bt){case s:zt.trigger("pinchIn",[Bt||null,Ut||0,Ht||0,Nt,Dt]),n.pinchIn&&(m=n.pinchIn.call(zt,e,Bt||null,Ut||0,Ht||0,Nt,Dt));break;case l:zt.trigger("pinchOut",[Bt||null,Ut||0,Ht||0,Nt,Dt]),n.pinchOut&&(m=n.pinchOut.call(zt,e,Bt||null,Ut||0,Ht||0,Nt,Dt))}}return u==f?c!==x&&c!==$||(clearTimeout(Jt),X()&&!K()?(Yt=Ft(),Jt=setTimeout(t.proxy(function(){Yt=null,zt.trigger("tap",[e.target]),n.tap&&(m=n.tap.call(zt,e,e.target))},this),n.doubleTapThreshold)):(Yt=null,zt.trigger("tap",[e.target]),n.tap&&(m=n.tap.call(zt,e,e.target)))):u==p?c!==x&&c!==$||(clearTimeout(Jt),Yt=null,zt.trigger("doubletap",[e.target]),n.doubleTap&&(m=n.doubleTap.call(zt,e,e.target))):u==g&&(c!==x&&c!==$||(clearTimeout(Jt),Yt=null,zt.trigger("longtap",[e.target]),n.longTap&&(m=n.longTap.call(zt,e,e.target)))),m}function H(){var t=!0;return null!==n.threshold&&(t=Ot>=n.threshold),t}function M(){var t=!1;return null!==n.cancelThreshold&&null!==At&&(t=pt(At)-Ot>=n.cancelThreshold),t}function L(){return null===n.pinchThreshold||Ut>=n.pinchThreshold}function D(){var t;return t=!n.maxTimeThreshold||!(Ht>=n.maxTimeThreshold),t}function U(t,e){if(n.allowPageScroll===c||R())t.preventDefault();else{var s=n.allowPageScroll===u;switch(e){case i:(n.swipeLeft&&s||!s&&n.allowPageScroll!=m)&&t.preventDefault();break;case o:(n.swipeRight&&s||!s&&n.allowPageScroll!=m)&&t.preventDefault();break;case r:(n.swipeUp&&s||!s&&n.allowPageScroll!=b)&&t.preventDefault();break;case a:(n.swipeDown&&s||!s&&n.allowPageScroll!=b)&&t.preventDefault()}}}function B(){var t=V(),e=Q(),n=L();return t&&e&&n}function R(){return!!(n.pinchStatus||n.pinchIn||n.pinchOut)}function z(){return!(!B()||!R())}function q(){var t=D(),e=H(),n=V(),i=Q(),o=M(),r=!o&&i&&n&&e&&t;return r}function N(){return!!(n.swipe||n.swipeStatus||n.swipeLeft||n.swipeRight||n.swipeUp||n.swipeDown)}function W(){return!(!q()||!N())}function V(){return Nt===n.fingers||n.fingers===v||!F}function Q(){return 0!==Wt[0].end.x}function G(){return!!n.tap}function X(){return!!n.doubleTap}function Y(){return!!n.longTap}function J(){if(null==Yt)return!1;var t=Ft();return X()&&t-Yt<=n.doubleTapThreshold}function K(){return J()}function Z(){return(1===Nt||!F)&&(isNaN(Ot)||0===Ot)}function tt(){return Ht>n.longTapThreshold&&Ot=0?i:n<=360&&n>=315?i:n>=135&&n<=225?o:n>45&&n<135?a:r}function Ft(){var t=new Date;return t.getTime()}function _t(e){e=t(e);var n=e.offset(),i={left:n.left,right:n.left+e.outerWidth(),top:n.top,bottom:n.top+e.outerHeight()};return i}function St(t,e){return t.x>e.left&&t.xe.top&&t.ya?(n.maxWidth=r*a,n.maxHeight=r):(n.maxWidth=o,n.maxHeight=o/a),n},e.renderImageToCanvas=function(t,e,n,i,o,r,a,s,l,c){return t.getContext("2d").drawImage(e,n,i,o,r,a,s,l,c),t},e.hasCanvasOption=function(t){return t.canvas||t.crop||!!t.aspectRatio},e.scale=function(t,n,i){function o(){var t=Math.max((l||P)/P,(c||$)/$);t>1&&(P*=t,$*=t)}function r(){var t=Math.min((a||P)/P,(s||$)/$);t<1&&(P*=t,$*=t)}n=n||{};var a,s,l,c,u,d,h,f,p,g,m,b=document.createElement("canvas"),v=t.getContext||e.hasCanvasOption(n)&&b.getContext,y=t.naturalWidth||t.width,w=t.naturalHeight||t.height,P=y,$=w;if(b.originalWidth=y,b.originalHeight=w,v&&(n=e.getTransformedOptions(t,n,i),h=n.left||0,f=n.top||0,n.sourceWidth?(u=n.sourceWidth,void 0!==n.right&&void 0===n.left&&(h=y-u-n.right)):u=y-h-(n.right||0),n.sourceHeight?(d=n.sourceHeight,void 0!==n.bottom&&void 0===n.top&&(f=w-d-n.bottom)):d=w-f-(n.bottom||0),P=u,$=d),a=n.maxWidth,s=n.maxHeight,l=n.minWidth,c=n.minHeight,v&&a&&s&&n.crop?(P=a,$=s,m=u/d-a/s,m<0?(d=s*u/a,void 0===n.top&&void 0===n.bottom&&(f=(w-d)/2)):m>0&&(u=a*d/s,void 0===n.left&&void 0===n.right&&(h=(y-u)/2))):((n.contain||n.cover)&&(l=a=a||l,c=s=s||c),n.cover?(r(),o()):(o(),r())),v){if(p=n.pixelRatio,p>1&&(b.style.width=P+"px",b.style.height=$+"px",P*=p,$*=p,b.getContext("2d").scale(p,p)),g=n.downsamplingRatio,g>0&&g<1&&PP;)b.width=u*g,b.height=d*g,e.renderImageToCanvas(b,t,h,f,u,d,0,0,b.width,b.height),u=b.width,d=b.height,t=document.createElement("canvas"),t.width=u,t.height=d,e.renderImageToCanvas(t,b,0,0,u,d,0,0,u,d);return b.width=P,b.height=$,e.transformCoordinates(b,n),e.renderImageToCanvas(b,t,h,f,u,d,0,0,P,$)}return t.width=P,t.height=$,t},e.createObjectURL=function(t){return!!i&&i.createObjectURL(t)},e.revokeObjectURL=function(t){return!!i&&i.revokeObjectURL(t)},e.readFile=function(t,e,n){if(window.FileReader){var i=new FileReader;if(i.onload=i.onerror=e,n=n||"readAsDataURL",i[n])return i[n](t),i}return!1},"function"==typeof define&&define.amd?define(function(){return e}):"object"==typeof module&&module.exports?module.exports=e:t.loadImage=e}(window),function(t){"use strict";"function"==typeof define&&define.amd?define(["./load-image"],t):t("object"==typeof module&&module.exports?require("./load-image"):window.loadImage)}(function(t){"use strict";var e=window.Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice);t.blobSlice=e&&function(){var t=this.slice||this.webkitSlice||this.mozSlice;return t.apply(this,arguments)},t.metaDataParsers={jpeg:{65505:[]}},t.parseMetaData=function(e,n,i,o){i=i||{},o=o||{};var r=this,a=i.maxMetaDataSize||262144,s=!(window.DataView&&e&&e.size>=12&&"image/jpeg"===e.type&&t.blobSlice);!s&&t.readFile(t.blobSlice.call(e,0,a),function(e){if(e.target.error)return console.log(e.target.error),void n(o);var a,s,l,c,u=e.target.result,d=new DataView(u),h=2,f=d.byteLength-4,p=h;if(65496===d.getUint16(0)){for(;h=65504&&a<=65519||65534===a);){if(s=d.getUint16(h+2)+2,h+s>d.byteLength){console.log("Invalid meta data: Invalid segment size.");break}if(l=t.metaDataParsers.jpeg[a])for(c=0;c6&&(u.slice?o.imageHead=u.slice(0,p):o.imageHead=new Uint8Array(u).subarray(0,p))}else console.log("Invalid JPEG file: Missing JPEG marker.");n(o)},"readAsArrayBuffer")||n(o)},t.hasMetaOption=function(t){return t.meta};var n=t.transform;t.transform=function(e,i,o,r,a){t.hasMetaOption(i||{})?t.parseMetaData(r,function(a){n.call(t,e,i,o,r,a)},i,a):n.apply(t,arguments)}}),function(t){"use strict";"function"==typeof define&&define.amd?define(["./load-image","./load-image-meta"],t):"object"==typeof module&&module.exports?t(require("./load-image"),require("./load-image-meta")):t(window.loadImage)}(function(t){"use strict";t.ExifMap=function(){return this},t.ExifMap.prototype.map={Orientation:274},t.ExifMap.prototype.get=function(t){return this[t]||this[this.map[t]]},t.getExifThumbnail=function(t,e,n){var i,o,r;if(n&&!(e+n>t.byteLength)){for(i=[],o=0;o4?n+e.getUint32(i+8,a):i+8,!(l+s>e.byteLength)){if(1===r)return f.getValue(e,l,a);for(c=[],u=0;ut.byteLength)console.log("Invalid Exif data: Invalid directory offset.");else{if(r=t.getUint16(n,i),a=n+2+12*r,!(a+4>t.byteLength)){for(s=0;se.byteLength)return void console.log("Invalid Exif data: Invalid segment size.");if(0!==e.getUint16(n+8))return void console.log("Invalid Exif data: Missing byte alignment offset.");switch(e.getUint16(c)){case 18761:a=!0;break;case 19789:a=!1;break;default:return void console.log("Invalid Exif data: Invalid byte alignment marker.")}if(42!==e.getUint16(c+2,a))return void console.log("Invalid Exif data: Missing TIFF marker.");s=e.getUint32(c+4,a),o.exif=new t.ExifMap,s=t.parseExifTags(e,c,c+s,a,o),s&&!r.disableExifThumbnail&&(l={exif:{}},s=t.parseExifTags(e,c,c+s,a,l),l.exif[513]&&(o.exif.Thumbnail=t.getExifThumbnail(e,c+l.exif[513],l.exif[514]))),o.exif[34665]&&!r.disableExifSub&&t.parseExifTags(e,c,c+o.exif[34665],a,o),o.exif[34853]&&!r.disableExifGps&&t.parseExifTags(e,c,c+o.exif[34853],a,o)}}}, +t.metaDataParsers.jpeg[65505].push(t.parseExifData)}),function(t){"use strict";"function"==typeof define&&define.amd?define(["./load-image","./load-image-exif"],t):"object"==typeof module&&module.exports?t(require("./load-image"),require("./load-image-exif")):t(window.loadImage)}(function(t){"use strict";t.ExifMap.prototype.tags={256:"ImageWidth",257:"ImageHeight",34665:"ExifIFDPointer",34853:"GPSInfoIFDPointer",40965:"InteroperabilityIFDPointer",258:"BitsPerSample",259:"Compression",262:"PhotometricInterpretation",274:"Orientation",277:"SamplesPerPixel",284:"PlanarConfiguration",530:"YCbCrSubSampling",531:"YCbCrPositioning",282:"XResolution",283:"YResolution",296:"ResolutionUnit",273:"StripOffsets",278:"RowsPerStrip",279:"StripByteCounts",513:"JPEGInterchangeFormat",514:"JPEGInterchangeFormatLength",301:"TransferFunction",318:"WhitePoint",319:"PrimaryChromaticities",529:"YCbCrCoefficients",532:"ReferenceBlackWhite",306:"DateTime",270:"ImageDescription",271:"Make",272:"Model",305:"Software",315:"Artist",33432:"Copyright",36864:"ExifVersion",40960:"FlashpixVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",42240:"Gamma",37121:"ComponentsConfiguration",37122:"CompressedBitsPerPixel",37500:"MakerNote",37510:"UserComment",40964:"RelatedSoundFile",36867:"DateTimeOriginal",36868:"DateTimeDigitized",37520:"SubSecTime",37521:"SubSecTimeOriginal",37522:"SubSecTimeDigitized",33434:"ExposureTime",33437:"FNumber",34850:"ExposureProgram",34852:"SpectralSensitivity",34855:"PhotographicSensitivity",34856:"OECF",34864:"SensitivityType",34865:"StandardOutputSensitivity",34866:"RecommendedExposureIndex",34867:"ISOSpeed",34868:"ISOSpeedLatitudeyyy",34869:"ISOSpeedLatitudezzz",37377:"ShutterSpeedValue",37378:"ApertureValue",37379:"BrightnessValue",37380:"ExposureBias",37381:"MaxApertureValue",37382:"SubjectDistance",37383:"MeteringMode",37384:"LightSource",37385:"Flash",37396:"SubjectArea",37386:"FocalLength",41483:"FlashEnergy",41484:"SpatialFrequencyResponse",41486:"FocalPlaneXResolution",41487:"FocalPlaneYResolution",41488:"FocalPlaneResolutionUnit",41492:"SubjectLocation",41493:"ExposureIndex",41495:"SensingMethod",41728:"FileSource",41729:"SceneType",41730:"CFAPattern",41985:"CustomRendered",41986:"ExposureMode",41987:"WhiteBalance",41988:"DigitalZoomRatio",41989:"FocalLengthIn35mmFilm",41990:"SceneCaptureType",41991:"GainControl",41992:"Contrast",41993:"Saturation",41994:"Sharpness",41995:"DeviceSettingDescription",41996:"SubjectDistanceRange",42016:"ImageUniqueID",42032:"CameraOwnerName",42033:"BodySerialNumber",42034:"LensSpecification",42035:"LensMake",42036:"LensModel",42037:"LensSerialNumber",0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude",5:"GPSAltitudeRef",6:"GPSAltitude",7:"GPSTimeStamp",8:"GPSSatellites",9:"GPSStatus",10:"GPSMeasureMode",11:"GPSDOP",12:"GPSSpeedRef",13:"GPSSpeed",14:"GPSTrackRef",15:"GPSTrack",16:"GPSImgDirectionRef",17:"GPSImgDirection",18:"GPSMapDatum",19:"GPSDestLatitudeRef",20:"GPSDestLatitude",21:"GPSDestLongitudeRef",22:"GPSDestLongitude",23:"GPSDestBearingRef",24:"GPSDestBearing",25:"GPSDestDistanceRef",26:"GPSDestDistance",27:"GPSProcessingMethod",28:"GPSAreaInformation",29:"GPSDateStamp",30:"GPSDifferential",31:"GPSHPositioningError"},t.ExifMap.prototype.stringValues={ExposureProgram:{0:"Undefined",1:"Manual",2:"Normal program",3:"Aperture priority",4:"Shutter priority",5:"Creative program",6:"Action program",7:"Portrait mode",8:"Landscape mode"},MeteringMode:{0:"Unknown",1:"Average",2:"CenterWeightedAverage",3:"Spot",4:"MultiSpot",5:"Pattern",6:"Partial",255:"Other"},LightSource:{0:"Unknown",1:"Daylight",2:"Fluorescent",3:"Tungsten (incandescent light)",4:"Flash",9:"Fine weather",10:"Cloudy weather",11:"Shade",12:"Daylight fluorescent (D 5700 - 7100K)",13:"Day white fluorescent (N 4600 - 5400K)",14:"Cool white fluorescent (W 3900 - 4500K)",15:"White fluorescent (WW 3200 - 3700K)",17:"Standard light A",18:"Standard light B",19:"Standard light C",20:"D55",21:"D65",22:"D75",23:"D50",24:"ISO studio tungsten",255:"Other"},Flash:{0:"Flash did not fire",1:"Flash fired",5:"Strobe return light not detected",7:"Strobe return light detected",9:"Flash fired, compulsory flash mode",13:"Flash fired, compulsory flash mode, return light not detected",15:"Flash fired, compulsory flash mode, return light detected",16:"Flash did not fire, compulsory flash mode",24:"Flash did not fire, auto mode",25:"Flash fired, auto mode",29:"Flash fired, auto mode, return light not detected",31:"Flash fired, auto mode, return light detected",32:"No flash function",65:"Flash fired, red-eye reduction mode",69:"Flash fired, red-eye reduction mode, return light not detected",71:"Flash fired, red-eye reduction mode, return light detected",73:"Flash fired, compulsory flash mode, red-eye reduction mode",77:"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",79:"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",89:"Flash fired, auto mode, red-eye reduction mode",93:"Flash fired, auto mode, return light not detected, red-eye reduction mode",95:"Flash fired, auto mode, return light detected, red-eye reduction mode"},SensingMethod:{1:"Undefined",2:"One-chip color area sensor",3:"Two-chip color area sensor",4:"Three-chip color area sensor",5:"Color sequential area sensor",7:"Trilinear sensor",8:"Color sequential linear sensor"},SceneCaptureType:{0:"Standard",1:"Landscape",2:"Portrait",3:"Night scene"},SceneType:{1:"Directly photographed"},CustomRendered:{0:"Normal process",1:"Custom process"},WhiteBalance:{0:"Auto white balance",1:"Manual white balance"},GainControl:{0:"None",1:"Low gain up",2:"High gain up",3:"Low gain down",4:"High gain down"},Contrast:{0:"Normal",1:"Soft",2:"Hard"},Saturation:{0:"Normal",1:"Low saturation",2:"High saturation"},Sharpness:{0:"Normal",1:"Soft",2:"Hard"},SubjectDistanceRange:{0:"Unknown",1:"Macro",2:"Close view",3:"Distant view"},FileSource:{3:"DSC"},ComponentsConfiguration:{0:"",1:"Y",2:"Cb",3:"Cr",4:"R",5:"G",6:"B"},Orientation:{1:"top-left",2:"top-right",3:"bottom-right",4:"bottom-left",5:"left-top",6:"right-top",7:"right-bottom",8:"left-bottom"}},t.ExifMap.prototype.getText=function(t){var e=this.get(t);switch(t){case"LightSource":case"Flash":case"MeteringMode":case"ExposureProgram":case"SensingMethod":case"SceneCaptureType":case"SceneType":case"CustomRendered":case"WhiteBalance":case"GainControl":case"Contrast":case"Saturation":case"Sharpness":case"SubjectDistanceRange":case"FileSource":case"Orientation":return this.stringValues[t][e];case"ExifVersion":case"FlashpixVersion":if(!e)return;return String.fromCharCode(e[0],e[1],e[2],e[3]);case"ComponentsConfiguration":if(!e)return;return this.stringValues[t][e[0]]+this.stringValues[t][e[1]]+this.stringValues[t][e[2]]+this.stringValues[t][e[3]];case"GPSVersionID":if(!e)return;return e[0]+"."+e[1]+"."+e[2]+"."+e[3]}return String(e)},function(t){var e,n=t.tags,i=t.map;for(e in n)n.hasOwnProperty(e)&&(i[n[e]]=e)}(t.ExifMap.prototype),t.ExifMap.prototype.getAll=function(){var t,e,n={};for(t in this)this.hasOwnProperty(t)&&(e=this.tags[t],e&&(n[e]=this.getText(e)));return n}}),function(t){"use strict";"function"==typeof define&&define.amd?define(["./load-image"],t):t("object"==typeof module&&module.exports?require("./load-image"):window.loadImage)}(function(t){"use strict";var e=t.hasCanvasOption,n=t.hasMetaOption,i=t.transformCoordinates,o=t.getTransformedOptions;t.hasCanvasOption=function(n){return!!n.orientation||e.call(t,n)},t.hasMetaOption=function(e){return!0===e.orientation||n.call(t,e)},t.transformCoordinates=function(e,n){i.call(t,e,n);var o=e.getContext("2d"),r=e.width,a=e.height,s=e.style.width,l=e.style.height,c=n.orientation;if(c&&!(c>8))switch(c>4&&(e.width=a,e.height=r,e.style.width=l,e.style.height=s),c){case 2:o.translate(r,0),o.scale(-1,1);break;case 3:o.translate(r,a),o.rotate(Math.PI);break;case 4:o.translate(0,a),o.scale(1,-1);break;case 5:o.rotate(.5*Math.PI),o.scale(1,-1);break;case 6:o.rotate(.5*Math.PI),o.translate(0,-a);break;case 7:o.rotate(.5*Math.PI),o.translate(r,-a),o.scale(-1,1);break;case 8:o.rotate(-.5*Math.PI),o.translate(-r,0)}},t.getTransformedOptions=function(e,n,i){var r,a,s=o.call(t,e,n),l=s.orientation;if(!0===l&&i&&i.exif&&(l=i.exif.get("Orientation")),!l||l>8||1===l)return s;for(a in r={},s)s.hasOwnProperty(a)&&(r[a]=s[a]);switch(r.orientation=l,l){case 2:r.left=s.right,r.right=s.left;break;case 3:r.left=s.right,r.top=s.bottom,r.right=s.left,r.bottom=s.top;break;case 4:r.top=s.bottom,r.bottom=s.top;break;case 5:r.left=s.top,r.top=s.left,r.right=s.bottom,r.bottom=s.right;break;case 6:r.left=s.top,r.top=s.right,r.right=s.bottom,r.bottom=s.left;break;case 7:r.left=s.bottom,r.top=s.right,r.right=s.top,r.bottom=s.left;break;case 8:r.left=s.bottom,r.top=s.left,r.right=s.top,r.bottom=s.right}return s.orientation>4&&(r.maxWidth=s.maxHeight,r.maxHeight=s.maxWidth,r.minWidth=s.minHeight,r.minHeight=s.minWidth,r.sourceWidth=s.sourceHeight,r.sourceHeight=s.sourceWidth),r}}),"object"!=typeof JSON&&(JSON={}),function(){"use strict";function f(t){return t<10?"0"+t:t}function quote(t){return escapable.lastIndex=0,escapable.test(t)?'"'+t.replace(escapable,function(t){var e=meta[t];return"string"==typeof e?e:"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+t+'"'}function str(t,e){var n,i,o,r,a,s=gap,l=e[t];switch(l&&"object"==typeof l&&"function"==typeof l.toJSON&&(l=l.toJSON(t)),"function"==typeof rep&&(l=rep.call(e,t,l)),typeof l){case"string":return quote(l);case"number":return isFinite(l)?String(l):"null";case"boolean":case"null":return String(l);case"object":if(!l)return"null";if(gap+=indent,a=[],"[object Array]"===Object.prototype.toString.apply(l)){for(r=l.length,n=0;n")&&n[0];);return t>4&&t}();return t},h.isInternetExplorer=function(){var t=h.isInternetExplorer.cached=void 0!==h.isInternetExplorer.cached?h.isInternetExplorer.cached:Boolean(h.getInternetExplorerMajorVersion());return t},h.options.html4Mode?h.emulated={pushState:!0,hashChange:!0}:h.emulated={pushState:!Boolean(t.history&&t.history.pushState&&t.history.replaceState&&!/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i.test(o.userAgent)&&!/AppleWebKit\/5([0-2]|3[0-2])/i.test(o.userAgent)),hashChange:Boolean(!("onhashchange"in t||"onhashchange"in i)||h.isInternetExplorer()&&h.getInternetExplorerMajorVersion()<8)},h.enabled=!h.emulated.pushState,h.bugs={setHash:Boolean(!h.emulated.pushState&&"Apple Computer, Inc."===o.vendor&&/AppleWebKit\/5([0-2]|3[0-3])/.test(o.userAgent)),safariPoll:Boolean(!h.emulated.pushState&&"Apple Computer, Inc."===o.vendor&&/AppleWebKit\/5([0-2]|3[0-3])/.test(o.userAgent)),ieDoubleCheck:Boolean(h.isInternetExplorer()&&h.getInternetExplorerMajorVersion()<8),hashEscape:Boolean(h.isInternetExplorer()&&h.getInternetExplorerMajorVersion()<7)},h.isEmptyObject=function(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0},h.cloneObject=function(t){var e,n;return t?(e=u.stringify(t),n=u.parse(e)):n={},n},h.getRootUrl=function(){var t=i.location.protocol+"//"+(i.location.hostname||i.location.host);return i.location.port&&(t+=":"+i.location.port),t+="/",t},h.getBaseHref=function(){var t=i.getElementsByTagName("base"),e=null,n="";return 1===t.length&&(e=t[0],n=e.href.replace(/[^\/]+$/,"")),n=n.replace(/\/+$/,""),n&&(n+="/"),n},h.getBaseUrl=function(){var t=h.getBaseHref()||h.getBasePageUrl()||h.getRootUrl();return t},h.getPageUrl=function(){var t,e=h.getState(!1,!1),n=(e||{}).url||h.getLocationHref();return t=n.replace(/\/+$/,"").replace(/[^\/]+$/,function(t,e,n){return/\./.test(t)?t:t+"/"}),t},h.getBasePageUrl=function(){var t=h.getLocationHref().replace(/[#\?].*/,"").replace(/[^\/]+$/,function(t,e,n){return/[^\/]$/.test(t)?"":t}).replace(/\/+$/,"")+"/";return t},h.getFullUrl=function(t,e){var n=t,i=t.substring(0,1);return e=void 0===e||e,/[a-z]+\:\/\//.test(t)||(n="/"===i?h.getRootUrl()+t.replace(/^\/+/,""):"#"===i?h.getPageUrl().replace(/#.*/,"")+t:"?"===i?h.getPageUrl().replace(/[\?#].*/,"")+t:e?h.getBaseUrl()+t.replace(/^(\.\/)+/,""):h.getBasePageUrl()+t.replace(/^(\.\/)+/,"")),n.replace(/\#$/,"")},h.getShortUrl=function(t){var e=t,n=h.getBaseUrl(),i=h.getRootUrl();return h.emulated.pushState&&(e=e.replace(n,"")),e=e.replace(i,"/"),h.isTraditionalAnchor(e)&&(e="./"+e),e=e.replace(/^(\.\/)+/g,"./").replace(/\#$/,""),e},h.getLocationHref=function(t){return t=t||i,t.URL===t.location.href?t.location.href:t.location.href===decodeURIComponent(t.URL)?t.URL:t.location.hash&&decodeURIComponent(t.location.href.replace(/^[^#]+/,""))===t.location.hash?t.location.href:-1==t.URL.indexOf("#")&&-1!=t.location.href.indexOf("#")?t.location.href:t.URL||t.location.href},h.store={},h.idToState=h.idToState||{},h.stateToId=h.stateToId||{},h.urlToId=h.urlToId||{},h.storedStates=h.storedStates||[],h.savedStates=h.savedStates||[],h.normalizeStore=function(){h.store.idToState=h.store.idToState||{},h.store.urlToId=h.store.urlToId||{},h.store.stateToId=h.store.stateToId||{}},h.getState=function(t,e){void 0===t&&(t=!0),void 0===e&&(e=!0);var n=h.getLastSavedState();return!n&&e&&(n=h.createStateObject()),t&&(n=h.cloneObject(n),n.url=n.cleanUrl||n.url),n},h.getIdByState=function(t){var e,n=h.extractId(t.url);if(!n)if(e=h.getStateString(t),void 0!==h.stateToId[e])n=h.stateToId[e];else if(void 0!==h.store.stateToId[e])n=h.store.stateToId[e];else{for(;n=(new Date).getTime()+String(Math.random()).replace(/\D/g,""),void 0!==h.idToState[n]||void 0!==h.store.idToState[n];);h.stateToId[e]=n,h.idToState[n]=t}return n},h.normalizeState=function(t){var e,n;return t&&"object"==typeof t||(t={}),void 0!==t.normalized?t:(t.data&&"object"==typeof t.data||(t.data={}),e={},e.normalized=!0,e.title=t.title||"",e.url=h.getFullUrl(t.url?t.url:h.getLocationHref()),e.hash=h.getShortUrl(e.url),e.data=h.cloneObject(t.data),e.id=h.getIdByState(e),e.cleanUrl=e.url.replace(/\??\&_suid.*/,""),e.url=e.cleanUrl,n=!h.isEmptyObject(e.data),(e.title||n)&&!0!==h.options.disableSuid&&(e.hash=h.getShortUrl(e.url).replace(/\??\&_suid.*/,""),/\?/.test(e.hash)||(e.hash+="?"),e.hash+="&_suid="+e.id),e.hashedUrl=h.getFullUrl(e.hash),(h.emulated.pushState||h.bugs.safariPoll)&&h.hasUrlDuplicate(e)&&(e.url=e.hashedUrl),e)},h.createStateObject=function(t,e,n){var i={data:t,title:e,url:n};return i=h.normalizeState(i),i},h.getStateById=function(t){t=String(t);var n=h.idToState[t]||h.store.idToState[t]||e;return n},h.getStateString=function(t){var e,n,i;return e=h.normalizeState(t),n={data:e.data,title:t.title,url:t.url},i=u.stringify(n),i},h.getStateId=function(t){var e,n;return e=h.normalizeState(t),n=e.id,n},h.getHashByState=function(t){var e,n;return e=h.normalizeState(t),n=e.hash,n},h.extractId=function(t){var e,n,i;return i=-1!=t.indexOf("#")?t.split("#")[0]:t,n=/(.*)\&_suid=([0-9]+)$/.exec(i),n&&n[1]||t,e=n?String(n[2]||""):"",e||!1},h.isTraditionalAnchor=function(t){var e=!/[\/\?\.]/.test(t);return e},h.extractState=function(t,e){var n,i,o=null;return e=e||!1,n=h.extractId(t),n&&(o=h.getStateById(n)),o||(i=h.getFullUrl(t),n=h.getIdByUrl(i)||!1,n&&(o=h.getStateById(n)),!o&&e&&!h.isTraditionalAnchor(t)&&(o=h.createStateObject(null,null,i))),o},h.getIdByUrl=function(t){var n=h.urlToId[t]||h.store.urlToId[t]||e;return n},h.getLastSavedState=function(){return h.savedStates[h.savedStates.length-1]||e},h.getLastStoredState=function(){return h.storedStates[h.storedStates.length-1]||e},h.hasUrlDuplicate=function(t){var e,n=!1;return e=h.extractState(t.url),n=e&&e.id!==t.id,n},h.storeState=function(t){return h.urlToId[t.url]=t.id,h.storedStates.push(h.cloneObject(t)),t},h.isLastSavedState=function(t){var e,n,i,o=!1;return h.savedStates.length&&(e=t.id,n=h.getLastSavedState(),i=n.id,o=e===i),o},h.saveState=function(t){return!h.isLastSavedState(t)&&(h.savedStates.push(h.cloneObject(t)),!0)},h.getStateByIndex=function(t){var e=null;return e=void 0===t?h.savedStates[h.savedStates.length-1]:t<0?h.savedStates[h.savedStates.length+t]:h.savedStates[t],e},h.getCurrentIndex=function(){var t=null;return t=h.savedStates.length<1?0:h.savedStates.length-1,t},h.getHash=function(t){var e,n=h.getLocationHref(t);return e=h.getHashByUrl(n),e},h.unescapeHash=function(t){var e=h.normalizeHash(t);return e=decodeURIComponent(e),e},h.normalizeHash=function(t){var e=t.replace(/[^#]*#/,"").replace(/#.*/,"");return e},h.setHash=function(t,e){var n,o;return!1!==e&&h.busy()?(h.pushQueue({scope:h,callback:h.setHash,args:arguments,queue:e}),!1):(h.busy(!0),n=h.extractState(t,!0),n&&!h.emulated.pushState?h.pushState(n.data,n.title,n.url,!1):h.getHash()!==t&&(h.bugs.setHash?(o=h.getPageUrl(),h.pushState(null,null,o+"#"+t,!1)):i.location.hash=t),h)},h.escapeHash=function(e){var n=h.normalizeHash(e);return n=t.encodeURIComponent(n),h.bugs.hashEscape||(n=n.replace(/\%21/g,"!").replace(/\%26/g,"&").replace(/\%3D/g,"=").replace(/\%3F/g,"?")),n},h.getHashByUrl=function(t){var e=String(t).replace(/([^#]*)#?([^#]*)#?(.*)/,"$2");return e=h.unescapeHash(e),e},h.setTitle=function(t){var e,n=t.title;n||(e=h.getStateByIndex(0),e&&e.url===t.url&&(n=e.title||h.options.initialTitle));try{i.getElementsByTagName("title")[0].innerHTML=n.replace("<","<").replace(">",">").replace(" & "," & ")}catch(t){}return i.title=n,h},h.queues=[],h.busy=function(t){if(void 0!==t?h.busy.flag=t:void 0===h.busy.flag&&(h.busy.flag=!1),!h.busy.flag){s(h.busy.timeout);var e=function(){var t,n,i;if(!h.busy.flag)for(t=h.queues.length-1;t>=0;--t)n=h.queues[t],0!==n.length&&(i=n.shift(),h.fireQueueItem(i),h.busy.timeout=a(e,h.options.busyDelay))};h.busy.timeout=a(e,h.options.busyDelay)}return h.busy.flag},h.busy.flag=!1,h.fireQueueItem=function(t){return t.callback.apply(t.scope||h,t.args||[])},h.pushQueue=function(t){return h.queues[t.queue||0]=h.queues[t.queue||0]||[],h.queues[t.queue||0].push(t),h},h.queue=function(t,e){return"function"==typeof t&&(t={callback:t}),void 0!==e&&(t.queue=e),h.busy()?h.pushQueue(t):h.fireQueueItem(t),h},h.clearQueue=function(){return h.busy.flag=!1,h.queues=[],h},h.stateChanged=!1,h.doubleChecker=!1,h.doubleCheckComplete=function(){return h.stateChanged=!0,h.doubleCheckClear(),h},h.doubleCheckClear=function(){return h.doubleChecker&&(s(h.doubleChecker),h.doubleChecker=!1),h},h.doubleCheck=function(t){return h.stateChanged=!1,h.doubleCheckClear(),h.bugs.ieDoubleCheck&&(h.doubleChecker=a(function(){return h.doubleCheckClear(),h.stateChanged||t(),!0},h.options.doubleCheckInterval)),h},h.safariStatePoll=function(){var e,n=h.extractState(h.getLocationHref());if(!h.isLastSavedState(n))return e=n,e||(e=h.createStateObject()),h.Adapter.trigger(t,"popstate"),h},h.back=function(t){return!1!==t&&h.busy()?(h.pushQueue({scope:h,callback:h.back,args:arguments,queue:t}),!1):(h.busy(!0),h.doubleCheck(function(){h.back(!1)}),f.go(-1),!0)},h.forward=function(t){return!1!==t&&h.busy()?(h.pushQueue({scope:h,callback:h.forward,args:arguments,queue:t}),!1):(h.busy(!0),h.doubleCheck(function(){h.forward(!1)}),f.go(1),!0)},h.go=function(t,e){var n;if(t>0)for(n=1;n<=t;++n)h.forward(e);else{if(!(t<0))throw new Error("History.go: History.go requires a positive or negative integer passed.");for(n=-1;n>=t;--n)h.back(e)}return h},h.emulated.pushState){var g=function(){};h.pushState=h.pushState||g,h.replaceState=h.replaceState||g}else h.onPopState=function(e,n){var i,o,r=!1,a=!1;return h.doubleCheckComplete(),i=h.getHash(),i?(o=h.extractState(i||h.getLocationHref(),!0),o?h.replaceState(o.data,o.title,o.url,!1):(h.Adapter.trigger(t,"anchorchange"),h.busy(!1)),h.expectedStateId=!1,!1):(r=h.Adapter.extractEventData("state",e,n)||!1,a=r?h.getStateById(r):h.expectedStateId?h.getStateById(h.expectedStateId):h.extractState(h.getLocationHref()),a||(a=h.createStateObject(null,null,h.getLocationHref())),h.expectedStateId=!1,h.isLastSavedState(a)?(h.busy(!1),!1):(h.storeState(a),h.saveState(a),h.setTitle(a),h.Adapter.trigger(t,"statechange"),h.busy(!1),!0))},h.Adapter.bind(t,"popstate",h.onPopState),h.pushState=function(e,n,i,o){if(h.getHashByUrl(i)&&h.emulated.pushState)throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(!1!==o&&h.busy())return h.pushQueue({scope:h,callback:h.pushState,args:arguments,queue:o}),!1;h.busy(!0);var r=h.createStateObject(e,n,i);return h.isLastSavedState(r)?h.busy(!1):(h.storeState(r),h.expectedStateId=r.id,f.pushState(r.id,r.title,r.url),h.Adapter.trigger(t,"popstate")),!0},h.replaceState=function(e,n,i,o){if(h.getHashByUrl(i)&&h.emulated.pushState)throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(!1!==o&&h.busy())return h.pushQueue({scope:h,callback:h.replaceState,args:arguments,queue:o}),!1;h.busy(!0);var r=h.createStateObject(e,n,i);return h.isLastSavedState(r)?h.busy(!1):(h.storeState(r),h.expectedStateId=r.id,f.replaceState(r.id,r.title,r.url),h.Adapter.trigger(t,"popstate")),!0};if(r){try{h.store=u.parse(r.getItem("History.store"))||{}}catch(t){h.store={}}h.normalizeStore()}else h.store={},h.normalizeStore();h.Adapter.bind(t,"unload",h.clearAllIntervals),h.saveState(h.storeState(h.extractState(h.getLocationHref(),!0))),r&&(h.onUnload=function(){var t,e,n;try{t=u.parse(r.getItem("History.store"))||{}}catch(e){t={}}for(e in t.idToState=t.idToState||{},t.urlToId=t.urlToId||{},t.stateToId=t.stateToId||{},h.idToState)h.idToState.hasOwnProperty(e)&&(t.idToState[e]=h.idToState[e]);for(e in h.urlToId)h.urlToId.hasOwnProperty(e)&&(t.urlToId[e]=h.urlToId[e]);for(e in h.stateToId)h.stateToId.hasOwnProperty(e)&&(t.stateToId[e]=h.stateToId[e]);h.store=t,h.normalizeStore(),n=u.stringify(t);try{r.setItem("History.store",n)}catch(t){if(t.code!==DOMException.QUOTA_EXCEEDED_ERR)throw t;r.length&&(r.removeItem("History.store"),r.setItem("History.store",n))}},h.intervalList.push(l(h.onUnload,h.options.storeInterval)),h.Adapter.bind(t,"beforeunload",h.onUnload),h.Adapter.bind(t,"unload",h.onUnload)),h.emulated.pushState||(h.bugs.safariPoll&&h.intervalList.push(l(h.safariStatePoll,h.options.safariPollInterval)),"Apple Computer, Inc."!==o.vendor&&"Mozilla"!==(o.appCodeName||"")||(h.Adapter.bind(t,"hashchange",function(){h.Adapter.trigger(t,"popstate")}),h.getHash()&&h.Adapter.onDomLoad(function(){h.Adapter.trigger(t,"hashchange")})))},(!h.options||!h.options.delayInit)&&h.init()}(window),function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(window.jQuery)}(function(t){var e=0;t.ajaxTransport("iframe",function(n){var i,o,r;if(n.async)return{send:function(a,s){i=t(''),i.attr("accept-charset",n.formAcceptCharset),r=/\?/.test(n.url)?"&":"?","DELETE"===n.type?(n.url=n.url+r+"_method=DELETE",n.type="POST"):"PUT"===n.type?(n.url=n.url+r+"_method=PUT",n.type="POST"):"PATCH"===n.type&&(n.url=n.url+r+"_method=PATCH",n.type="POST"),e+=1, +o=t('').bind("load",function(){var e,r=t.isArray(n.paramName)?n.paramName:[n.paramName];o.unbind("load").bind("load",function(){var e;try{if(e=o.contents(),!e.length||!e[0].firstChild)throw new Error}catch(t){e=void 0}s(200,"success",{iframe:e}),t('').appendTo(i),window.setTimeout(function(){i.remove()},0)}),i.prop("target",o.prop("name")).prop("action",n.url).prop("method",n.type),n.formData&&t.each(n.formData,function(e,n){t('').prop("name",n.name).val(n.value).appendTo(i)}),n.fileInput&&n.fileInput.length&&"POST"===n.type&&(e=n.fileInput.clone(),n.fileInput.after(function(t){return e[t]}),n.paramName&&n.fileInput.each(function(e){t(this).prop("name",r[e]||n.paramName)}),i.append(n.fileInput).prop("enctype","multipart/form-data").prop("encoding","multipart/form-data")),i.submit(),e&&e.length&&n.fileInput.each(function(n,i){var o=t(e[n]);t(i).prop("name",o.prop("name")),o.replaceWith(i)})}),i.append(o).appendTo(document.body)},abort:function(){o&&o.unbind("load").prop("src","javascript".concat(":false;")),i&&i.remove()}}}),t.ajaxSetup({converters:{"iframe text":function(e){return e&&t(e[0].body).text()},"iframe json":function(e){return e&&t.parseJSON(t(e[0].body).text())},"iframe html":function(e){return e&&t(e[0].body).html()},"iframe xml":function(e){var n=e&&e[0];return n&&t.isXMLDoc(n)?n:t.parseXML(n.XMLDocument&&n.XMLDocument.xml||t(n.body).html())},"iframe script":function(e){return e&&t.globalEval(t(e[0].body).text())}}})}),function(t,e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Spinner=e()}(this,function(){function t(t,e){var n,i=document.createElement(t||"div");for(n in e)i[n]=e[n];return i}function e(t){for(var e=1,n=arguments.length;e',n)}p.addRule(".spin-vml","behavior:url(#default#VML)"),l.prototype.lines=function(t,i){function r(){return o(n("group",{coordsize:u+" "+u,coordorigin:-c+" "+-c}),{width:u,height:u})}function a(t,a,l){e(h,e(o(r(),{rotation:360/i.lines*t+"deg",left:~~a}),e(o(n("roundrect",{arcsize:i.corners}),{width:c,height:i.width,left:i.radius,top:-i.width>>1,filter:l}),n("fill",{color:s(i.color,t),opacity:i.opacity}),n("stroke",{opacity:0}))))}var l,c=i.length+i.width,u=2*c,d=2*-(i.width+i.length)+"px",h=o(r(),{position:"absolute",top:d,left:d});if(i.shadow)for(l=1;l<=i.lines;l++)a(l,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(l=1;l<=i.lines;l++)a(l);return e(t,h)},l.prototype.opacity=function(t,e,n,i){var o=t.firstChild;i=i.shadow&&i.lines||0,o&&e+i>1):parseInt(s.left,10)+c)+"px",top:("auto"==s.top?i.y-n.y+(e.offsetHeight>>1):parseInt(s.top,10)+c)+"px"})),l.setAttribute("role","progressbar"),r.lines(l,r.opts),!u){var d,h=0,f=(s.lines-1)*(1-s.direction)/2,p=s.fps,g=p/s.speed,m=(1-s.opacity)/(g*s.trail/100),b=g/s.lines;(function t(){h++;for(var e=0;e>1)+"px"})}for(var l,c=0,d=(r.lines-1)*(1-r.direction)/2;ce.clientHeight,t.horizontal=e.scrollWidth>e.clientWidth,t}}(jQuery),function(t){function e(e,n){this.el=t(e),this.options=n||{},this.x=!1!==this.options.x||this.options.forceHorizontal,this.y=!1!==this.options.y||this.options.forceVertical,this.autoHide=!1!==this.options.autoHide,this.padding=null==this.options.padding?2:this.options.padding,this.inner=this.el.find(".antiscroll-inner"),this.inner.css({width:"+="+(this.y?o():0),height:"+="+(this.x?o():0)}),this.refresh()}function n(e){this.pane=e,this.pane.el.append(this.el),this.innerEl=this.pane.inner.get(0),this.dragging=!1,this.enter=!1,this.shown=!1,this.pane.el.mouseenter(t.proxy(this,"mouseenter")),this.pane.el.mouseleave(t.proxy(this,"mouseleave")),this.el.mousedown(t.proxy(this,"mousedown")),this.innerPaneScrollListener=t.proxy(this,"scroll"),this.pane.inner.scroll(this.innerPaneScrollListener),this.innerPaneMouseWheelListener=t.proxy(this,"mousewheel"),this.pane.inner.bind("mousewheel",this.innerPaneMouseWheelListener);var n=this.pane.options.initialDisplay;!1!==n&&(this.show(),this.pane.autoHide&&(this.hiding=setTimeout(t.proxy(this,"hide"),parseInt(n,10)||3e3)))}function i(t,e){function n(){}n.prototype=e.prototype,t.prototype=new n}function o(){if(void 0===r){var e=t('
    ');t("body").append(e);var n=t(e).innerWidth(),i=t("div",e).innerWidth();t(e).remove(),r=n-i}return r}var r;t.fn.antiscroll=function(e){return this.each(function(){t(this).data("antiscroll")&&t(this).data("antiscroll").destroy(),t(this).data("antiscroll",new t.Antiscroll(this,e))})},t.Antiscroll=e,e.prototype.refresh=function(){var t=this.inner.get(0).scrollWidth>this.el.width()+(this.y?o():0),e=this.inner.get(0).scrollHeight>this.el.height()+(this.x?o():0);this.x&&(!this.horizontal&&t?this.horizontal=new n.Horizontal(this):this.horizontal&&!t?(this.horizontal.destroy(),this.horizontal=null):this.horizontal&&this.horizontal.update()),this.y&&(!this.vertical&&e?this.vertical=new n.Vertical(this):this.vertical&&!e?(this.vertical.destroy(),this.vertical=null):this.vertical&&this.vertical.update())},e.prototype.destroy=function(){return this.horizontal&&(this.horizontal.destroy(),this.horizontal=null),this.vertical&&(this.vertical.destroy(),this.vertical=null),this},e.prototype.rebuild=function(){return this.destroy(),this.inner.attr("style",""),e.call(this,this.el,this.options),this},n.prototype.destroy=function(){return this.el.remove(),this.pane.inner.unbind("scroll",this.innerPaneScrollListener),this.pane.inner.unbind("mousewheel",this.innerPaneMouseWheelListener),this},n.prototype.mouseenter=function(){this.enter=!0,this.show()},n.prototype.mouseleave=function(){this.enter=!1,this.dragging||this.pane.autoHide&&this.hide()},n.prototype.scroll=function(){this.shown||(this.show(),this.enter||this.dragging||this.pane.autoHide&&(this.hiding=setTimeout(t.proxy(this,"hide"),1500))),this.update()},n.prototype.mousedown=function(e){e.preventDefault(),this.dragging=!0,this.startPageY=e.pageY-parseInt(this.el.css("top"),10),this.startPageX=e.pageX-parseInt(this.el.css("left"),10),this.el[0].ownerDocument.onselectstart=function(){return!1};this.pane;var n=t.proxy(this,"mousemove"),i=this;t(this.el[0].ownerDocument).mousemove(n).mouseup(function(){i.dragging=!1,this.onselectstart=null,t(this).unbind("mousemove",n),i.enter||i.hide()})},n.prototype.show=function(t){!this.shown&&this.update()&&(this.el.addClass("antiscroll-scrollbar-shown"),this.hiding&&(clearTimeout(this.hiding),this.hiding=null),this.shown=!0)},n.prototype.hide=function(){!1!==this.pane.autoHide&&this.shown&&(this.el.removeClass("antiscroll-scrollbar-shown"),this.shown=!1)},n.Horizontal=function(e){this.el=t('
    ',e.el),n.call(this,e)},i(n.Horizontal,n),n.Horizontal.prototype.update=function(){var t=this.pane.el.width(),e=t-2*this.pane.padding,n=this.pane.inner.get(0);return this.el.css("width",e*t/n.scrollWidth).css("left",e*n.scrollLeft/n.scrollWidth),t0&&this.innerEl.scrollLeft+Math.ceil(this.pane.el.width())==this.innerEl.scrollWidth)return t.preventDefault(),!1},n.Vertical=function(e){this.el=t('
    ',e.el),n.call(this,e)},i(n.Vertical,n),n.Vertical.prototype.update=function(){var t=this.pane.el.height(),e=t-2*this.pane.padding,n=this.innerEl,i=e*t/n.scrollHeight;i=i<20?20:i;var o=e*n.scrollTop/n.scrollHeight;if(o+i>e){var r=o+i-e;o=o-r-3}return this.el.css("height",i).css("top",o),t0&&0==this.innerEl.scrollTop||i<0&&this.innerEl.scrollTop+Math.ceil(this.pane.el.height())==this.innerEl.scrollHeight)return t.preventDefault(),!1}}(jQuery),function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof exports?module.exports=t:t(jQuery)}(function(t){function e(e){var o,r=e||window.event,a=[].slice.call(arguments,1),s=0,l=0,c=0,u=0,d=0;return e=t.event.fix(r),e.type="mousewheel",r.wheelDelta&&(s=r.wheelDelta),r.detail&&(s=-1*r.detail),r.deltaY&&(c=-1*r.deltaY,s=c),r.deltaX&&(l=r.deltaX,s=-1*l),void 0!==r.wheelDeltaY&&(c=r.wheelDeltaY),void 0!==r.wheelDeltaX&&(l=-1*r.wheelDeltaX),u=Math.abs(s),(!n||u0?"floor":"ceil",s=Math[o](s/n),l=Math[o](l/i),c=Math[o](c/i),a.unshift(e,s,l,c),(t.event.dispatch||t.event.handle).apply(this,a)}var n,i,o=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],r="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"];if(t.event.fixHooks)for(var a=o.length;a;)t.event.fixHooks[o[--a]]=t.event.mouseHooks;t.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var t=r.length;t;)this.addEventListener(r[--t],e,!1);else this.onmousewheel=e},teardown:function(){if(this.removeEventListener)for(var t=r.length;t;)this.removeEventListener(r[--t],e,!1);else this.onmousewheel=null}},t.fn.extend({mousewheel:function(t){return t?this.bind("mousewheel",t):this.trigger("mousewheel")},unmousewheel:function(t){return this.unbind("mousewheel",t)}})}),function(t){t.fn.delayedAction=function(e){var n=t.extend({},{delayedAction:function(){},cancelledAction:function(){},hoverTime:1e3},e);return this.each(function(){var e=t(this);e.hover(function(){e.data("timerId",setTimeout(function(){e.data("hover",!1),n.delayedAction(e)},n.hoverTime)),e.data("hover",!0)},function(){e.data("hover")&&(clearTimeout(e.data("timerId")),n.cancelledAction(e)),e.data("hover",!1)})})}}(jQuery),function(t){if("object"==typeof exports)module.exports=t();else if("function"==typeof define&&define.amd)define(t);else{var e;try{e=window}catch(t){e=self}e.SparkMD5=t()}}(function(t){"use strict";function e(t,e,n,i,o,r){return e=v(v(e,t),v(i,r)),v(e<>>32-o,n)}function n(t,n,i,o,r,a,s){return e(n&i|~n&o,t,n,r,a,s)}function i(t,n,i,o,r,a,s){return e(n&o|i&~o,t,n,r,a,s)}function o(t,n,i,o,r,a,s){return e(n^i^o,t,n,r,a,s)}function r(t,n,i,o,r,a,s){return e(i^(n|~o),t,n,r,a,s)}function a(t,e){var a=t[0],s=t[1],l=t[2],c=t[3];a=n(a,s,l,c,e[0],7,-680876936),c=n(c,a,s,l,e[1],12,-389564586),l=n(l,c,a,s,e[2],17,606105819),s=n(s,l,c,a,e[3],22,-1044525330),a=n(a,s,l,c,e[4],7,-176418897),c=n(c,a,s,l,e[5],12,1200080426),l=n(l,c,a,s,e[6],17,-1473231341),s=n(s,l,c,a,e[7],22,-45705983),a=n(a,s,l,c,e[8],7,1770035416),c=n(c,a,s,l,e[9],12,-1958414417),l=n(l,c,a,s,e[10],17,-42063),s=n(s,l,c,a,e[11],22,-1990404162),a=n(a,s,l,c,e[12],7,1804603682),c=n(c,a,s,l,e[13],12,-40341101),l=n(l,c,a,s,e[14],17,-1502002290),s=n(s,l,c,a,e[15],22,1236535329),a=i(a,s,l,c,e[1],5,-165796510),c=i(c,a,s,l,e[6],9,-1069501632),l=i(l,c,a,s,e[11],14,643717713),s=i(s,l,c,a,e[0],20,-373897302),a=i(a,s,l,c,e[5],5,-701558691),c=i(c,a,s,l,e[10],9,38016083),l=i(l,c,a,s,e[15],14,-660478335),s=i(s,l,c,a,e[4],20,-405537848),a=i(a,s,l,c,e[9],5,568446438),c=i(c,a,s,l,e[14],9,-1019803690),l=i(l,c,a,s,e[3],14,-187363961),s=i(s,l,c,a,e[8],20,1163531501),a=i(a,s,l,c,e[13],5,-1444681467),c=i(c,a,s,l,e[2],9,-51403784),l=i(l,c,a,s,e[7],14,1735328473),s=i(s,l,c,a,e[12],20,-1926607734),a=o(a,s,l,c,e[5],4,-378558),c=o(c,a,s,l,e[8],11,-2022574463),l=o(l,c,a,s,e[11],16,1839030562),s=o(s,l,c,a,e[14],23,-35309556),a=o(a,s,l,c,e[1],4,-1530992060),c=o(c,a,s,l,e[4],11,1272893353),l=o(l,c,a,s,e[7],16,-155497632),s=o(s,l,c,a,e[10],23,-1094730640),a=o(a,s,l,c,e[13],4,681279174),c=o(c,a,s,l,e[0],11,-358537222),l=o(l,c,a,s,e[3],16,-722521979),s=o(s,l,c,a,e[6],23,76029189),a=o(a,s,l,c,e[9],4,-640364487),c=o(c,a,s,l,e[12],11,-421815835),l=o(l,c,a,s,e[15],16,530742520),s=o(s,l,c,a,e[2],23,-995338651),a=r(a,s,l,c,e[0],6,-198630844),c=r(c,a,s,l,e[7],10,1126891415),l=r(l,c,a,s,e[14],15,-1416354905),s=r(s,l,c,a,e[5],21,-57434055),a=r(a,s,l,c,e[12],6,1700485571),c=r(c,a,s,l,e[3],10,-1894986606),l=r(l,c,a,s,e[10],15,-1051523),s=r(s,l,c,a,e[1],21,-2054922799),a=r(a,s,l,c,e[8],6,1873313359),c=r(c,a,s,l,e[15],10,-30611744),l=r(l,c,a,s,e[6],15,-1560198380),s=r(s,l,c,a,e[13],21,1309151649),a=r(a,s,l,c,e[4],6,-145523070),c=r(c,a,s,l,e[11],10,-1120210379),l=r(l,c,a,s,e[2],15,718787259),s=r(s,l,c,a,e[9],21,-343485551),t[0]=v(a,t[0]),t[1]=v(s,t[1]),t[2]=v(l,t[2]),t[3]=v(c,t[3])}function s(t){var e,n=[];for(e=0;e<64;e+=4)n[e>>2]=t.charCodeAt(e)+(t.charCodeAt(e+1)<<8)+(t.charCodeAt(e+2)<<16)+(t.charCodeAt(e+3)<<24);return n}function l(t){var e,n=[];for(e=0;e<64;e+=4)n[e>>2]=t[e]+(t[e+1]<<8)+(t[e+2]<<16)+(t[e+3]<<24);return n}function c(t){var e,n,i,o,r,l,c=t.length,u=[1732584193,-271733879,-1732584194,271733878];for(e=64;e<=c;e+=64)a(u,s(t.substring(e-64,e)));for(t=t.substring(e-64),n=t.length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],e=0;e>2]|=t.charCodeAt(e)<<(e%4<<3);if(i[e>>2]|=128<<(e%4<<3),e>55)for(a(u,i),e=0;e<16;e+=1)i[e]=0;return o=8*c,o=o.toString(16).match(/(.*?)(.{0,8})$/),r=parseInt(o[2],16),l=parseInt(o[1],16)||0,i[14]=r,i[15]=l,a(u,i),u}function u(t){var e,n,i,o,r,s,c=t.length,u=[1732584193,-271733879,-1732584194,271733878];for(e=64;e<=c;e+=64)a(u,l(t.subarray(e-64,e)));for(t=e-64>2]|=t[e]<<(e%4<<3);if(i[e>>2]|=128<<(e%4<<3),e>55)for(a(u,i),e=0;e<16;e+=1)i[e]=0;return o=8*c,o=o.toString(16).match(/(.*?)(.{0,8})$/),r=parseInt(o[2],16),s=parseInt(o[1],16)||0,i[14]=r,i[15]=s,a(u,i),u}function d(t){var e,n="";for(e=0;e<4;e+=1)n+=y[t>>8*e+4&15]+y[t>>8*e&15];return n}function h(t){var e;for(e=0;e>16)+(e>>16)+(n>>16);return i<<16|65535&n}),b.prototype.append=function(t){return this.appendBinary(f(t)),this},b.prototype.appendBinary=function(t){this._buff+=t,this._length+=t.length;var e,n=this._buff.length;for(e=64;e<=n;e+=64)a(this._hash,s(this._buff.substring(e-64,e)));return this._buff=this._buff.substring(e-64),this},b.prototype.end=function(t){var e,n,i=this._buff,o=i.length,r=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(e=0;e>2]|=i.charCodeAt(e)<<(e%4<<3);return this._finish(r,o),n=t?this._hash:h(this._hash),this.reset(),n},b.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},b.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash}},b.prototype.setState=function(t){return this._buff=t.buff,this._length=t.length,this._hash=t.hash,this},b.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},b.prototype._finish=function(t,e){var n,i,o,r=e;if(t[r>>2]|=128<<(r%4<<3),r>55)for(a(this._hash,t),r=0;r<16;r+=1)t[r]=0;n=8*this._length,n=n.toString(16).match(/(.*?)(.{0,8})$/),i=parseInt(n[2],16),o=parseInt(n[1],16)||0,t[14]=i,t[15]=o,a(this._hash,t)},b.hash=function(t,e){return b.hashBinary(f(t),e)},b.hashBinary=function(t,e){var n=c(t);return e?n:h(n)},b.ArrayBuffer=function(){this.reset()},b.ArrayBuffer.prototype.append=function(t){var e,n=m(this._buff.buffer,t,!0),i=n.length;for(this._length+=t.byteLength,e=64;e<=i;e+=64)a(this._hash,l(n.subarray(e-64,e)));return this._buff=e-64>2]|=i[e]<<(e%4<<3);return this._finish(r,o),n=t?this._hash:h(this._hash),this.reset(),n},b.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},b.ArrayBuffer.prototype.getState=function(){var t=b.prototype.getState.call(this);return t.buff=g(t.buff),t},b.ArrayBuffer.prototype.setState=function(t){return t.buff=p(t.buff,!0),b.prototype.setState.call(this,t)},b.ArrayBuffer.prototype.destroy=b.prototype.destroy,b.ArrayBuffer.prototype._finish=b.prototype._finish,b.ArrayBuffer.hash=function(t,e){var n=u(new Uint8Array(t));return e?n:h(n)},b}),function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Clipboard=t()}}(function(){return function t(e,n,i){function o(a,s){if(!n[a]){if(!e[a]){var l="function"==typeof require&&require;if(!s&&l)return l(a,!0);if(r)return r(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var u=n[a]={exports:{}};e[a][0].call(u.exports,function(t){var n=e[a][1][t];return o(n||t)},u,u.exports,t,e,n,i)}return n[a].exports}for(var r="function"==typeof require&&require,a=0;ai;i++)n[i].fn.apply(n[i].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),i=n[t],o=[];if(i&&e)for(var r=0,a=i.length;a>r;r++)i[r].fn!==e&&i[r].fn._!==e&&o.push(i[r]);return o.length?n[t]=o:delete n[t],this}},e.exports=i},{}],8:[function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}n.__esModule=!0;var r=function(){function t(t,e){for(var n=0;n -%n account at %w.', ['%u' => get_global('theme_mail')['user']['url'], '%n' => get_global('theme_mail')['user']['name'], '%w' => getSetting('website_name')]); ?> +%n account at %w.', ['%u' => get_global('theme_mail')['user']['public_url'], '%n' => get_global('theme_mail')['user']['name'], '%w' => getSetting('website_name')]); ?>

    activate your email.', get_global('theme_mail')['link']); ?>

    diff --git a/content/legacy/themes/Peafowl/mails/account-password-reset.php b/content/legacy/themes/Peafowl/mails/account-password-reset.php index 98205ea..4a8ca79 100644 --- a/content/legacy/themes/Peafowl/mails/account-password-reset.php +++ b/content/legacy/themes/Peafowl/mails/account-password-reset.php @@ -9,7 +9,7 @@ if (!defined('ACCESS') || !ACCESS) { } echo include_theme_file('mails/header'); -_se('We received a request to reset the password for your %n account.', ['%u' => get_global('theme_mail')['user']['url'], '%n' => get_global('theme_mail')['user']['name']]); ?> +_se('We received a request to reset the password for your %n account.', ['%u' => get_global('theme_mail')['user']['public_url'], '%n' => get_global('theme_mail')['user']['name']]); ?>

    follow this link.', get_global('theme_mail')['link']); ?>

    diff --git a/content/legacy/themes/Peafowl/mails/account-welcome.php b/content/legacy/themes/Peafowl/mails/account-welcome.php index 7da34a7..f56b149 100644 --- a/content/legacy/themes/Peafowl/mails/account-welcome.php +++ b/content/legacy/themes/Peafowl/mails/account-welcome.php @@ -12,7 +12,7 @@ _se('Hi %n, welcome to %w', ['%n' => get_global('theme_mail')['user']['name'], '



    -%n. Go ahead and customize it, its yours!.', ['%u' => get_global('theme_mail')['user']['url'], '%n' => get_global('theme_mail')['user']['username']]); ?> +%n. Go ahead and customize it, its yours!.', ['%u' => get_global('theme_mail')['user']['public_url'], '%n' => get_global('theme_mail')['user']['username']]); ?>

    ,
    diff --git a/content/legacy/themes/Peafowl/snippets/anywhere_upload.php b/content/legacy/themes/Peafowl/snippets/anywhere_upload.php index d2df831..3286214 100644 --- a/content/legacy/themes/Peafowl/snippets/anywhere_upload.php +++ b/content/legacy/themes/Peafowl/snippets/anywhere_upload.php @@ -109,8 +109,8 @@ if (Login::isLoggedUser()) { } echo strtr($uploaded_message, [ '%s' => '' . $iconUser . '', - '%c' => '' . $iconAlbum . _s('create a new album') . '', - '%m' => '' . $iconMove . _s('move it to an existing album') . '', + '%c' => '' . $iconAlbum . _s('create new %s', _s('album')) . '', + '%m' => '' . $iconMove . _s('move it to an existing %s', _s('album')) . '', ]); ?>
    @@ -120,7 +120,7 @@ if (Login::isLoggedUser()) { '' . $iconAlbum . _s('create a new album') . '', + '%c' => '' . $iconAlbum . _s('create new %s', _s('album')) . '', '%s' => '' . $iconSignup . _s('create an account') . '', '%l' => '' . $iconSignin . _s('sign in') . '' ]); @@ -172,7 +172,7 @@ if (Login::isLoggedUser()) {
    - + @@ -393,7 +393,7 @@ if (Login::isLoggedUser()) { ]; ?>
    - %tpl_list_item/item_share% %tpl_list_item/item_like% + %tpl_list_item/item_share%
    diff --git a/content/legacy/themes/Peafowl/tpl_list_item/item_album_admin_tools.php b/content/legacy/themes/Peafowl/tpl_list_item/item_album_admin_tools.php index 41abe32..f88d22a 100644 --- a/content/legacy/themes/Peafowl/tpl_list_item/item_album_admin_tools.php +++ b/content/legacy/themes/Peafowl/tpl_list_item/item_album_admin_tools.php @@ -1,8 +1,8 @@
    -
    - +
    +
    -
    - +
    +
    diff --git a/content/legacy/themes/Peafowl/tpl_list_item/item_album_edit_tools.php b/content/legacy/themes/Peafowl/tpl_list_item/item_album_edit_tools.php index 72c1f77..f28f364 100644 --- a/content/legacy/themes/Peafowl/tpl_list_item/item_album_edit_tools.php +++ b/content/legacy/themes/Peafowl/tpl_list_item/item_album_edit_tools.php @@ -3,18 +3,20 @@ use Chevereto\Legacy\G\Handler; ?>
    -
    - +
    +
    -
    -
    - +
    + +
    +
    +
    -
    - +
    +
    -
    - +
    +
    -
    - - +
    + +
    -
    - +
    +
    -
    - +
    +
    diff --git a/content/legacy/themes/Peafowl/tpl_list_item/item_image_edit_tools.php b/content/legacy/themes/Peafowl/tpl_list_item/item_image_edit_tools.php index 59e577f..9ba1877 100644 --- a/content/legacy/themes/Peafowl/tpl_list_item/item_image_edit_tools.php +++ b/content/legacy/themes/Peafowl/tpl_list_item/item_image_edit_tools.php @@ -3,33 +3,33 @@ use Chevereto\Legacy\G\Handler; ?>
    -
    - +
    +
    -
    - - +
    + +
    -
    - +
    +
    -
    - +
    +
    -
    - +
    +
    -
    - +
    +
    -
    - +
    +
    -
    \ No newline at end of file +
    diff --git a/content/legacy/themes/Peafowl/tpl_list_item/item_like.php b/content/legacy/themes/Peafowl/tpl_list_item/item_like.php index 1f5812f..94e1714 100644 --- a/content/legacy/themes/Peafowl/tpl_list_item/item_like.php +++ b/content/legacy/themes/Peafowl/tpl_list_item/item_like.php @@ -1,4 +1,4 @@ - diff --git a/content/legacy/themes/Peafowl/tpl_list_item/item_share.php b/content/legacy/themes/Peafowl/tpl_list_item/item_share.php index 14f4550..b967691 100644 --- a/content/legacy/themes/Peafowl/tpl_list_item/item_share.php +++ b/content/legacy/themes/Peafowl/tpl_list_item/item_share.php @@ -1,3 +1,3 @@ - diff --git a/content/legacy/themes/Peafowl/tpl_list_item/user/album.php b/content/legacy/themes/Peafowl/tpl_list_item/user/album.php index 4ac5517..32c4c46 100644 --- a/content/legacy/themes/Peafowl/tpl_list_item/user/album.php +++ b/content/legacy/themes/Peafowl/tpl_list_item/user/album.php @@ -15,7 +15,7 @@
    + %tpl_list_item/item_like% %tpl_list_item/item_share% - %tpl_list_item/item_like%
    diff --git a/content/legacy/themes/Peafowl/views/album.php b/content/legacy/themes/Peafowl/views/album.php index b495ca6..837505f 100644 --- a/content/legacy/themes/Peafowl/views/album.php +++ b/content/legacy/themes/Peafowl/views/album.php @@ -35,18 +35,21 @@ if (!defined('ACCESS') || !ACCESS) { +
    + +
    @@ -132,7 +135,7 @@ if (!defined('ACCESS') || !ACCESS) {
    -
    +
    diff --git a/content/legacy/themes/Peafowl/views/dashboard/settings/homepage.php b/content/legacy/themes/Peafowl/views/dashboard/settings/homepage.php index 7d8d965..eb4f2d8 100644 --- a/content/legacy/themes/Peafowl/views/dashboard/settings/homepage.php +++ b/content/legacy/themes/Peafowl/views/dashboard/settings/homepage.php @@ -41,7 +41,7 @@ echo read_the_docs_settings('homepage', _s('Homepage')); ?> 1) { ?> diff --git a/content/legacy/themes/Peafowl/views/dashboard/settings/semantics.php b/content/legacy/themes/Peafowl/views/dashboard/settings/semantics.php new file mode 100644 index 0000000..dd9f5f0 --- /dev/null +++ b/content/legacy/themes/Peafowl/views/dashboard/settings/semantics.php @@ -0,0 +1,35 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Legacy\Classes\Settings; +use Chevereto\Legacy\G\Handler; + +if (!defined('ACCESS') || !ACCESS) { + die('This file cannot be directly accessed.'); +} +echo read_the_docs_settings('semantics', _s('Semantics')); ?> +
    + $message) { + $value = Settings::get($key); + $errors = Handler::var('input_errors')[$key] ?? ''; + $pattern = '^[a-Z0-9]+(?:-[a-Z0-9]+)*$'; + echo << + +
    + +
    +
    {$errors}
    +
    + STRING; + } +} ?> diff --git a/content/legacy/themes/Peafowl/views/dashboard/top-sub-bar/images-albums-users.php b/content/legacy/themes/Peafowl/views/dashboard/top-sub-bar/images-albums-users.php index 397ddf6..9fba3b4 100644 --- a/content/legacy/themes/Peafowl/views/dashboard/top-sub-bar/images-albums-users.php +++ b/content/legacy/themes/Peafowl/views/dashboard/top-sub-bar/images-albums-users.php @@ -23,11 +23,11 @@ Handler::setVar('tabs', Handler::var('sub_tabs')); ?>
    - +