diff --git a/.gitignore b/.gitignore index c7d23a9df8..33974acbe2 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,5 @@ .DS_Store .php_cs.cache debug/ -app/sdks \ No newline at end of file +app/sdks +dev/yasd_init.php diff --git a/CHANGES.md b/CHANGES.md index c78251338f..ca647e7489 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,9 +1,29 @@ -# NOT PUBLISHED YET +# Version 0.9.2 + +## Bugs + +- Fixed JWT session validation (#1408) +- Fixed passing valid JWT session to Cloud Functions (#1421) +- Fixed race condition when uploading and extracting bigger Cloud Functions (#1419) + +# Version 0.9.1 + +## Bugs + +- Fixed PDO Connection timeout (#1385) +- Removed unnecessary `app` resource and replace with `utopia` (#1384) +- Fixed missing quote in Functions Worker logs (#1375) + +# Version 0.9.0 ## Features - Added support for Android -- Added a new Cloud Functions runtime for Java +- Added a new Cloud Functions runtime for + - Java 16.0 + - Java 11.0 + - Node 16.0 + - Dart 2.13 - Added a new gravity option when croping storage images using the file preview endpoint (#1260) - Upgraded GEOIP DB file to Jun 2021 release (#1256) - Added file created date to file info on the console (#1183) @@ -22,8 +42,10 @@ - Added new environment variables to the `telegraf` service: (#1202) - _APP_INFLUXDB_HOST - _APP_INFLUXDB_PORT +- Added `expires` parameter to Account Recovery and Email Validation URL's - Added new endpoint to get a session based on it's ID (#1294) - Added added a new version param to the migration script (#1342) +- Improved Queue Interval for all workers from 5 seconds to 1 (#1308 Thanks to @Meldiron) ## Breaking Changes (Read before upgrading!) - Renamed `env` param on `/v1/functions` to `runtime` (#1314) @@ -42,6 +64,7 @@ - Fixed bug where we didn't ignore the email case, converted all emails to lowercase internally (#1243) - Fixed a console bug where you can't click a user with no name, added a placehoder for anonyomous users (#1220) - Fixed unique keys not being updated when changing a user's email address (#1301) +- Fixed a bug where decimal integers where wrongly used with database filters (#1349) ## Security diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 69d26d0aa4..552ff05612 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -123,6 +123,10 @@ Learn more at our [Technology Stack](## Technology Stack) section. Appwrite's current structure is a combination of both [Monolithic](https://en.wikipedia.org/wiki/Monolithic_application) and [Microservice](https://en.wikipedia.org/wiki/Microservices) architectures, but our final goal, as we grow, is to be using only microservices. +--- +![Appwrite](docs/specs/overview.drawio.svg) +--- + ### File Structure ```bash @@ -174,10 +178,6 @@ Appwrite's current structure is a combination of both [Monolithic](https://en.wi └── unit ``` ---- -![Appwrite](docs/specs/overview.drawio.svg) ---- - ### The Monolithic Part Appwrite's main API container is designed as a monolithic app. This is a decision we made to allow us to develop the project faster while still being a very small team. @@ -282,6 +282,30 @@ docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v6,linux/arm/v7 The Runtimes for all supported cloud functions (multicore builds) can be found at the [appwrite/php-runtimes](https://github.com/appwrite/php-runtimes) repository. +## Debug + +Appwrite uses [yasd](https://github.com/swoole/yasd) debugger, which can be made available during build of Appwrite. You can connect to the debugger using VS Code [PHP Debug](https://marketplace.visualstudio.com/items?itemName=felixfbecker.php-debug) extension or if you are in PHP Storm you don't need any plugin. Below are the settings required for remote debugger connection. + +First, you need to create an init file. Duplicate **dev/yasd_init.php.stub** file and name it **dev/yasd_init.php** and there change the IP address to your development machine's IP. Without the proper IP address debugger wont connect. And you also need to set **DEBUG** build arg in **appwrite** service in **docker-compose.yml** file. + +### VS Code Launch Configuration + +```json +{ + "name": "Listen for Xdebug", + "type": "php", + "request": "launch", + "port": 9005, + "pathMappings": { + "/usr/src/code": "${workspaceRoot}" + }, +} +``` + +### PHPStorm Setup + +In settings, go to **Languages & Frameworks** > **PHP** > **Debug**, there under **Xdebug** set the debug port to **9005** and enable **can accept external connections** checkbox. + ## Tests To run all tests manually, use the Appwrite Docker CLI from your terminal: diff --git a/Dockerfile b/Dockerfile index c432f8de08..f3a87058af 100755 --- a/Dockerfile +++ b/Dockerfile @@ -14,6 +14,9 @@ RUN composer update --ignore-platform-reqs --optimize-autoloader \ FROM php:8.0-cli-alpine as step1 +ARG DEBUG=false +ENV DEBUG=$DEBUG + ENV PHP_REDIS_VERSION=5.3.4 \ PHP_MONGODB_VERSION=1.9.1 \ PHP_SWOOLE_VERSION=v4.6.7 \ @@ -84,11 +87,25 @@ RUN \ make && make install && \ cd ../.. +## Swoole Debugger setup +RUN if [ "$DEBUG" == "true" ]; then \ + cd /tmp && \ + apk add boost-dev && \ + git clone --depth 1 https://github.com/swoole/yasd && \ + cd yasd && \ + phpize && \ + ./configure && \ + make && make install && \ + cd ..;\ + fi + FROM php:8.0-cli-alpine as final LABEL maintainer="team@appwrite.io" ARG VERSION=dev +ARG DEBUG=false +ENV DEBUG=$DEBUG ENV _APP_SERVER=swoole \ _APP_ENV=production \ @@ -169,10 +186,15 @@ RUN \ && apk del .deps \ && rm -rf /var/cache/apk/* +RUN \ + if [ "$DEBUG" == "true" ]; then \ + apk add boost boost-dev; \ + fi + WORKDIR /usr/src/code COPY --from=step0 /usr/local/src/vendor /usr/src/code/vendor -COPY --from=step1 /usr/local/lib/php/extensions/no-debug-non-zts-20200930/swoole.so /usr/local/lib/php/extensions/no-debug-non-zts-20200930/ +COPY --from=step1 /usr/local/lib/php/extensions/no-debug-non-zts-20200930/swoole.so /usr/local/lib/php/extensions/no-debug-non-zts-20200930/yasd.so* /usr/local/lib/php/extensions/no-debug-non-zts-20200930/ COPY --from=step1 /usr/local/lib/php/extensions/no-debug-non-zts-20200930/redis.so /usr/local/lib/php/extensions/no-debug-non-zts-20200930/ COPY --from=step1 /usr/local/lib/php/extensions/no-debug-non-zts-20200930/mongodb.so /usr/local/lib/php/extensions/no-debug-non-zts-20200930/ COPY --from=step1 /usr/local/lib/php/extensions/no-debug-non-zts-20200930/imagick.so /usr/local/lib/php/extensions/no-debug-non-zts-20200930/ @@ -229,7 +251,9 @@ RUN echo extension=redis.so >> /usr/local/etc/php/conf.d/redis.ini RUN echo extension=imagick.so >> /usr/local/etc/php/conf.d/imagick.ini RUN echo extension=yaml.so >> /usr/local/etc/php/conf.d/yaml.ini RUN echo extension=maxminddb.so >> /usr/local/etc/php/conf.d/maxminddb.ini +RUN if [ "$DEBUG" == "true" ]; then printf "zend_extension=yasd \nyasd.debug_mode=remote \nyasd.init_file=/usr/local/dev/yasd_init.php \nyasd.remote_port=9005 \nyasd.log_level=-1" >> /usr/local/etc/php/conf.d/yasd.ini; fi +RUN if [ "$DEBUG" == "true" ]; then echo "opcache.enable=0" >> /usr/local/etc/php/conf.d/appwrite.ini; fi RUN echo "opcache.preload_user=www-data" >> /usr/local/etc/php/conf.d/appwrite.ini RUN echo "opcache.preload=/usr/src/code/app/preload.php" >> /usr/local/etc/php/conf.d/appwrite.ini RUN echo "opcache.enable_cli=1" >> /usr/local/etc/php/conf.d/appwrite.ini diff --git a/README.md b/README.md index 0596bee316..895da87d6c 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@

- Appwrite Logo + Appwrite Logo

A complete backend solution for your [Flutter / Vue / Angular / React / iOS / Android / *ANY OTHER*] app @@ -15,7 +15,7 @@ [![Build Status](https://img.shields.io/travis/com/appwrite/appwrite?style=flat-square)](https://travis-ci.com/appwrite/appwrite) [![Twitter Account](https://img.shields.io/twitter/follow/appwrite_io?color=00acee&label=twitter&style=flat-square)](https://twitter.com/appwrite_io) -[**Appwrite 0.8 has been released! Learn what's new!**](https://dev.to/appwrite/announcing-appwrite-0-8-an-open-source-self-hosted-baas-kda) +[**Appwrite 0.9 has been released! Learn what's new!**](https://dev.to/appwrite/announcing-appwrite-0-9-the-open-source-firebase-alternative-53ho) Appwrite is an end-to-end backend server for Web, Mobile, Native, or Backend apps packaged as a set of Docker microservices. Appwrite abstracts the complexity and repetitiveness required to build a modern backend API from scratch and allows you to build secure apps faster. @@ -56,7 +56,7 @@ docker run -it --rm \ --volume /var/run/docker.sock:/var/run/docker.sock \ --volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \ --entrypoint="install" \ - appwrite/appwrite:0.8.0 + appwrite/appwrite:0.9.1 ``` ### Windows @@ -68,7 +68,7 @@ docker run -it --rm ^ --volume //var/run/docker.sock:/var/run/docker.sock ^ --volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^ --entrypoint="install" ^ - appwrite/appwrite:0.8.0 + appwrite/appwrite:0.9.1 ``` #### PowerShell @@ -78,7 +78,7 @@ docker run -it --rm , --volume /var/run/docker.sock:/var/run/docker.sock , --volume ${pwd}/appwrite:/usr/src/code/appwrite:rw , --entrypoint="install" , - appwrite/appwrite:0.8.0 + appwrite/appwrite:0.9.1 ``` Once the Docker installation completes, go to http://localhost to access the Appwrite console from your browser. Please note that on non-linux native hosts, the server might take a few minutes to start after installation completes. @@ -121,14 +121,16 @@ Below is a list of currently supported platforms and languages. If you wish to h #### Client * ✅   [Web](https://github.com/appwrite/sdk-for-web) (Maintained by the Appwrite Team) * ✅   [Flutter](https://github.com/appwrite/sdk-for-flutter) (Maintained by the Appwrite Team) +* ✅   [Android](https://github.com/appwrite/sdk-for-android) (Maintained by the Appwrite Team) #### Server * ✅   [NodeJS](https://github.com/appwrite/sdk-for-node) (Maintained by the Appwrite Team) * ✅   [PHP](https://github.com/appwrite/sdk-for-php) (Maintained by the Appwrite Team) * ✅   [Dart](https://github.com/appwrite/sdk-for-dart) **Beta** (Maintained by the Appwrite Team) * ✅   [Deno](https://github.com/appwrite/sdk-for-deno) - **Beta** (Maintained by the Appwrite Team) -* ✅   [Ruby](https://github.com/appwrite/sdk-for-ruby) - **Beta** (Maintained by the Appwrite Team) -* ✅   [Python](https://github.com/appwrite/sdk-for-python) - **Beta** (Maintained by the Appwrite Team) +* ✅   [Ruby](https://github.com/appwrite/sdk-for-ruby) (Maintained by the Appwrite Team) +* ✅   [Python](https://github.com/appwrite/sdk-for-python) (Maintained by the Appwrite Team) +* ✅   [Kotlin](https://github.com/appwrite/sdk-for-kotlin) - **Beta** (Maintained by the Appwrite Team) * ✅   [.NET](https://github.com/appwrite/sdk-for-dotnet) - **Experimental** (Maintained by the Appwrite Team) Looking for more SDKs? - Help us by contributing a pull request to our [SDK Generator](https://github.com/appwrite/sdk-generator)! diff --git a/app/config/collections.php b/app/config/collections.php index 6d3be7b2a8..67a40bbc1a 100644 --- a/app/config/collections.php +++ b/app/config/collections.php @@ -779,6 +779,14 @@ $collections = [ 'default' => 0, 'required' => false, ], + [ + '$collection' => Database::SYSTEM_COLLECTION_RULES, + 'label' => 'Version', + 'key' => 'version', + 'type' => Database::SYSTEM_VAR_TYPE_TEXT, + 'default' => '', + 'required' => true, + ], [ '$collection' => Database::SYSTEM_COLLECTION_RULES, 'label' => 'Webhooks', diff --git a/app/config/collections2.php b/app/config/collections2.php index 0af36e8497..018066cc23 100644 --- a/app/config/collections2.php +++ b/app/config/collections2.php @@ -12,6 +12,17 @@ $collections = [ '$id' => 'projects', 'name' => 'Projects', 'attributes' => [ + [ + '$id' => 'teamId', + 'type' => Database::VAR_STRING, + 'format' => '', + 'size' => Database::LENGTH_KEY, + 'signed' => true, + 'required' => false, + 'default' => null, + 'array' => false, + 'filters' => [], + ], [ '$id' => 'name', 'type' => Database::VAR_STRING, @@ -34,17 +45,6 @@ $collections = [ 'array' => false, 'filters' => [], ], - [ - '$id' => 'teamId', - 'type' => Database::VAR_STRING, - 'format' => '', - 'size' => Database::LENGTH_KEY, - 'signed' => true, - 'required' => false, - 'default' => null, - 'array' => false, - 'filters' => [], - ], [ '$id' => 'logo', 'type' => Database::VAR_STRING, @@ -67,6 +67,17 @@ $collections = [ 'array' => false, 'filters' => [], ], + [ + '$id' => 'version', + 'type' => Database::VAR_STRING, + 'format' => '', + 'size' => 16, + 'signed' => true, + 'required' => false, + 'default' => null, + 'array' => false, + 'filters' => [], + ], [ '$id' => 'usersAuthLimit', 'type' => Database::VAR_INTEGER, @@ -360,6 +371,254 @@ $collections = [ ], ], + 'sessions' => [ + '$collection' => Database::COLLECTIONS, + '$id' => 'sessions', + 'name' => 'Sessions', + 'attributes' => [ + [ + '$id' => 'userId', + 'type' => Database::VAR_STRING, + 'format' => '', + 'size' => Database::LENGTH_KEY, + 'signed' => true, + 'required' => false, + 'default' => null, + 'array' => false, + 'filters' => [], + ], + [ + '$id' => 'provider', + 'type' => Database::VAR_STRING, + 'format' => '', + 'size' => 128, + 'signed' => true, + 'required' => false, + 'default' => null, + 'array' => false, + 'filters' => [], + ], + [ + '$id' => 'providerUid', + 'type' => Database::VAR_STRING, + 'format' => '', + 'size' => 2048, + 'signed' => true, + 'required' => false, + 'default' => null, + 'array' => false, + 'filters' => [], + ], + [ + '$id' => 'providerToken', + 'type' => Database::VAR_STRING, + 'format' => '', + 'size' => 16384, + 'signed' => true, + 'required' => false, + 'default' => null, + 'array' => false, + 'filters' => [], + ], + [ + '$id' => 'secret', + 'type' => Database::VAR_STRING, + 'format' => '', + 'size' => 64, // https://www.tutorialspoint.com/how-long-is-the-sha256-hash-in-mysql + 'signed' => true, + 'required' => false, + 'default' => null, + 'array' => false, + 'filters' => [], + ], + [ + '$id' => 'expire', + 'type' => Database::VAR_INTEGER, + 'format' => '', + 'size' => 0, + 'signed' => true, + 'required' => false, + 'default' => null, + 'array' => false, + 'filters' => [], + ], + [ + '$id' => 'userAgent', + 'type' => Database::VAR_STRING, + 'format' => '', + 'size' => 16384, + 'signed' => true, + 'required' => false, + 'default' => null, + 'array' => false, + 'filters' => [], + ], + [ + '$id' => 'ip', + 'type' => Database::VAR_STRING, + 'format' => '', + 'size' => 45, // https://stackoverflow.com/a/166157/2299554 + 'signed' => true, + 'required' => false, + 'default' => null, + 'array' => false, + 'filters' => [], + ], + [ + '$id' => 'countryCode', + 'type' => Database::VAR_STRING, + 'format' => '', + 'size' => 2, + 'signed' => true, + 'required' => false, + 'default' => null, + 'array' => false, + 'filters' => [] + ], + [ + '$id' => 'osCode', + 'type' => Database::VAR_STRING, + 'format' => '', + 'size' => 256, + 'signed' => true, + 'required' => false, + 'default' => null, + 'array' => false, + 'filters' => [] + ], + [ + '$id' => 'osName', + 'type' => Database::VAR_STRING, + 'format' => '', + 'size' => 256, + 'signed' => true, + 'required' => false, + 'default' => null, + 'array' => false, + 'filters' => [] + ], + [ + '$id' => 'osVersion', + 'type' => Database::VAR_STRING, + 'format' => '', + 'size' => 256, + 'signed' => true, + 'required' => false, + 'default' => null, + 'array' => false, + 'filters' => [] + ], + [ + '$id' => 'clientType', + 'type' => Database::VAR_STRING, + 'format' => '', + 'size' => 256, + 'signed' => true, + 'required' => false, + 'default' => null, + 'array' => false, + 'filters' => [] + ], + [ + '$id' => 'clientCode', + 'type' => Database::VAR_STRING, + 'format' => '', + 'size' => 256, + 'signed' => true, + 'required' => false, + 'default' => null, + 'array' => false, + 'filters' => [] + ], + [ + '$id' => 'clientName', + 'type' => Database::VAR_STRING, + 'format' => '', + 'size' => 256, + 'signed' => true, + 'required' => false, + 'default' => null, + 'array' => false, + 'filters' => [] + ], + [ + '$id' => 'clientVersion', + 'type' => Database::VAR_STRING, + 'format' => '', + 'size' => 256, + 'signed' => true, + 'required' => false, + 'default' => null, + 'array' => false, + 'filters' => [] + ], + [ + '$id' => 'clientEngine', + 'type' => Database::VAR_STRING, + 'format' => '', + 'size' => 256, + 'signed' => true, + 'required' => false, + 'default' => null, + 'array' => false, + 'filters' => [] + ], + [ + '$id' => 'clientEngineVersion', + 'type' => Database::VAR_STRING, + 'format' => '', + 'size' => 256, + 'signed' => true, + 'required' => false, + 'default' => null, + 'array' => false, + 'filters' => [] + ], + [ + '$id' => 'deviceName', + 'type' => Database::VAR_STRING, + 'format' => '', + 'size' => 256, + 'signed' => true, + 'required' => false, + 'default' => null, + 'array' => false, + 'filters' => [] + ], + [ + '$id' => 'deviceBrand', + 'type' => Database::VAR_STRING, + 'format' => '', + 'size' => 256, + 'signed' => true, + 'required' => false, + 'default' => null, + 'array' => false, + 'filters' => [] + ], + [ + '$id' => 'deviceModel', + 'type' => Database::VAR_STRING, + 'format' => '', + 'size' => 256, + 'signed' => true, + 'required' => false, + 'default' => null, + 'array' => false, + 'filters' => [] + ], + ], + 'indexes' => [ + // [ + // '$id' => '_key_provider_providerUid', + // 'type' => Database::INDEX_KEY, + // 'attributes' => ['provider', 'providerUid'], + // 'lengths' => [100, 100], + // 'orders' => [Database::ORDER_ASC, Database::ORDER_ASC], + // ] + ], + ], + 'teams' => [ '$collection' => Database::COLLECTIONS, '$id' => 'teams', @@ -1047,6 +1306,7 @@ $collections = [ ] ], ], + 'certificates' => [ '$collection' => Database::COLLECTIONS, '$id' => 'certificates', diff --git a/app/config/platforms.php b/app/config/platforms.php index 2eebd33be6..b12bf41cd2 100644 --- a/app/config/platforms.php +++ b/app/config/platforms.php @@ -113,7 +113,7 @@ return [ 'name' => 'Android', 'version' => '0.0.1', 'url' => 'https://github.com/appwrite/sdk-for-android', - 'package' => 'https://repo1.maven.org/maven2/io/appwrite/sdk-for-android/', + 'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-android', 'enabled' => true, 'beta' => true, 'dev' => false, @@ -124,6 +124,10 @@ return [ 'gitUrl' => 'git@github.com:appwrite/sdk-for-android.git', 'gitRepoName' => 'sdk-for-android', 'gitUserName' => 'appwrite', + 'docDirectories' => [ + 'Kotlin' => 'kotlin', + 'Java' => 'java', + ], ], // [ // 'key' => 'java', @@ -351,7 +355,7 @@ return [ 'name' => 'Kotlin', 'version' => '0.0.1', 'url' => 'https://github.com/appwrite/sdk-for-kotlin', - 'package' => 'https://repo1.maven.org/maven2/io/appwrite/sdk-for-kotlin/', + 'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-kotlin', 'enabled' => true, 'beta' => true, 'dev' => false, @@ -362,6 +366,10 @@ return [ 'gitUrl' => 'git@github.com:appwrite/sdk-for-kotlin.git', 'gitRepoName' => 'sdk-for-kotlin', 'gitUserName' => 'appwrite', + 'docDirectories' => [ + 'Kotlin' => 'kotlin', + 'Java' => 'java', + ], ], ], ], diff --git a/app/config/variables.php b/app/config/variables.php index e5372f54d7..df7346cd59 100644 --- a/app/config/variables.php +++ b/app/config/variables.php @@ -448,7 +448,7 @@ return [ 'name' => '_APP_FUNCTIONS_RUNTIMES', 'description' => "This option allows you to limit the available environments for cloud functions. This option is very useful for low-cost servers to safe disk space.\n\nTo enable/activate this option, pass a list of allowed environments separated by a comma.\n\nCurrently, supported environments are: " . \implode(', ', \array_keys(Config::getParam('runtimes'))), 'introduction' => '0.8.0', - 'default' => 'node-15.5,deno-1.8,php-8.0,python-3.9,ruby-3.0,dotnet-5.0', + 'default' => 'node-16.0,php-8.0,python-3.9,ruby-3.0,java-16.0', 'required' => false, 'question' => '', 'filter' => '' @@ -457,7 +457,7 @@ return [ 'name' => '_APP_FUNCTIONS_ENVS', 'description' => 'Deprectated with 0.8.0, use \'_APP_FUNCTIONS_RUNTIMES\' instead!', 'introduction' => '0.7.0', - 'default' => 'node-14.5,deno-1.8,php-7.4,python-3.9,ruby-3.0,dotnet-5.0', + 'default' => 'node-16.0,php-7.4,python-3.9,ruby-3.0,java-16.0', 'required' => false, 'question' => '', 'filter' => '' diff --git a/app/controllers/api/account.php b/app/controllers/api/account.php index 2c41c159fd..044664d655 100644 --- a/app/controllers/api/account.php +++ b/app/controllers/api/account.php @@ -192,8 +192,12 @@ App::post('/v1/account/sessions') Authorization::setRole('user:'.$profile->getId()); - $profile->setAttribute('sessions', $session, Document::SET_TYPE_APPEND); + $session = $dbForInternal->createDocument('sessions', $session + ->setAttribute('$read', ['user:'.$profile->getId()]) + ->setAttribute('$write', ['user:'.$profile->getId()]) + ); + $profile->setAttribute('sessions', $session, Document::SET_TYPE_APPEND); $profile = $dbForInternal->updateDocument('users', $profile->getId(), $profile); $audits @@ -428,35 +432,33 @@ App::get('/v1/account/sessions/oauth2/:provider/redirect') $current = Auth::sessionVerify($sessions, Auth::$secret); if($current) { // Delete current session of new one. - foreach ($sessions as $key => $session) { + foreach ($sessions as $key => $session) { /** @var Document $session */ if ($current === $session['$id']) { unset($sessions[$key]); + + $dbForInternal->deleteDocument('sessions', $session->getId()); $dbForInternal->updateDocument('users', $user->getId(), $user->setAttribute('sessions', $sessions)); } } } - $user = (empty($user->getId())) ? $dbForInternal->getCollectionFirst([ // Get user by provider id - 'limit' => 1, - 'filters' => [ - '$collection='.Database::SYSTEM_COLLECTION_USERS, - 'sessions.provider='.$provider, - 'sessions.providerUid='.$oauth2ID - ], - ]) : $user; + $user = ($user->isEmpty()) ? $dbForInternal->findFirst('sessions', [ // Get user by provider id + new Query('provider', QUERY::TYPE_EQUAL, [$provider]), + new Query('providerUid', QUERY::TYPE_EQUAL, [$oauth2ID]), + ], 1) : $user; - if (empty($user)) { // No user logged in or with OAuth2 provider ID, create new one or connect with account with same email + if ($user === false || $user->isEmpty()) { // No user logged in or with OAuth2 provider ID, create new one or connect with account with same email $name = $oauth2->getUserName($accessToken); $email = $oauth2->getUserEmail($accessToken); $user = $dbForInternal->findFirst('users', [new Query('email', Query::TYPE_EQUAL, [$email])], 1); // Get user by email address - if (!$user || empty($user->getId())) { // Last option -> create the user, generate random password + if ($user === false || $user->isEmpty()) { // Last option -> create the user, generate random password $limit = $project->getAttribute('usersAuthLimit', 0); if ($limit !== 0) { $sum = $dbForInternal->count('users', [], APP_LIMIT_COUNT); - + if($sum >= $limit) { throw new Exception('Project registration is restricted. Contact your administrator for more information.', 501); } @@ -530,6 +532,11 @@ App::get('/v1/account/sessions/oauth2/:provider/redirect') Authorization::setRole('user:'.$user->getId()); + $session = $dbForInternal->createDocument('sessions', $session + ->setAttribute('$read', ['user:'.$user->getId()]) + ->setAttribute('$write', ['user:'.$user->getId()]) + ); + $user = $dbForInternal->updateDocument('users', $user->getId(), $user); $audits @@ -668,6 +675,11 @@ App::post('/v1/account/sessions/anonymous') Authorization::setRole('user:'.$user->getId()); + $session = $dbForInternal->createDocument('sessions', $session + ->setAttribute('$read', ['user:'.$user->getId()]) + ->setAttribute('$write', ['user:'.$user->getId()]) + ); + $user = $dbForInternal->updateDocument('users', $user->getId(), $user->setAttribute('sessions', $session, Document::SET_TYPE_APPEND)); @@ -814,9 +826,7 @@ App::get('/v1/account/sessions') $countries = $locale->getText('countries'); $current = Auth::sessionVerify($sessions, Auth::$secret); - foreach ($sessions as $key => $session) { - /** @var Document $session */ - + foreach ($sessions as $key => $session) { /** @var Document $session */ $countryName = (isset($countries[strtoupper($session->getAttribute('countryCode'))])) ? $countries[strtoupper($session->getAttribute('countryCode'))] : $locale->getText('locale.country.unknown'); @@ -858,6 +868,7 @@ App::get('/v1/account/logs') /** @var Utopia\Database\Database $dbForInternal */ $audit = new Audit($dbForInternal); + $countries = $locale->getText('countries'); $logs = $audit->getLogsByUserAndEvents($user->getId(), [ @@ -1213,12 +1224,12 @@ App::delete('/v1/account/sessions/:sessionId') $sessions = $user->getAttribute('sessions', []); - foreach ($sessions as $key => $session) { - /** @var Document $session */ - + foreach ($sessions as $key => $session) { /** @var Document $session */ if ($sessionId == $session->getId()) { unset($sessions[$key]); + $dbForInternal->deleteDocument('sessions', $session->getId()); + $audits ->setParam('userId', $user->getId()) ->setParam('event', 'account.sessions.delete') @@ -1289,8 +1300,8 @@ App::delete('/v1/account/sessions') $protocol = $request->getProtocol(); $sessions = $user->getAttribute('sessions', []); - foreach ($sessions as $session) { - /** @var Document $session */ + foreach ($sessions as $session) { /** @var Document $session */ + $dbForInternal->deleteDocument('sessions', $session->getId()); $audits ->setParam('userId', $user->getId()) @@ -1371,20 +1382,22 @@ App::post('/v1/account/recovery') $profile = $dbForInternal->findFirst('users', [new Query('email', Query::TYPE_EQUAL, [$email])], 1); // Get user by email address if (!$profile) { - throw new Exception('User not found', 404); // TODO maybe hide this + throw new Exception('User not found', 404); } if (false === $profile->getAttribute('status')) { // Account is blocked throw new Exception('Invalid credentials. User is blocked', 401); } + $expire = \time() + Auth::TOKEN_EXPIRATION_RECOVERY; + $secret = Auth::tokenGenerator(); $recovery = new Document([ '$id' => $dbForInternal->getId(), 'userId' => $profile->getId(), 'type' => Auth::TOKEN_TYPE_RECOVERY, 'secret' => Auth::hash($secret), // One way hash encryption to protect DB leak - 'expire' => \time() + Auth::TOKEN_EXPIRATION_RECOVERY, + 'expire' => $expire, 'userAgent' => $request->getUserAgent('UNKNOWN'), 'ip' => $request->getIP(), ]); @@ -1396,7 +1409,7 @@ App::post('/v1/account/recovery') $profile = $dbForInternal->updateDocument('users', $profile->getId(), $profile); $url = Template::parseURL($url); - $url['query'] = Template::mergeQuery(((isset($url['query'])) ? $url['query'] : ''), ['userId' => $profile->getId(), 'secret' => $secret]); + $url['query'] = Template::mergeQuery(((isset($url['query'])) ? $url['query'] : ''), ['userId' => $profile->getId(), 'secret' => $secret, 'expire' => $expire]); $url = Template::unParseURL($url); $body = new Template(__DIR__.'/../../config/locale/templates/email-base.tpl'); @@ -1482,7 +1495,7 @@ App::put('/v1/account/recovery') $profile = $dbForInternal->getDocument('users', $userId); if ($profile->isEmpty()) { - throw new Exception('User not found', 404); // TODO maybe hide this + throw new Exception('User not found', 404); } $tokens = $profile->getAttribute('tokens', []); @@ -1562,13 +1575,15 @@ App::post('/v1/account/verification') $isAppUser = Auth::isAppUser(Authorization::$roles); $verificationSecret = Auth::tokenGenerator(); + + $expire = \time() + Auth::TOKEN_EXPIRATION_CONFIRM; $verification = new Document([ '$id' => $dbForInternal->getId(), 'userId' => $user->getId(), 'type' => Auth::TOKEN_TYPE_VERIFICATION, 'secret' => Auth::hash($verificationSecret), // One way hash encryption to protect DB leak - 'expire' => \time() + Auth::TOKEN_EXPIRATION_CONFIRM, + 'expire' => $expire, 'userAgent' => $request->getUserAgent('UNKNOWN'), 'ip' => $request->getIP(), ]); @@ -1578,9 +1593,9 @@ App::post('/v1/account/verification') $user->setAttribute('tokens', $verification, Document::SET_TYPE_APPEND); $user = $dbForInternal->updateDocument('users', $user->getId(), $user); - + $url = Template::parseURL($url); - $url['query'] = Template::mergeQuery(((isset($url['query'])) ? $url['query'] : ''), ['userId' => $user->getId(), 'secret' => $verificationSecret]); + $url['query'] = Template::mergeQuery(((isset($url['query'])) ? $url['query'] : ''), ['userId' => $user->getId(), 'secret' => $verificationSecret, 'expire' => $expire]); $url = Template::unParseURL($url); $body = new Template(__DIR__.'/../../config/locale/templates/email-base.tpl'); @@ -1662,7 +1677,7 @@ App::put('/v1/account/verification') $profile = $dbForInternal->getDocument('users', $userId); if ($profile->isEmpty()) { - throw new Exception('User not found', 404); // TODO maybe hide this + throw new Exception('User not found', 404); } $tokens = $profile->getAttribute('tokens', []); diff --git a/app/controllers/api/database.php b/app/controllers/api/database.php index 7fe985b502..92a4f802f7 100644 --- a/app/controllers/api/database.php +++ b/app/controllers/api/database.php @@ -739,7 +739,8 @@ App::get('/v1/database/collections/:collectionId/documents') ->groups(['api', 'database']) ->label('scope', 'documents.read') ->label('sdk.namespace', 'database') - ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.method', 'listDocuments') + ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) + ->label('sdk.method', 'listDocuments') ->label('sdk.description', '/docs/references/database/list-documents.md') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) diff --git a/app/controllers/api/functions.php b/app/controllers/api/functions.php index 01bfd8c69a..c0ea527765 100644 --- a/app/controllers/api/functions.php +++ b/app/controllers/api/functions.php @@ -143,7 +143,6 @@ App::get('/v1/functions/:functionId/usage') ->action(function ($functionId, $range, $response, $project, $dbForInternal, $register) { /** @var Appwrite\Utopia\Response $response */ /** @var Appwrite\Database\Document $project */ - /** @var Utopia\Database\Database $consoleDB */ /** @var Utopia\Database\Database $dbForInternal */ /** @var Utopia\Registry\Registry $register */ @@ -697,20 +696,20 @@ App::post('/v1/functions/:functionId/executions') $jwt = ''; // initialize if (!$user->isEmpty()) { // If userId exists, generate a JWT for function - $tokens = $user->getAttribute('tokens', []); - $session = new Document(); + $sessions = $user->getAttribute('sessions', []); + $current = new Document(); - foreach ($tokens as $token) { /** @var Appwrite\Database\Document $token */ - if ($token->getAttribute('secret') == Auth::hash(Auth::$secret)) { // If current session delete the cookies too - $session = $token; + foreach ($sessions as $session) { /** @var Appwrite\Database\Document $session */ + if ($session->getAttribute('secret') == Auth::hash(Auth::$secret)) { // If current session delete the cookies too + $current = $session; } } - if(!$session->isEmpty()) { + if(!$current->isEmpty()) { $jwtObj = new JWT(App::getEnv('_APP_OPENSSL_KEY_V1'), 'HS256', 900, 10); // Instantiate with key, algo, maxAge and leeway. $jwt = $jwtObj->encode([ 'userId' => $user->getId(), - 'sessionId' => $session->getId(), + 'sessionId' => $current->getId(), ]); } } diff --git a/app/controllers/api/health.php b/app/controllers/api/health.php index 599e54d03c..968527d6cb 100644 --- a/app/controllers/api/health.php +++ b/app/controllers/api/health.php @@ -42,11 +42,11 @@ App::get('/v1/health/db') ->label('sdk.method', 'getDB') ->label('sdk.description', '/docs/references/health/get-db.md') ->inject('response') - ->inject('app') - ->action(function ($response, $app) { + ->inject('utopia') + ->action(function ($response, $utopia) { /** @var Appwrite\Utopia\Response $response */ - /** @var Utopia\App $app */ - $app->getResource('db'); + /** @var Utopia\App $utopia */ + $utopia->getResource('db'); $response->json(['status' => 'OK']); }); @@ -60,11 +60,11 @@ App::get('/v1/health/cache') ->label('sdk.method', 'getCache') ->label('sdk.description', '/docs/references/health/get-cache.md') ->inject('response') - ->inject('app') - ->action(function ($response, $app) { + ->inject('utopia') + ->action(function ($response, $utopia) { /** @var Appwrite\Utopia\Response $response */ - /** @var Utopia\App $register */ - $app->getResource('cache'); + /** @var Utopia\App $utopia */ + $utopia->getResource('cache'); $response->json(['status' => 'OK']); }); diff --git a/app/controllers/api/projects.php b/app/controllers/api/projects.php index 28694a0b10..3c932cf04a 100644 --- a/app/controllers/api/projects.php +++ b/app/controllers/api/projects.php @@ -63,20 +63,20 @@ App::post('/v1/projects') } $project = $dbForConsole->createDocument('projects', new Document([ - '$collection' => 'projects', '$read' => ['team:' . $teamId], '$write' => ['team:' . $teamId . '/owner', 'team:' . $teamId . '/developer'], + 'teamId' => $team->getId(), 'name' => $name, 'description' => $description, 'logo' => $logo, 'url' => $url, + 'version' => APP_VERSION_STABLE, 'legalName' => $legalName, 'legalCountry' => $legalCountry, 'legalState' => $legalState, 'legalCity' => $legalCity, 'legalAddress' => $legalAddress, 'legalTaxId' => $legalTaxId, - 'teamId' => $team->getId(), 'platforms' => [], 'webhooks' => [], 'keys' => [], diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index f4e6631dc9..5ad8ecd6c3 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -608,6 +608,8 @@ App::patch('/v1/teams/:teamId/memberships/:membershipId/status') // Log user in + Authorization::setRole('user:'.$user->getId()); + $detector = new Detector($request->getUserAgent('UNKNOWN')); $record = $geodb->get($request->getIP()); $expiry = \time() + Auth::TOKEN_EXPIRATION_LOGIN_LONG; @@ -624,6 +626,11 @@ App::patch('/v1/teams/:teamId/memberships/:membershipId/status') 'countryCode' => ($record) ? \strtolower($record['country']['iso_code']) : '--', ], $detector->getOS(), $detector->getClient(), $detector->getDevice())); + $session = $dbForInternal->createDocument('sessions', $session + ->setAttribute('$read', ['user:'.$user->getId()]) + ->setAttribute('$write', ['user:'.$user->getId()]) + ); + $user->setAttribute('sessions', $session, Document::SET_TYPE_APPEND); Authorization::setRole('user:'.$userId); diff --git a/app/controllers/api/users.php b/app/controllers/api/users.php index 1c9c5b317c..8a1be03744 100644 --- a/app/controllers/api/users.php +++ b/app/controllers/api/users.php @@ -430,12 +430,13 @@ App::delete('/v1/users/:userId/sessions/:sessionId') $sessions = $user->getAttribute('sessions', []); - foreach ($sessions as $key => $session) { - /** @var Document $session */ + foreach ($sessions as $key => $session) { /** @var Document $session */ if ($sessionId == $session->getId()) { unset($sessions[$key]); + $dbForInternal->deleteDocument('sessions', $session->getId()); + $user->setAttribute('sessions', $sessions); $events @@ -476,13 +477,18 @@ App::delete('/v1/users/:userId/sessions') throw new Exception('User not found', 404); } + $sessions = $user->getAttribute('sessions', []); + + foreach ($sessions as $key => $session) { /** @var Document $session */ + $dbForInternal->deleteDocument('sessions', $session->getId()); + } + $dbForInternal->updateDocument('users', $user->getId(), $user->getAttribute('sessions', [])); $events ->setParam('eventData', $response->output2($user, Response::MODEL_USER)) ; - // TODO : Response filter implementation $response->noContent(); }); diff --git a/app/controllers/general.php b/app/controllers/general.php index db6e2acfd7..d8f24019f8 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -57,7 +57,7 @@ App::init(function ($utopia, $request, $response, $console, $project, $dbForCons $certificate = $dbForConsole->createDocument('certificates', $certificate); Authorization2::enable(); - Console::info('Issuing a TLS certificate for the master domain (' . $domain->get() . ') in a few seconds...'); // TODO move this to installation script + Console::info('Issuing a TLS certificate for the master domain (' . $domain->get() . ') in a few seconds...'); Resque::enqueue('v1-certificates', 'CertificatesV1', [ 'document' => $certificate, @@ -307,6 +307,10 @@ App::error(function ($error, $utopia, $request, $response, $layout, $project) { /** @var Utopia\View $layout */ /** @var Appwrite\Database\Document $project */ + if ($error instanceof PDOException) { + throw $error; + } + $route = $utopia->match($request); $template = ($route) ? $route->getLabel('error', null) : null; @@ -370,10 +374,12 @@ App::error(function ($error, $utopia, $request, $response, $layout, $project) { $comp = new View($template); $comp + ->setParam('development', App::isDevelopment()) ->setParam('projectName', $project->getAttribute('name')) ->setParam('projectURL', $project->getAttribute('url')) ->setParam('message', $error->getMessage()) ->setParam('code', $code) + ->setParam('trace', $error->getTrace()) ; $layout diff --git a/app/http.php b/app/http.php index ee8a073b03..55adbb2359 100644 --- a/app/http.php +++ b/app/http.php @@ -54,8 +54,25 @@ $http->on('start', function (Server $http) use ($payloadSize, $register) { $app = new App('UTC'); go(function() use ($register, $app) { - $db = $register->get('dbPool')->get(); - $redis = $register->get('redisPool')->get(); + // wait for database to be ready + $attempts = 0; + $max = 10; + $sleep = 1; + + do { + try { + $attempts++; + $db = $register->get('dbPool')->get(); + $redis = $register->get('redisPool')->get(); + break; // leave the do-while if successful + } catch(\Exception $e) { + Console::warning("Database not ready. Retrying connection ({$attempts})..."); + if ($attempts >= $max) { + throw new \Exception('Failed to connect to database: '. $e->getMessage()); + } + sleep($sleep); + } + } while ($attempts < $max); App::setResource('db', function () use (&$db) { return $db; @@ -69,9 +86,6 @@ $http->on('start', function (Server $http) use ($payloadSize, $register) { return $app; }); - // wait for database to be ready - sleep(5); - $dbForConsole = $app->getResource('dbForConsole'); /** @var Utopia\Database\Database $dbForConsole */ if(!$dbForConsole->exists()) { @@ -165,10 +179,6 @@ $http->on('request', function (SwooleRequest $swooleRequest, SwooleResponse $swo App::setResource('cache', function () use (&$redis) { return $redis; }); - - App::setResource('app', function() use (&$app) { - return $app; - }); try { Authorization::cleanRoles(); @@ -184,6 +194,13 @@ $http->on('request', function (SwooleRequest $swooleRequest, SwooleResponse $swo Console::error('[Error] File: '.$th->getFile()); Console::error('[Error] Line: '.$th->getLine()); + /** + * Reset Database connection if PDOException was thrown. + */ + if ($th instanceof PDOException) { + $db = null; + } + if(App::isDevelopment()) { $swooleResponse->end('error: '.$th->getMessage()); } diff --git a/app/init.php b/app/init.php index 99116b748f..a42513259e 100644 --- a/app/init.php +++ b/app/init.php @@ -55,8 +55,8 @@ const APP_MODE_ADMIN = 'admin'; const APP_PAGING_LIMIT = 12; const APP_LIMIT_COUNT = 5000; const APP_LIMIT_USERS = 10000; -const APP_CACHE_BUSTER = 148; -const APP_VERSION_STABLE = '0.9.0'; +const APP_CACHE_BUSTER = 150; +const APP_VERSION_STABLE = '0.9.2'; const APP_STORAGE_UPLOADS = '/storage/uploads'; const APP_STORAGE_FUNCTIONS = '/storage/functions'; const APP_STORAGE_CACHE = '/storage/cache'; @@ -199,12 +199,11 @@ $register->set('dbPool', function () { // Register DB connection $pool = new PDOPool((new PDOConfig()) ->withHost($dbHost) ->withPort($dbPort) - // ->withUnixSocket('/tmp/mysql.sock') ->withDbName($dbScheme) ->withCharset('utf8mb4') ->withUsername($dbUser) ->withPassword($dbPass) - ); + , 16); return $pool; }); @@ -224,7 +223,7 @@ $register->set('redisPool', function () { ->withPort($redisPort) ->withAuth($redisAuth) ->withDbIndex(0) - ); + , 16); return $pool; }); diff --git a/app/tasks/install.php b/app/tasks/install.php index 755e0b7e2c..483f5c5e04 100644 --- a/app/tasks/install.php +++ b/app/tasks/install.php @@ -129,7 +129,7 @@ $cli $httpsPort = Console::confirm('Choose your server HTTPS port: (default: '.$defaultHTTPSPort.')'); $httpsPort = ($httpsPort) ? $httpsPort : $defaultHTTPSPort; } - + $input = []; foreach($vars as $key => $var) { @@ -196,7 +196,7 @@ $cli foreach ($input as $key => $value) { if($value) { - $env .= $key.'='.$value.' '; + $env .= $key.'='.\escapeshellarg($value).' '; } } diff --git a/app/tasks/sdks.php b/app/tasks/sdks.php index 8d2931b355..f57b2dce97 100644 --- a/app/tasks/sdks.php +++ b/app/tasks/sdks.php @@ -147,6 +147,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND break; case 'kotlin': $config = new Kotlin(); + $warning = $warning."\n\n > This is the Kotlin SDK for integrating with Appwrite from your Kotlin server-side code. If you're looking for the Android SDK you should check [appwrite/sdk-for-android](https://github.com/appwrite/sdk-for-android)"; break; default: throw new Exception('Language "'.$language['key'].'" not supported'); @@ -222,9 +223,15 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND Console::success("Remove temp directory '{$target}' for {$language['name']} SDK"); } - \exec('mkdir -p '.$resultExamples.' && cp -r '.$result.'/docs/examples '.$resultExamples); - Console::success("Copied code examples for {$language['name']} SDK to: {$resultExamples}"); - + $docDirectories = $language['docDirectories'] ?? ['']; + foreach ($docDirectories as $languageTitle => $path) { + $languagePath = strtolower($languageTitle !== 0 ? '/'.$languageTitle : ''); + \exec( + 'mkdir -p '.$resultExamples.$languagePath.' && \ + cp -r '.$result.'/docs/examples'.$languagePath.' '.$resultExamples + ); + Console::success("Copied code examples for {$language['name']} SDK to: {$resultExamples}"); + } } } diff --git a/app/views/general/error.phtml b/app/views/general/error.phtml index be7e3dc9c5..66f6cf77d7 100644 --- a/app/views/general/error.phtml +++ b/app/views/general/error.phtml @@ -1,7 +1,9 @@ getParam('development', false); $code = $this->getParam('code', 500); $errorID = $this->getParam('errorID', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); $message = $this->getParam('message', ''); +$trace = $this->getParam('trace', []); $projectName = $this->getParam('projectName', ''); $projectURL = $this->getParam('projectURL', ''); ?> @@ -18,4 +20,30 @@ $projectURL = $this->getParam('projectURL', '');

Back to

+ + +
+ +

Error Trace

+ + + + $value): ?> + + + + + + +
+ + + + + +
+ +
+ + diff --git a/app/views/install/compose.phtml b/app/views/install/compose.phtml index 1acc350664..c110fcd4eb 100644 --- a/app/views/install/compose.phtml +++ b/app/views/install/compose.phtml @@ -342,7 +342,7 @@ services: - MYSQL_DATABASE=${_APP_DB_SCHEMA} - MYSQL_USER=${_APP_DB_USER} - MYSQL_PASSWORD=${_APP_DB_PASS} - command: 'mysqld --innodb-flush-method=fsync' + command: 'mysqld --innodb-flush-method=fsync --wait_timeout=86400' redis: image: redis:6.0-alpine3.12 diff --git a/app/workers.php b/app/workers.php index ff5ba1dbd3..7dd48eaff8 100644 --- a/app/workers.php +++ b/app/workers.php @@ -23,10 +23,12 @@ $register->set('db', function () { return $pdo; }); + $register->set('cache', function () { // Register cache connection $redis = new Redis(); $redis->pconnect(App::getEnv('_APP_REDIS_HOST', ''), App::getEnv('_APP_REDIS_PORT', '')); $redis->setOption(Redis::OPT_READ_TIMEOUT, -1); return $redis; -}); \ No newline at end of file +}); + diff --git a/app/workers/audits.php b/app/workers/audits.php index 495c93bc48..663de3ce4f 100644 --- a/app/workers/audits.php +++ b/app/workers/audits.php @@ -2,11 +2,7 @@ use Appwrite\Resque\Worker; use Utopia\Audit\Audit; -use Utopia\Cache\Adapter\Redis; -use Utopia\Cache\Cache; use Utopia\CLI\Console; -use Utopia\Database\Adapter\MariaDB; -use Utopia\Database\Database; require_once __DIR__.'/../workers.php'; @@ -23,8 +19,6 @@ class AuditsV1 extends Worker public function run(): void { - global $register; - $projectId = $this->args['projectId']; $userId = $this->args['userId']; $event = $this->args['event']; @@ -32,12 +26,8 @@ class AuditsV1 extends Worker $userAgent = $this->args['userAgent']; $ip = $this->args['ip']; $data = $this->args['data']; - $db = $register->get('db', true); - $cache = new Cache(new Redis($register->get('cache'))); - $dbForInternal = new Database(new MariaDB($db), $cache); - $dbForInternal->setNamespace('project_'.$projectId.'_internal'); - + $dbForInternal = $this->getInternalDB($projectId); $audit = new Audit($dbForInternal); $audit->log($userId, $event, $resource, $userAgent, $ip, '', $data); diff --git a/app/workers/database.php b/app/workers/database.php index c9c02deeb0..544ffe1060 100644 --- a/app/workers/database.php +++ b/app/workers/database.php @@ -1,12 +1,8 @@ deleteIndex($collectionId, $id); } - - /** - * @param string $projectId - * - * @return Database - */ - protected function getInternalDB($projectId): Database - { - global $register; - - $cache = new Cache(new Redis($register->get('cache'))); - $dbForInternal = new Database(new MariaDB($register->get('db')), $cache); - $dbForInternal->setNamespace('project_'.$projectId.'_internal'); // Main DB - - return $dbForInternal; - } - - /** - * @param string $projectId - * - * @return Database - */ - protected function getExternalDB($projectId): Database - { - global $register; - - $cache = new Cache(new Redis($register->get('cache'))); - $dbForExternal = new Database(new MariaDB($register->get('db')), $cache); - $dbForExternal->setNamespace('project_'.$projectId.'_external'); // Main DB - - return $dbForExternal; - } } diff --git a/app/workers/deletes.php b/app/workers/deletes.php index c855043254..e98723a5ea 100644 --- a/app/workers/deletes.php +++ b/app/workers/deletes.php @@ -3,7 +3,6 @@ use Utopia\Database\Database; use Utopia\Database\Document; use Utopia\Database\Query; -use Utopia\Cache\Adapter\Redis; use Utopia\Database\Validator\Authorization; use Appwrite\Resque\Worker; use Utopia\Storage\Device\Local; @@ -11,8 +10,6 @@ use Utopia\Abuse\Abuse; use Utopia\Abuse\Adapters\TimeLimit; use Utopia\CLI\Console; use Utopia\Audit\Audit; -use Utopia\Cache\Cache; -use Utopia\Database\Adapter\MariaDB; require_once __DIR__.'/../workers.php'; @@ -350,48 +347,4 @@ class DeletesV1 extends Worker Console::info("No certificate files found for {$domain}"); } } - - /** - * @param string $projectId - * @return Database - */ - protected function getInternalDB($projectId): Database - { - global $register; - - $cache = new Cache(new Redis($register->get('cache'))); - $dbForInternal = new Database(new MariaDB($register->get('db')), $cache); - $dbForInternal->setNamespace('project_'.$projectId.'_internal'); // Main DB - - return $dbForInternal; - } - - /** - * @param string $projectId - * @return Database - */ - protected function getExternalDB($projectId): Database - { - global $register; - - $cache = new Cache(new Redis($register->get('cache'))); - $dbForExternal = new Database(new MariaDB($register->get('db')), $cache); - $dbForExternal->setNamespace('project_'.$projectId.'_external'); // Main DB - - return $dbForExternal; - } - - /** - * @return Database - */ - protected function getConsoleDB(): Database - { - global $register; - - $cache = new Cache(new Redis($register->get('cache'))); - $dbForConsole = new Database(new MariaDB($register->get('db')), $cache); - $dbForConsole->setNamespace('project_console_internal'); // Main DB - - return $dbForConsole; - } } diff --git a/app/workers/functions.php b/app/workers/functions.php index 8cb6fafbb6..510346fb48 100644 --- a/app/workers/functions.php +++ b/app/workers/functions.php @@ -6,11 +6,8 @@ use Appwrite\Utopia\Response\Model\Execution; use Cron\CronExpression; use Swoole\Runtime; use Utopia\App; -use Utopia\Cache\Adapter\Redis; -use Utopia\Cache\Cache; use Utopia\CLI\Console; use Utopia\Config\Config; -use Utopia\Database\Adapter\MariaDB; use Utopia\Database\Database; use Utopia\Database\Document; use Utopia\Database\Validator\Authorization; @@ -123,7 +120,7 @@ Console::info(count($list)." functions listed in " . ($executionEnd - $execution * 7. Trigger usage log - DONE */ -//TODO aviod scheduled execution if delay is bigger than X offest +//TODO avoid scheduled execution if delay is bigger than X offest class FunctionsV1 extends Worker { @@ -139,9 +136,6 @@ class FunctionsV1 extends Worker { global $register; - $db = $register->get('db'); - $cache = $register->get('cache'); - $projectId = $this->args['projectId'] ?? ''; $functionId = $this->args['functionId'] ?? ''; $webhooks = $this->args['webhooks'] ?? []; @@ -154,9 +148,7 @@ class FunctionsV1 extends Worker $userId = $this->args['userId'] ?? ''; $jwt = $this->args['jwt'] ?? ''; - $cache = new Cache(new Redis($cache)); - $database = new Database(new MariaDB($db), $cache); - $database->setNamespace('project_'.$projectId.'_internal'); + $database = $this->getInternalDB($projectId); switch ($trigger) { case 'event': @@ -325,7 +317,7 @@ class FunctionsV1 extends Worker : null; if(\is_null($runtime)) { - throw new Exception('Runtime "'.$function->getAttribute('runtime', '').' is not supported'); + throw new Exception('Runtime "'.$function->getAttribute('runtime', '').'" is not supported'); } $vars = \array_merge($function->getAttribute('vars', []), [ @@ -345,7 +337,7 @@ class FunctionsV1 extends Worker \array_walk($vars, function (&$value, $key) { $key = $this->filterEnvKey($key); - $value = \escapeshellarg((empty($value)) ? 'null' : $value); + $value = \escapeshellarg((empty($value)) ? '' : $value); $value = "--env {$key}={$value}"; }); @@ -413,15 +405,24 @@ class FunctionsV1 extends Worker " --workdir /usr/local/src". " ".\implode(" ", $vars). " {$runtime['image']}". - " sh -c 'mv /tmp/code.tar.gz /usr/local/src/code.tar.gz && tar -zxf /usr/local/src/code.tar.gz --strip 1 && rm /usr/local/src/code.tar.gz && tail -f /dev/null'" + " tail -f /dev/null" , '', $stdout, $stderr, 30); - $executionEnd = \microtime(true); - if($exitCode !== 0) { throw new Exception('Failed to create function environment: '.$stderr); } + $exitCodeUntar = Console::execute("docker exec ". + $container. + " sh -c 'mv /tmp/code.tar.gz /usr/local/src/code.tar.gz && tar -zxf /usr/local/src/code.tar.gz --strip 1 && rm /usr/local/src/code.tar.gz'" + , '', $stdout, $stderr, 60); + + if($exitCodeUntar !== 0) { + throw new Exception('Failed to extract tar: '.$stderr); + } + + $executionEnd = \microtime(true); + $list[$container] = [ 'name' => $container, 'online' => true, diff --git a/app/workers/tasks.php b/app/workers/tasks.php index cb24c65a9f..b3469393ef 100644 --- a/app/workers/tasks.php +++ b/app/workers/tasks.php @@ -28,11 +28,6 @@ class TasksV1 extends Worker public function run(): void { - global $register; - - $db = $register->get('db'); - $cache = $register->get('cache'); - $projectId = $this->args['projectId'] ?? null; $taskId = $this->args['$id'] ?? null; $updated = $this->args['updated'] ?? null; @@ -44,9 +39,7 @@ class TasksV1 extends Worker $logLimit = 5; $alert = ''; - $cache = new Cache(new Redis($cache)); - $dbForConsole = new Database(new MariaDB($db), $cache); - $dbForConsole->setNamespace('project_console_internal'); + $dbForConsole = $this->getConsoleDB(); /* * 1. Get Original Task diff --git a/composer.json b/composer.json index 63a3c5d424..bb8003ffb6 100644 --- a/composer.json +++ b/composer.json @@ -73,7 +73,7 @@ } ], "require-dev": { - "appwrite/sdk-generator": "0.11.1", + "appwrite/sdk-generator": "0.12.0", "swoole/ide-helper": "4.6.7", "phpunit/phpunit": "9.5.6", "vimeo/psalm": "4.7.2" diff --git a/composer.lock b/composer.lock index baeea51a40..4a34e6accb 100644 --- a/composer.lock +++ b/composer.lock @@ -2726,16 +2726,16 @@ }, { "name": "appwrite/sdk-generator", - "version": "0.11.1", + "version": "0.12.0", "source": { "type": "git", "url": "https://github.com/appwrite/sdk-generator.git", - "reference": "9809c31f27037d088fb832cdec0e8fbc93d1d388" + "reference": "ca8e34f091b3a66f94a8972cb94b0b8e1161dada" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/9809c31f27037d088fb832cdec0e8fbc93d1d388", - "reference": "9809c31f27037d088fb832cdec0e8fbc93d1d388", + "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/ca8e34f091b3a66f94a8972cb94b0b8e1161dada", + "reference": "ca8e34f091b3a66f94a8972cb94b0b8e1161dada", "shasum": "" }, "require": { @@ -2769,9 +2769,9 @@ "description": "Appwrite PHP library for generating API SDKs for multiple programming languages and platforms", "support": { "issues": "https://github.com/appwrite/sdk-generator/issues", - "source": "https://github.com/appwrite/sdk-generator/tree/0.11.1" + "source": "https://github.com/appwrite/sdk-generator/tree/0.12.0" }, - "time": "2021-07-02T10:15:53+00:00" + "time": "2021-07-06T16:20:51+00:00" }, { "name": "composer/semver", diff --git a/dev/yasd_init.php.stub b/dev/yasd_init.php.stub new file mode 100644 index 0000000000..a7d977fbf7 --- /dev/null +++ b/dev/yasd_init.php.stub @@ -0,0 +1,4 @@ +() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/account/create-j-w-t.md b/docs/examples/0.9.x/client-android/java/account/create-j-w-t.md new file mode 100644 index 0000000000..3a97c334ce --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/account/create-j-w-t.md @@ -0,0 +1,46 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Account + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Account account = new Account(client); + + account.createJWT(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/account/create-o-auth2session.md b/docs/examples/0.9.x/client-android/java/account/create-o-auth2session.md new file mode 100644 index 0000000000..e4cfb8d471 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/account/create-o-auth2session.md @@ -0,0 +1,46 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Account + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Account account = new Account(client); + + account.createOAuth2Session( + this, + "amazon", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/account/create-recovery.md b/docs/examples/0.9.x/client-android/java/account/create-recovery.md new file mode 100644 index 0000000000..459213bce9 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/account/create-recovery.md @@ -0,0 +1,49 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Account + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Account account = new Account(client); + + account.createRecovery( + "email@example.com", + "https://example.com" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/account/create-session.md b/docs/examples/0.9.x/client-android/java/account/create-session.md new file mode 100644 index 0000000000..34dfca55d8 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/account/create-session.md @@ -0,0 +1,49 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Account + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Account account = new Account(client); + + account.createSession( + "email@example.com", + "password" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/account/create-verification.md b/docs/examples/0.9.x/client-android/java/account/create-verification.md new file mode 100644 index 0000000000..b8b1c206bf --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/account/create-verification.md @@ -0,0 +1,48 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Account + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Account account = new Account(client); + + account.createVerification( + "https://example.com" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/account/create.md b/docs/examples/0.9.x/client-android/java/account/create.md new file mode 100644 index 0000000000..3ff5ab9994 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/account/create.md @@ -0,0 +1,49 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Account + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Account account = new Account(client); + + account.create( + "email@example.com", + "password", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/account/delete-session.md b/docs/examples/0.9.x/client-android/java/account/delete-session.md new file mode 100644 index 0000000000..b3549c708b --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/account/delete-session.md @@ -0,0 +1,48 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Account + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Account account = new Account(client); + + account.deleteSession( + "[SESSION_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/account/delete-sessions.md b/docs/examples/0.9.x/client-android/java/account/delete-sessions.md new file mode 100644 index 0000000000..153c323b56 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/account/delete-sessions.md @@ -0,0 +1,46 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Account + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Account account = new Account(client); + + account.deleteSessions(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/account/delete.md b/docs/examples/0.9.x/client-android/java/account/delete.md new file mode 100644 index 0000000000..aec96f1b4b --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/account/delete.md @@ -0,0 +1,46 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Account + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Account account = new Account(client); + + account.delete(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/account/get-logs.md b/docs/examples/0.9.x/client-android/java/account/get-logs.md new file mode 100644 index 0000000000..f2dea963e2 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/account/get-logs.md @@ -0,0 +1,46 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Account + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Account account = new Account(client); + + account.getLogs(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/account/get-prefs.md b/docs/examples/0.9.x/client-android/java/account/get-prefs.md new file mode 100644 index 0000000000..25ab6c3951 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/account/get-prefs.md @@ -0,0 +1,46 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Account + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Account account = new Account(client); + + account.getPrefs(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/account/get-session.md b/docs/examples/0.9.x/client-android/java/account/get-session.md new file mode 100644 index 0000000000..8d4c95aaf2 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/account/get-session.md @@ -0,0 +1,48 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Account + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Account account = new Account(client); + + account.getSession( + "[SESSION_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/account/get-sessions.md b/docs/examples/0.9.x/client-android/java/account/get-sessions.md new file mode 100644 index 0000000000..7afe852d71 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/account/get-sessions.md @@ -0,0 +1,46 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Account + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Account account = new Account(client); + + account.getSessions(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/account/get.md b/docs/examples/0.9.x/client-android/java/account/get.md new file mode 100644 index 0000000000..146a5e501d --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/account/get.md @@ -0,0 +1,46 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Account + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Account account = new Account(client); + + account.get(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/account/update-email.md b/docs/examples/0.9.x/client-android/java/account/update-email.md new file mode 100644 index 0000000000..56a1bc0206 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/account/update-email.md @@ -0,0 +1,49 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Account + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Account account = new Account(client); + + account.updateEmail( + "email@example.com", + "password" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/account/update-name.md b/docs/examples/0.9.x/client-android/java/account/update-name.md new file mode 100644 index 0000000000..9842a2216e --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/account/update-name.md @@ -0,0 +1,48 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Account + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Account account = new Account(client); + + account.updateName( + "[NAME]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/account/update-password.md b/docs/examples/0.9.x/client-android/java/account/update-password.md new file mode 100644 index 0000000000..468bdc21da --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/account/update-password.md @@ -0,0 +1,48 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Account + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Account account = new Account(client); + + account.updatePassword( + "password", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/account/update-prefs.md b/docs/examples/0.9.x/client-android/java/account/update-prefs.md new file mode 100644 index 0000000000..9f94b8fe59 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/account/update-prefs.md @@ -0,0 +1,48 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Account + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Account account = new Account(client); + + account.updatePrefs( + mapOf( "a" to "b" ) + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/account/update-recovery.md b/docs/examples/0.9.x/client-android/java/account/update-recovery.md new file mode 100644 index 0000000000..bfcc89ed19 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/account/update-recovery.md @@ -0,0 +1,51 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Account + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Account account = new Account(client); + + account.updateRecovery( + "[USER_ID]", + "[SECRET]", + "password", + "password" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/account/update-verification.md b/docs/examples/0.9.x/client-android/java/account/update-verification.md new file mode 100644 index 0000000000..8cf8d67363 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/account/update-verification.md @@ -0,0 +1,49 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Account + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Account account = new Account(client); + + account.updateVerification( + "[USER_ID]", + "[SECRET]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/avatars/get-browser.md b/docs/examples/0.9.x/client-android/java/avatars/get-browser.md new file mode 100644 index 0000000000..fa88749dff --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/avatars/get-browser.md @@ -0,0 +1,48 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Avatars + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Avatars avatars = new Avatars(client); + + avatars.getBrowser( + "aa", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/avatars/get-credit-card.md b/docs/examples/0.9.x/client-android/java/avatars/get-credit-card.md new file mode 100644 index 0000000000..2ddda86cce --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/avatars/get-credit-card.md @@ -0,0 +1,48 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Avatars + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Avatars avatars = new Avatars(client); + + avatars.getCreditCard( + "amex", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/avatars/get-favicon.md b/docs/examples/0.9.x/client-android/java/avatars/get-favicon.md new file mode 100644 index 0000000000..39c1432260 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/avatars/get-favicon.md @@ -0,0 +1,48 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Avatars + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Avatars avatars = new Avatars(client); + + avatars.getFavicon( + "https://example.com" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/avatars/get-flag.md b/docs/examples/0.9.x/client-android/java/avatars/get-flag.md new file mode 100644 index 0000000000..77bf3b1b1f --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/avatars/get-flag.md @@ -0,0 +1,48 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Avatars + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Avatars avatars = new Avatars(client); + + avatars.getFlag( + "af", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/avatars/get-image.md b/docs/examples/0.9.x/client-android/java/avatars/get-image.md new file mode 100644 index 0000000000..69371da6d3 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/avatars/get-image.md @@ -0,0 +1,48 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Avatars + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Avatars avatars = new Avatars(client); + + avatars.getImage( + "https://example.com", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/avatars/get-initials.md b/docs/examples/0.9.x/client-android/java/avatars/get-initials.md new file mode 100644 index 0000000000..eea5669c2c --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/avatars/get-initials.md @@ -0,0 +1,47 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Avatars + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Avatars avatars = new Avatars(client); + + avatars.getInitials( + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/avatars/get-q-r.md b/docs/examples/0.9.x/client-android/java/avatars/get-q-r.md new file mode 100644 index 0000000000..e2c48cdded --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/avatars/get-q-r.md @@ -0,0 +1,48 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Avatars + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Avatars avatars = new Avatars(client); + + avatars.getQR( + "[TEXT]", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/database/create-document.md b/docs/examples/0.9.x/client-android/java/database/create-document.md new file mode 100644 index 0000000000..b3a5b28e25 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/database/create-document.md @@ -0,0 +1,49 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Database + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Database database = new Database(client); + + database.createDocument( + "[COLLECTION_ID]", + mapOf( "a" to "b" ), + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/database/delete-document.md b/docs/examples/0.9.x/client-android/java/database/delete-document.md new file mode 100644 index 0000000000..75877c470a --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/database/delete-document.md @@ -0,0 +1,49 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Database + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Database database = new Database(client); + + database.deleteDocument( + "[COLLECTION_ID]", + "[DOCUMENT_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/database/get-document.md b/docs/examples/0.9.x/client-android/java/database/get-document.md new file mode 100644 index 0000000000..69aff1df2c --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/database/get-document.md @@ -0,0 +1,49 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Database + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Database database = new Database(client); + + database.getDocument( + "[COLLECTION_ID]", + "[DOCUMENT_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/database/list-documents.md b/docs/examples/0.9.x/client-android/java/database/list-documents.md new file mode 100644 index 0000000000..711aa412c0 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/database/list-documents.md @@ -0,0 +1,48 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Database + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Database database = new Database(client); + + database.listDocuments( + "[COLLECTION_ID]", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/database/update-document.md b/docs/examples/0.9.x/client-android/java/database/update-document.md new file mode 100644 index 0000000000..a14c91f48c --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/database/update-document.md @@ -0,0 +1,50 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Database + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Database database = new Database(client); + + database.updateDocument( + "[COLLECTION_ID]", + "[DOCUMENT_ID]", + mapOf( "a" to "b" ), + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/functions/create-execution.md b/docs/examples/0.9.x/client-android/java/functions/create-execution.md new file mode 100644 index 0000000000..ea30faddf3 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/functions/create-execution.md @@ -0,0 +1,48 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Functions + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Functions functions = new Functions(client); + + functions.createExecution( + "[FUNCTION_ID]", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/functions/get-execution.md b/docs/examples/0.9.x/client-android/java/functions/get-execution.md new file mode 100644 index 0000000000..2f4e57edce --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/functions/get-execution.md @@ -0,0 +1,49 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Functions + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Functions functions = new Functions(client); + + functions.getExecution( + "[FUNCTION_ID]", + "[EXECUTION_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/functions/list-executions.md b/docs/examples/0.9.x/client-android/java/functions/list-executions.md new file mode 100644 index 0000000000..68f767db9c --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/functions/list-executions.md @@ -0,0 +1,48 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Functions + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Functions functions = new Functions(client); + + functions.listExecutions( + "[FUNCTION_ID]", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/locale/get-continents.md b/docs/examples/0.9.x/client-android/java/locale/get-continents.md new file mode 100644 index 0000000000..e96a9fec1e --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/locale/get-continents.md @@ -0,0 +1,46 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Locale + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Locale locale = new Locale(client); + + locale.getContinents(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/locale/get-countries-e-u.md b/docs/examples/0.9.x/client-android/java/locale/get-countries-e-u.md new file mode 100644 index 0000000000..ec478bc839 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/locale/get-countries-e-u.md @@ -0,0 +1,46 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Locale + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Locale locale = new Locale(client); + + locale.getCountriesEU(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/locale/get-countries-phones.md b/docs/examples/0.9.x/client-android/java/locale/get-countries-phones.md new file mode 100644 index 0000000000..34368d2877 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/locale/get-countries-phones.md @@ -0,0 +1,46 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Locale + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Locale locale = new Locale(client); + + locale.getCountriesPhones(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/locale/get-countries.md b/docs/examples/0.9.x/client-android/java/locale/get-countries.md new file mode 100644 index 0000000000..f1c50fc8d1 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/locale/get-countries.md @@ -0,0 +1,46 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Locale + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Locale locale = new Locale(client); + + locale.getCountries(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/locale/get-currencies.md b/docs/examples/0.9.x/client-android/java/locale/get-currencies.md new file mode 100644 index 0000000000..63af14bbb3 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/locale/get-currencies.md @@ -0,0 +1,46 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Locale + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Locale locale = new Locale(client); + + locale.getCurrencies(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/locale/get-languages.md b/docs/examples/0.9.x/client-android/java/locale/get-languages.md new file mode 100644 index 0000000000..5952daafef --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/locale/get-languages.md @@ -0,0 +1,46 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Locale + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Locale locale = new Locale(client); + + locale.getLanguages(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/locale/get.md b/docs/examples/0.9.x/client-android/java/locale/get.md new file mode 100644 index 0000000000..417fc16f23 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/locale/get.md @@ -0,0 +1,46 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Locale + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Locale locale = new Locale(client); + + locale.get(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/storage/create-file.md b/docs/examples/0.9.x/client-android/java/storage/create-file.md new file mode 100644 index 0000000000..172ef7ea1b --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/storage/create-file.md @@ -0,0 +1,48 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Storage + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Storage storage = new Storage(client); + + storage.createFile( + File("./path-to-files/image.jpg"), + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/storage/delete-file.md b/docs/examples/0.9.x/client-android/java/storage/delete-file.md new file mode 100644 index 0000000000..aafae2ce65 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/storage/delete-file.md @@ -0,0 +1,48 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Storage + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Storage storage = new Storage(client); + + storage.deleteFile( + "[FILE_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/storage/get-file-download.md b/docs/examples/0.9.x/client-android/java/storage/get-file-download.md new file mode 100644 index 0000000000..d56f2934a0 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/storage/get-file-download.md @@ -0,0 +1,48 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Storage + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Storage storage = new Storage(client); + + storage.getFileDownload( + "[FILE_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/storage/get-file-preview.md b/docs/examples/0.9.x/client-android/java/storage/get-file-preview.md new file mode 100644 index 0000000000..00b54f220b --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/storage/get-file-preview.md @@ -0,0 +1,48 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Storage + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Storage storage = new Storage(client); + + storage.getFilePreview( + "[FILE_ID]", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/storage/get-file-view.md b/docs/examples/0.9.x/client-android/java/storage/get-file-view.md new file mode 100644 index 0000000000..087a48b1bc --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/storage/get-file-view.md @@ -0,0 +1,48 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Storage + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Storage storage = new Storage(client); + + storage.getFileView( + "[FILE_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/storage/get-file.md b/docs/examples/0.9.x/client-android/java/storage/get-file.md new file mode 100644 index 0000000000..9473cab274 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/storage/get-file.md @@ -0,0 +1,48 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Storage + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Storage storage = new Storage(client); + + storage.getFile( + "[FILE_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/storage/list-files.md b/docs/examples/0.9.x/client-android/java/storage/list-files.md new file mode 100644 index 0000000000..e2eab69d8b --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/storage/list-files.md @@ -0,0 +1,47 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Storage + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Storage storage = new Storage(client); + + storage.listFiles( + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/storage/update-file.md b/docs/examples/0.9.x/client-android/java/storage/update-file.md new file mode 100644 index 0000000000..1477615e21 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/storage/update-file.md @@ -0,0 +1,50 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Storage + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Storage storage = new Storage(client); + + storage.updateFile( + "[FILE_ID]", + listOf(), + listOf() + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/teams/create-membership.md b/docs/examples/0.9.x/client-android/java/teams/create-membership.md new file mode 100644 index 0000000000..f4d96de575 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/teams/create-membership.md @@ -0,0 +1,51 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Teams + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Teams teams = new Teams(client); + + teams.createMembership( + "[TEAM_ID]", + "email@example.com", + listOf(), + "https://example.com", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/teams/create.md b/docs/examples/0.9.x/client-android/java/teams/create.md new file mode 100644 index 0000000000..a715c0a41a --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/teams/create.md @@ -0,0 +1,48 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Teams + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Teams teams = new Teams(client); + + teams.create( + "[NAME]", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/teams/delete-membership.md b/docs/examples/0.9.x/client-android/java/teams/delete-membership.md new file mode 100644 index 0000000000..98cb29ac75 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/teams/delete-membership.md @@ -0,0 +1,49 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Teams + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Teams teams = new Teams(client); + + teams.deleteMembership( + "[TEAM_ID]", + "[MEMBERSHIP_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/teams/delete.md b/docs/examples/0.9.x/client-android/java/teams/delete.md new file mode 100644 index 0000000000..828b457217 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/teams/delete.md @@ -0,0 +1,48 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Teams + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Teams teams = new Teams(client); + + teams.delete( + "[TEAM_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/teams/get-memberships.md b/docs/examples/0.9.x/client-android/java/teams/get-memberships.md new file mode 100644 index 0000000000..d8a4100b98 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/teams/get-memberships.md @@ -0,0 +1,48 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Teams + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Teams teams = new Teams(client); + + teams.getMemberships( + "[TEAM_ID]", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/teams/get.md b/docs/examples/0.9.x/client-android/java/teams/get.md new file mode 100644 index 0000000000..53ba33c4ca --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/teams/get.md @@ -0,0 +1,48 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Teams + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Teams teams = new Teams(client); + + teams.get( + "[TEAM_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/teams/list.md b/docs/examples/0.9.x/client-android/java/teams/list.md new file mode 100644 index 0000000000..61c2aa3f8e --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/teams/list.md @@ -0,0 +1,47 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Teams + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Teams teams = new Teams(client); + + teams.list( + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/teams/update-membership-roles.md b/docs/examples/0.9.x/client-android/java/teams/update-membership-roles.md new file mode 100644 index 0000000000..ef6c67307e --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/teams/update-membership-roles.md @@ -0,0 +1,50 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Teams + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Teams teams = new Teams(client); + + teams.updateMembershipRoles( + "[TEAM_ID]", + "[MEMBERSHIP_ID]", + listOf() + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/teams/update-membership-status.md b/docs/examples/0.9.x/client-android/java/teams/update-membership-status.md new file mode 100644 index 0000000000..447d0da2c9 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/teams/update-membership-status.md @@ -0,0 +1,51 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Teams + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Teams teams = new Teams(client); + + teams.updateMembershipStatus( + "[TEAM_ID]", + "[MEMBERSHIP_ID]", + "[USER_ID]", + "[SECRET]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/java/teams/update.md b/docs/examples/0.9.x/client-android/java/teams/update.md new file mode 100644 index 0000000000..b4df429a07 --- /dev/null +++ b/docs/examples/0.9.x/client-android/java/teams/update.md @@ -0,0 +1,49 @@ +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import io.appwrite.Client +import io.appwrite.services.Teams + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Client client = new Client(getApplicationContext()) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2"); // Your project ID + + Teams teams = new Teams(client); + + teams.update( + "[TEAM_ID]", + "[NAME]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + json = response.body().string(); + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); + } +} \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/account/create-anonymous-session.md b/docs/examples/0.9.x/client-android/kotlin/account/create-anonymous-session.md similarity index 92% rename from docs/examples/0.9.x/client-android/examples/account/create-anonymous-session.md rename to docs/examples/0.9.x/client-android/kotlin/account/create-anonymous-session.md index 80ce88f3b9..5fa06994fb 100644 --- a/docs/examples/0.9.x/client-android/examples/account/create-anonymous-session.md +++ b/docs/examples/0.9.x/client-android/kotlin/account/create-anonymous-session.md @@ -18,7 +18,7 @@ class MainActivity : AppCompatActivity() { GlobalScope.launch { val response = account.createAnonymousSession() - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/account/create-j-w-t.md b/docs/examples/0.9.x/client-android/kotlin/account/create-j-w-t.md similarity index 92% rename from docs/examples/0.9.x/client-android/examples/account/create-j-w-t.md rename to docs/examples/0.9.x/client-android/kotlin/account/create-j-w-t.md index cae8e9ba67..212838b7fd 100644 --- a/docs/examples/0.9.x/client-android/examples/account/create-j-w-t.md +++ b/docs/examples/0.9.x/client-android/kotlin/account/create-j-w-t.md @@ -18,7 +18,7 @@ class MainActivity : AppCompatActivity() { GlobalScope.launch { val response = account.createJWT() - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/account/create-o-auth2session.md b/docs/examples/0.9.x/client-android/kotlin/account/create-o-auth2session.md similarity index 87% rename from docs/examples/0.9.x/client-android/examples/account/create-o-auth2session.md rename to docs/examples/0.9.x/client-android/kotlin/account/create-o-auth2session.md index ed9782e538..baf993069a 100644 --- a/docs/examples/0.9.x/client-android/examples/account/create-o-auth2session.md +++ b/docs/examples/0.9.x/client-android/kotlin/account/create-o-auth2session.md @@ -17,10 +17,11 @@ class MainActivity : AppCompatActivity() { val account = Account(client) GlobalScope.launch { - val response = account.createOAuth2Session( + account.createOAuth2Session( + activity = this@MainActivity, provider = "amazon", ) - val json = response.body?.string() + } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/account/create-recovery.md b/docs/examples/0.9.x/client-android/kotlin/account/create-recovery.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/account/create-recovery.md rename to docs/examples/0.9.x/client-android/kotlin/account/create-recovery.md index f5eddf9e18..2c1e7597b9 100644 --- a/docs/examples/0.9.x/client-android/examples/account/create-recovery.md +++ b/docs/examples/0.9.x/client-android/kotlin/account/create-recovery.md @@ -21,7 +21,7 @@ class MainActivity : AppCompatActivity() { email = "email@example.com", url = "https://example.com" ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/account/create-session.md b/docs/examples/0.9.x/client-android/kotlin/account/create-session.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/account/create-session.md rename to docs/examples/0.9.x/client-android/kotlin/account/create-session.md index b1d70277d8..4999232e5b 100644 --- a/docs/examples/0.9.x/client-android/examples/account/create-session.md +++ b/docs/examples/0.9.x/client-android/kotlin/account/create-session.md @@ -21,7 +21,7 @@ class MainActivity : AppCompatActivity() { email = "email@example.com", password = "password" ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/account/create-verification.md b/docs/examples/0.9.x/client-android/kotlin/account/create-verification.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/account/create-verification.md rename to docs/examples/0.9.x/client-android/kotlin/account/create-verification.md index 322abfac8f..1ebddee5cf 100644 --- a/docs/examples/0.9.x/client-android/examples/account/create-verification.md +++ b/docs/examples/0.9.x/client-android/kotlin/account/create-verification.md @@ -20,7 +20,7 @@ class MainActivity : AppCompatActivity() { val response = account.createVerification( url = "https://example.com" ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/account/create.md b/docs/examples/0.9.x/client-android/kotlin/account/create.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/account/create.md rename to docs/examples/0.9.x/client-android/kotlin/account/create.md index 49c08c4543..a8528ecf39 100644 --- a/docs/examples/0.9.x/client-android/examples/account/create.md +++ b/docs/examples/0.9.x/client-android/kotlin/account/create.md @@ -21,7 +21,7 @@ class MainActivity : AppCompatActivity() { email = "email@example.com", password = "password", ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/account/delete-session.md b/docs/examples/0.9.x/client-android/kotlin/account/delete-session.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/account/delete-session.md rename to docs/examples/0.9.x/client-android/kotlin/account/delete-session.md index 2d5bfd27e6..e670623490 100644 --- a/docs/examples/0.9.x/client-android/examples/account/delete-session.md +++ b/docs/examples/0.9.x/client-android/kotlin/account/delete-session.md @@ -20,7 +20,7 @@ class MainActivity : AppCompatActivity() { val response = account.deleteSession( sessionId = "[SESSION_ID]" ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/account/delete-sessions.md b/docs/examples/0.9.x/client-android/kotlin/account/delete-sessions.md similarity index 92% rename from docs/examples/0.9.x/client-android/examples/account/delete-sessions.md rename to docs/examples/0.9.x/client-android/kotlin/account/delete-sessions.md index 1d451eccec..ec30efdb8f 100644 --- a/docs/examples/0.9.x/client-android/examples/account/delete-sessions.md +++ b/docs/examples/0.9.x/client-android/kotlin/account/delete-sessions.md @@ -18,7 +18,7 @@ class MainActivity : AppCompatActivity() { GlobalScope.launch { val response = account.deleteSessions() - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/account/delete.md b/docs/examples/0.9.x/client-android/kotlin/account/delete.md similarity index 92% rename from docs/examples/0.9.x/client-android/examples/account/delete.md rename to docs/examples/0.9.x/client-android/kotlin/account/delete.md index 962dda3095..7bfe95e88c 100644 --- a/docs/examples/0.9.x/client-android/examples/account/delete.md +++ b/docs/examples/0.9.x/client-android/kotlin/account/delete.md @@ -18,7 +18,7 @@ class MainActivity : AppCompatActivity() { GlobalScope.launch { val response = account.delete() - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/account/get-logs.md b/docs/examples/0.9.x/client-android/kotlin/account/get-logs.md similarity index 92% rename from docs/examples/0.9.x/client-android/examples/account/get-logs.md rename to docs/examples/0.9.x/client-android/kotlin/account/get-logs.md index 0515eb8b9c..9f79f0a790 100644 --- a/docs/examples/0.9.x/client-android/examples/account/get-logs.md +++ b/docs/examples/0.9.x/client-android/kotlin/account/get-logs.md @@ -18,7 +18,7 @@ class MainActivity : AppCompatActivity() { GlobalScope.launch { val response = account.getLogs() - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/account/get-prefs.md b/docs/examples/0.9.x/client-android/kotlin/account/get-prefs.md similarity index 92% rename from docs/examples/0.9.x/client-android/examples/account/get-prefs.md rename to docs/examples/0.9.x/client-android/kotlin/account/get-prefs.md index efab1b6179..9378cd2456 100644 --- a/docs/examples/0.9.x/client-android/examples/account/get-prefs.md +++ b/docs/examples/0.9.x/client-android/kotlin/account/get-prefs.md @@ -18,7 +18,7 @@ class MainActivity : AppCompatActivity() { GlobalScope.launch { val response = account.getPrefs() - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/account/get-session.md b/docs/examples/0.9.x/client-android/kotlin/account/get-session.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/account/get-session.md rename to docs/examples/0.9.x/client-android/kotlin/account/get-session.md index 8451d23b13..45f00b69fc 100644 --- a/docs/examples/0.9.x/client-android/examples/account/get-session.md +++ b/docs/examples/0.9.x/client-android/kotlin/account/get-session.md @@ -20,7 +20,7 @@ class MainActivity : AppCompatActivity() { val response = account.getSession( sessionId = "[SESSION_ID]" ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/account/get-sessions.md b/docs/examples/0.9.x/client-android/kotlin/account/get-sessions.md similarity index 92% rename from docs/examples/0.9.x/client-android/examples/account/get-sessions.md rename to docs/examples/0.9.x/client-android/kotlin/account/get-sessions.md index ca2723fe0d..4f939cc162 100644 --- a/docs/examples/0.9.x/client-android/examples/account/get-sessions.md +++ b/docs/examples/0.9.x/client-android/kotlin/account/get-sessions.md @@ -18,7 +18,7 @@ class MainActivity : AppCompatActivity() { GlobalScope.launch { val response = account.getSessions() - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/account/get.md b/docs/examples/0.9.x/client-android/kotlin/account/get.md similarity index 92% rename from docs/examples/0.9.x/client-android/examples/account/get.md rename to docs/examples/0.9.x/client-android/kotlin/account/get.md index 96c7ff7324..c4c81a20aa 100644 --- a/docs/examples/0.9.x/client-android/examples/account/get.md +++ b/docs/examples/0.9.x/client-android/kotlin/account/get.md @@ -18,7 +18,7 @@ class MainActivity : AppCompatActivity() { GlobalScope.launch { val response = account.get() - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/account/update-email.md b/docs/examples/0.9.x/client-android/kotlin/account/update-email.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/account/update-email.md rename to docs/examples/0.9.x/client-android/kotlin/account/update-email.md index b6d3615ce8..a9ec88b8a4 100644 --- a/docs/examples/0.9.x/client-android/examples/account/update-email.md +++ b/docs/examples/0.9.x/client-android/kotlin/account/update-email.md @@ -21,7 +21,7 @@ class MainActivity : AppCompatActivity() { email = "email@example.com", password = "password" ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/account/update-name.md b/docs/examples/0.9.x/client-android/kotlin/account/update-name.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/account/update-name.md rename to docs/examples/0.9.x/client-android/kotlin/account/update-name.md index 0ab74e42fa..ce9d8a368f 100644 --- a/docs/examples/0.9.x/client-android/examples/account/update-name.md +++ b/docs/examples/0.9.x/client-android/kotlin/account/update-name.md @@ -20,7 +20,7 @@ class MainActivity : AppCompatActivity() { val response = account.updateName( name = "[NAME]" ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/account/update-password.md b/docs/examples/0.9.x/client-android/kotlin/account/update-password.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/account/update-password.md rename to docs/examples/0.9.x/client-android/kotlin/account/update-password.md index 9c21ca790e..edee78eab9 100644 --- a/docs/examples/0.9.x/client-android/examples/account/update-password.md +++ b/docs/examples/0.9.x/client-android/kotlin/account/update-password.md @@ -20,7 +20,7 @@ class MainActivity : AppCompatActivity() { val response = account.updatePassword( password = "password", ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/account/update-prefs.md b/docs/examples/0.9.x/client-android/kotlin/account/update-prefs.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/account/update-prefs.md rename to docs/examples/0.9.x/client-android/kotlin/account/update-prefs.md index 481cc8064c..3059bc8196 100644 --- a/docs/examples/0.9.x/client-android/examples/account/update-prefs.md +++ b/docs/examples/0.9.x/client-android/kotlin/account/update-prefs.md @@ -20,7 +20,7 @@ class MainActivity : AppCompatActivity() { val response = account.updatePrefs( prefs = mapOf( "a" to "b" ) ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/account/update-recovery.md b/docs/examples/0.9.x/client-android/kotlin/account/update-recovery.md similarity index 94% rename from docs/examples/0.9.x/client-android/examples/account/update-recovery.md rename to docs/examples/0.9.x/client-android/kotlin/account/update-recovery.md index 726e8ad668..81c00b4f26 100644 --- a/docs/examples/0.9.x/client-android/examples/account/update-recovery.md +++ b/docs/examples/0.9.x/client-android/kotlin/account/update-recovery.md @@ -23,7 +23,7 @@ class MainActivity : AppCompatActivity() { password = "password", passwordAgain = "password" ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/account/update-verification.md b/docs/examples/0.9.x/client-android/kotlin/account/update-verification.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/account/update-verification.md rename to docs/examples/0.9.x/client-android/kotlin/account/update-verification.md index 832314a984..cea2592a73 100644 --- a/docs/examples/0.9.x/client-android/examples/account/update-verification.md +++ b/docs/examples/0.9.x/client-android/kotlin/account/update-verification.md @@ -21,7 +21,7 @@ class MainActivity : AppCompatActivity() { userId = "[USER_ID]", secret = "[SECRET]" ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/avatars/get-browser.md b/docs/examples/0.9.x/client-android/kotlin/avatars/get-browser.md similarity index 87% rename from docs/examples/0.9.x/client-android/examples/avatars/get-browser.md rename to docs/examples/0.9.x/client-android/kotlin/avatars/get-browser.md index 15e765ed43..95a2201d6a 100644 --- a/docs/examples/0.9.x/client-android/examples/avatars/get-browser.md +++ b/docs/examples/0.9.x/client-android/kotlin/avatars/get-browser.md @@ -17,10 +17,10 @@ class MainActivity : AppCompatActivity() { val avatars = Avatars(client) GlobalScope.launch { - val response = avatars.getBrowser( + val result = avatars.getBrowser( code = "aa", ) - val json = response.body?.string() + println(result); // Resource URL } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/avatars/get-credit-card.md b/docs/examples/0.9.x/client-android/kotlin/avatars/get-credit-card.md similarity index 87% rename from docs/examples/0.9.x/client-android/examples/avatars/get-credit-card.md rename to docs/examples/0.9.x/client-android/kotlin/avatars/get-credit-card.md index b31587bea4..7507c40c5c 100644 --- a/docs/examples/0.9.x/client-android/examples/avatars/get-credit-card.md +++ b/docs/examples/0.9.x/client-android/kotlin/avatars/get-credit-card.md @@ -17,10 +17,10 @@ class MainActivity : AppCompatActivity() { val avatars = Avatars(client) GlobalScope.launch { - val response = avatars.getCreditCard( + val result = avatars.getCreditCard( code = "amex", ) - val json = response.body?.string() + println(result); // Resource URL } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/avatars/get-favicon.md b/docs/examples/0.9.x/client-android/kotlin/avatars/get-favicon.md similarity index 88% rename from docs/examples/0.9.x/client-android/examples/avatars/get-favicon.md rename to docs/examples/0.9.x/client-android/kotlin/avatars/get-favicon.md index d17aab995d..f8e2b400a8 100644 --- a/docs/examples/0.9.x/client-android/examples/avatars/get-favicon.md +++ b/docs/examples/0.9.x/client-android/kotlin/avatars/get-favicon.md @@ -17,10 +17,10 @@ class MainActivity : AppCompatActivity() { val avatars = Avatars(client) GlobalScope.launch { - val response = avatars.getFavicon( + val result = avatars.getFavicon( url = "https://example.com" ) - val json = response.body?.string() + println(result); // Resource URL } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/avatars/get-flag.md b/docs/examples/0.9.x/client-android/kotlin/avatars/get-flag.md similarity index 88% rename from docs/examples/0.9.x/client-android/examples/avatars/get-flag.md rename to docs/examples/0.9.x/client-android/kotlin/avatars/get-flag.md index 7579ba0cf1..738ec8a91f 100644 --- a/docs/examples/0.9.x/client-android/examples/avatars/get-flag.md +++ b/docs/examples/0.9.x/client-android/kotlin/avatars/get-flag.md @@ -17,10 +17,10 @@ class MainActivity : AppCompatActivity() { val avatars = Avatars(client) GlobalScope.launch { - val response = avatars.getFlag( + val result = avatars.getFlag( code = "af", ) - val json = response.body?.string() + println(result); // Resource URL } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/avatars/get-image.md b/docs/examples/0.9.x/client-android/kotlin/avatars/get-image.md similarity index 88% rename from docs/examples/0.9.x/client-android/examples/avatars/get-image.md rename to docs/examples/0.9.x/client-android/kotlin/avatars/get-image.md index 21da7eeb7f..25171b1447 100644 --- a/docs/examples/0.9.x/client-android/examples/avatars/get-image.md +++ b/docs/examples/0.9.x/client-android/kotlin/avatars/get-image.md @@ -17,10 +17,10 @@ class MainActivity : AppCompatActivity() { val avatars = Avatars(client) GlobalScope.launch { - val response = avatars.getImage( + val result = avatars.getImage( url = "https://example.com", ) - val json = response.body?.string() + println(result); // Resource URL } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/avatars/get-initials.md b/docs/examples/0.9.x/client-android/kotlin/avatars/get-initials.md similarity index 87% rename from docs/examples/0.9.x/client-android/examples/avatars/get-initials.md rename to docs/examples/0.9.x/client-android/kotlin/avatars/get-initials.md index e0cdc47f25..e53a647b09 100644 --- a/docs/examples/0.9.x/client-android/examples/avatars/get-initials.md +++ b/docs/examples/0.9.x/client-android/kotlin/avatars/get-initials.md @@ -17,9 +17,9 @@ class MainActivity : AppCompatActivity() { val avatars = Avatars(client) GlobalScope.launch { - val response = avatars.getInitials( + val result = avatars.getInitials( ) - val json = response.body?.string() + println(result); // Resource URL } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/avatars/get-q-r.md b/docs/examples/0.9.x/client-android/kotlin/avatars/get-q-r.md similarity index 88% rename from docs/examples/0.9.x/client-android/examples/avatars/get-q-r.md rename to docs/examples/0.9.x/client-android/kotlin/avatars/get-q-r.md index e33584c452..c9d60ea9c7 100644 --- a/docs/examples/0.9.x/client-android/examples/avatars/get-q-r.md +++ b/docs/examples/0.9.x/client-android/kotlin/avatars/get-q-r.md @@ -17,10 +17,10 @@ class MainActivity : AppCompatActivity() { val avatars = Avatars(client) GlobalScope.launch { - val response = avatars.getQR( + val result = avatars.getQR( text = "[TEXT]", ) - val json = response.body?.string() + println(result); // Resource URL } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/database/create-document.md b/docs/examples/0.9.x/client-android/kotlin/database/create-document.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/database/create-document.md rename to docs/examples/0.9.x/client-android/kotlin/database/create-document.md index efae56ef5d..72ec7adab4 100644 --- a/docs/examples/0.9.x/client-android/examples/database/create-document.md +++ b/docs/examples/0.9.x/client-android/kotlin/database/create-document.md @@ -21,7 +21,7 @@ class MainActivity : AppCompatActivity() { collectionId = "[COLLECTION_ID]", data = mapOf( "a" to "b" ), ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/database/delete-document.md b/docs/examples/0.9.x/client-android/kotlin/database/delete-document.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/database/delete-document.md rename to docs/examples/0.9.x/client-android/kotlin/database/delete-document.md index a3e91c43e4..49a85c8ebb 100644 --- a/docs/examples/0.9.x/client-android/examples/database/delete-document.md +++ b/docs/examples/0.9.x/client-android/kotlin/database/delete-document.md @@ -21,7 +21,7 @@ class MainActivity : AppCompatActivity() { collectionId = "[COLLECTION_ID]", documentId = "[DOCUMENT_ID]" ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/database/get-document.md b/docs/examples/0.9.x/client-android/kotlin/database/get-document.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/database/get-document.md rename to docs/examples/0.9.x/client-android/kotlin/database/get-document.md index 0b8b2b1a4f..3dd65c085d 100644 --- a/docs/examples/0.9.x/client-android/examples/database/get-document.md +++ b/docs/examples/0.9.x/client-android/kotlin/database/get-document.md @@ -21,7 +21,7 @@ class MainActivity : AppCompatActivity() { collectionId = "[COLLECTION_ID]", documentId = "[DOCUMENT_ID]" ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/database/list-documents.md b/docs/examples/0.9.x/client-android/kotlin/database/list-documents.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/database/list-documents.md rename to docs/examples/0.9.x/client-android/kotlin/database/list-documents.md index d334283904..65119819fd 100644 --- a/docs/examples/0.9.x/client-android/examples/database/list-documents.md +++ b/docs/examples/0.9.x/client-android/kotlin/database/list-documents.md @@ -20,7 +20,7 @@ class MainActivity : AppCompatActivity() { val response = database.listDocuments( collectionId = "[COLLECTION_ID]", ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/database/update-document.md b/docs/examples/0.9.x/client-android/kotlin/database/update-document.md similarity index 94% rename from docs/examples/0.9.x/client-android/examples/database/update-document.md rename to docs/examples/0.9.x/client-android/kotlin/database/update-document.md index 2c62eb9061..e19ce4a994 100644 --- a/docs/examples/0.9.x/client-android/examples/database/update-document.md +++ b/docs/examples/0.9.x/client-android/kotlin/database/update-document.md @@ -22,7 +22,7 @@ class MainActivity : AppCompatActivity() { documentId = "[DOCUMENT_ID]", data = mapOf( "a" to "b" ), ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/functions/create-execution.md b/docs/examples/0.9.x/client-android/kotlin/functions/create-execution.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/functions/create-execution.md rename to docs/examples/0.9.x/client-android/kotlin/functions/create-execution.md index f9bad8dd3d..3a7e599f8c 100644 --- a/docs/examples/0.9.x/client-android/examples/functions/create-execution.md +++ b/docs/examples/0.9.x/client-android/kotlin/functions/create-execution.md @@ -20,7 +20,7 @@ class MainActivity : AppCompatActivity() { val response = functions.createExecution( functionId = "[FUNCTION_ID]", ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/functions/get-execution.md b/docs/examples/0.9.x/client-android/kotlin/functions/get-execution.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/functions/get-execution.md rename to docs/examples/0.9.x/client-android/kotlin/functions/get-execution.md index ee2b48c8e8..781f26c743 100644 --- a/docs/examples/0.9.x/client-android/examples/functions/get-execution.md +++ b/docs/examples/0.9.x/client-android/kotlin/functions/get-execution.md @@ -21,7 +21,7 @@ class MainActivity : AppCompatActivity() { functionId = "[FUNCTION_ID]", executionId = "[EXECUTION_ID]" ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/functions/list-executions.md b/docs/examples/0.9.x/client-android/kotlin/functions/list-executions.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/functions/list-executions.md rename to docs/examples/0.9.x/client-android/kotlin/functions/list-executions.md index 43e6573783..4f11574f0d 100644 --- a/docs/examples/0.9.x/client-android/examples/functions/list-executions.md +++ b/docs/examples/0.9.x/client-android/kotlin/functions/list-executions.md @@ -20,7 +20,7 @@ class MainActivity : AppCompatActivity() { val response = functions.listExecutions( functionId = "[FUNCTION_ID]", ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/locale/get-continents.md b/docs/examples/0.9.x/client-android/kotlin/locale/get-continents.md similarity index 92% rename from docs/examples/0.9.x/client-android/examples/locale/get-continents.md rename to docs/examples/0.9.x/client-android/kotlin/locale/get-continents.md index 9e69797b6c..faf1448d73 100644 --- a/docs/examples/0.9.x/client-android/examples/locale/get-continents.md +++ b/docs/examples/0.9.x/client-android/kotlin/locale/get-continents.md @@ -18,7 +18,7 @@ class MainActivity : AppCompatActivity() { GlobalScope.launch { val response = locale.getContinents() - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/locale/get-countries-e-u.md b/docs/examples/0.9.x/client-android/kotlin/locale/get-countries-e-u.md similarity index 92% rename from docs/examples/0.9.x/client-android/examples/locale/get-countries-e-u.md rename to docs/examples/0.9.x/client-android/kotlin/locale/get-countries-e-u.md index 146fcb4948..5a3552f1a7 100644 --- a/docs/examples/0.9.x/client-android/examples/locale/get-countries-e-u.md +++ b/docs/examples/0.9.x/client-android/kotlin/locale/get-countries-e-u.md @@ -18,7 +18,7 @@ class MainActivity : AppCompatActivity() { GlobalScope.launch { val response = locale.getCountriesEU() - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/locale/get-countries-phones.md b/docs/examples/0.9.x/client-android/kotlin/locale/get-countries-phones.md similarity index 92% rename from docs/examples/0.9.x/client-android/examples/locale/get-countries-phones.md rename to docs/examples/0.9.x/client-android/kotlin/locale/get-countries-phones.md index 71179957e7..565097ef4b 100644 --- a/docs/examples/0.9.x/client-android/examples/locale/get-countries-phones.md +++ b/docs/examples/0.9.x/client-android/kotlin/locale/get-countries-phones.md @@ -18,7 +18,7 @@ class MainActivity : AppCompatActivity() { GlobalScope.launch { val response = locale.getCountriesPhones() - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/locale/get-countries.md b/docs/examples/0.9.x/client-android/kotlin/locale/get-countries.md similarity index 92% rename from docs/examples/0.9.x/client-android/examples/locale/get-countries.md rename to docs/examples/0.9.x/client-android/kotlin/locale/get-countries.md index 56d84188b1..e327c14ab8 100644 --- a/docs/examples/0.9.x/client-android/examples/locale/get-countries.md +++ b/docs/examples/0.9.x/client-android/kotlin/locale/get-countries.md @@ -18,7 +18,7 @@ class MainActivity : AppCompatActivity() { GlobalScope.launch { val response = locale.getCountries() - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/locale/get-currencies.md b/docs/examples/0.9.x/client-android/kotlin/locale/get-currencies.md similarity index 92% rename from docs/examples/0.9.x/client-android/examples/locale/get-currencies.md rename to docs/examples/0.9.x/client-android/kotlin/locale/get-currencies.md index a4bb2b6a1c..00e11999e6 100644 --- a/docs/examples/0.9.x/client-android/examples/locale/get-currencies.md +++ b/docs/examples/0.9.x/client-android/kotlin/locale/get-currencies.md @@ -18,7 +18,7 @@ class MainActivity : AppCompatActivity() { GlobalScope.launch { val response = locale.getCurrencies() - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/locale/get-languages.md b/docs/examples/0.9.x/client-android/kotlin/locale/get-languages.md similarity index 92% rename from docs/examples/0.9.x/client-android/examples/locale/get-languages.md rename to docs/examples/0.9.x/client-android/kotlin/locale/get-languages.md index ed1d41a54d..796747a00d 100644 --- a/docs/examples/0.9.x/client-android/examples/locale/get-languages.md +++ b/docs/examples/0.9.x/client-android/kotlin/locale/get-languages.md @@ -18,7 +18,7 @@ class MainActivity : AppCompatActivity() { GlobalScope.launch { val response = locale.getLanguages() - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/locale/get.md b/docs/examples/0.9.x/client-android/kotlin/locale/get.md similarity index 92% rename from docs/examples/0.9.x/client-android/examples/locale/get.md rename to docs/examples/0.9.x/client-android/kotlin/locale/get.md index fb6bf9858d..f89c66a7ed 100644 --- a/docs/examples/0.9.x/client-android/examples/locale/get.md +++ b/docs/examples/0.9.x/client-android/kotlin/locale/get.md @@ -18,7 +18,7 @@ class MainActivity : AppCompatActivity() { GlobalScope.launch { val response = locale.get() - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/storage/create-file.md b/docs/examples/0.9.x/client-android/kotlin/storage/create-file.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/storage/create-file.md rename to docs/examples/0.9.x/client-android/kotlin/storage/create-file.md index 680e332419..92a5e957ae 100644 --- a/docs/examples/0.9.x/client-android/examples/storage/create-file.md +++ b/docs/examples/0.9.x/client-android/kotlin/storage/create-file.md @@ -20,7 +20,7 @@ class MainActivity : AppCompatActivity() { val response = storage.createFile( file = File("./path-to-files/image.jpg"), ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/storage/delete-file.md b/docs/examples/0.9.x/client-android/kotlin/storage/delete-file.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/storage/delete-file.md rename to docs/examples/0.9.x/client-android/kotlin/storage/delete-file.md index 7fcb393491..f26acacc21 100644 --- a/docs/examples/0.9.x/client-android/examples/storage/delete-file.md +++ b/docs/examples/0.9.x/client-android/kotlin/storage/delete-file.md @@ -20,7 +20,7 @@ class MainActivity : AppCompatActivity() { val response = storage.deleteFile( fileId = "[FILE_ID]" ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/storage/get-file-download.md b/docs/examples/0.9.x/client-android/kotlin/storage/get-file-download.md similarity index 87% rename from docs/examples/0.9.x/client-android/examples/storage/get-file-download.md rename to docs/examples/0.9.x/client-android/kotlin/storage/get-file-download.md index 3c4bfba324..b7d3d4a691 100644 --- a/docs/examples/0.9.x/client-android/examples/storage/get-file-download.md +++ b/docs/examples/0.9.x/client-android/kotlin/storage/get-file-download.md @@ -17,10 +17,10 @@ class MainActivity : AppCompatActivity() { val storage = Storage(client) GlobalScope.launch { - val response = storage.getFileDownload( + val result = storage.getFileDownload( fileId = "[FILE_ID]" ) - val json = response.body?.string() + println(result); // Resource URL } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/storage/get-file-preview.md b/docs/examples/0.9.x/client-android/kotlin/storage/get-file-preview.md similarity index 87% rename from docs/examples/0.9.x/client-android/examples/storage/get-file-preview.md rename to docs/examples/0.9.x/client-android/kotlin/storage/get-file-preview.md index 2a4d30e9bd..9f1d459139 100644 --- a/docs/examples/0.9.x/client-android/examples/storage/get-file-preview.md +++ b/docs/examples/0.9.x/client-android/kotlin/storage/get-file-preview.md @@ -17,10 +17,10 @@ class MainActivity : AppCompatActivity() { val storage = Storage(client) GlobalScope.launch { - val response = storage.getFilePreview( + val result = storage.getFilePreview( fileId = "[FILE_ID]", ) - val json = response.body?.string() + println(result); // Resource URL } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/storage/get-file-view.md b/docs/examples/0.9.x/client-android/kotlin/storage/get-file-view.md similarity index 87% rename from docs/examples/0.9.x/client-android/examples/storage/get-file-view.md rename to docs/examples/0.9.x/client-android/kotlin/storage/get-file-view.md index de752a953a..0b4fe07f47 100644 --- a/docs/examples/0.9.x/client-android/examples/storage/get-file-view.md +++ b/docs/examples/0.9.x/client-android/kotlin/storage/get-file-view.md @@ -17,10 +17,10 @@ class MainActivity : AppCompatActivity() { val storage = Storage(client) GlobalScope.launch { - val response = storage.getFileView( + val result = storage.getFileView( fileId = "[FILE_ID]" ) - val json = response.body?.string() + println(result); // Resource URL } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/storage/get-file.md b/docs/examples/0.9.x/client-android/kotlin/storage/get-file.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/storage/get-file.md rename to docs/examples/0.9.x/client-android/kotlin/storage/get-file.md index b2657e843c..b534d3befa 100644 --- a/docs/examples/0.9.x/client-android/examples/storage/get-file.md +++ b/docs/examples/0.9.x/client-android/kotlin/storage/get-file.md @@ -20,7 +20,7 @@ class MainActivity : AppCompatActivity() { val response = storage.getFile( fileId = "[FILE_ID]" ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/storage/list-files.md b/docs/examples/0.9.x/client-android/kotlin/storage/list-files.md similarity index 92% rename from docs/examples/0.9.x/client-android/examples/storage/list-files.md rename to docs/examples/0.9.x/client-android/kotlin/storage/list-files.md index 0b43d3b432..7d63837a67 100644 --- a/docs/examples/0.9.x/client-android/examples/storage/list-files.md +++ b/docs/examples/0.9.x/client-android/kotlin/storage/list-files.md @@ -19,7 +19,7 @@ class MainActivity : AppCompatActivity() { GlobalScope.launch { val response = storage.listFiles( ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/storage/update-file.md b/docs/examples/0.9.x/client-android/kotlin/storage/update-file.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/storage/update-file.md rename to docs/examples/0.9.x/client-android/kotlin/storage/update-file.md index 94e492a523..31dfb38b3e 100644 --- a/docs/examples/0.9.x/client-android/examples/storage/update-file.md +++ b/docs/examples/0.9.x/client-android/kotlin/storage/update-file.md @@ -22,7 +22,7 @@ class MainActivity : AppCompatActivity() { read = listOf(), write = listOf() ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/teams/create-membership.md b/docs/examples/0.9.x/client-android/kotlin/teams/create-membership.md similarity index 94% rename from docs/examples/0.9.x/client-android/examples/teams/create-membership.md rename to docs/examples/0.9.x/client-android/kotlin/teams/create-membership.md index 4c9b2c4be1..e2b7d16bfc 100644 --- a/docs/examples/0.9.x/client-android/examples/teams/create-membership.md +++ b/docs/examples/0.9.x/client-android/kotlin/teams/create-membership.md @@ -23,7 +23,7 @@ class MainActivity : AppCompatActivity() { roles = listOf(), url = "https://example.com", ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/teams/create.md b/docs/examples/0.9.x/client-android/kotlin/teams/create.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/teams/create.md rename to docs/examples/0.9.x/client-android/kotlin/teams/create.md index 6b53502ead..068fbd66c4 100644 --- a/docs/examples/0.9.x/client-android/examples/teams/create.md +++ b/docs/examples/0.9.x/client-android/kotlin/teams/create.md @@ -20,7 +20,7 @@ class MainActivity : AppCompatActivity() { val response = teams.create( name = "[NAME]", ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/teams/delete-membership.md b/docs/examples/0.9.x/client-android/kotlin/teams/delete-membership.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/teams/delete-membership.md rename to docs/examples/0.9.x/client-android/kotlin/teams/delete-membership.md index 099583196f..6545af5de7 100644 --- a/docs/examples/0.9.x/client-android/examples/teams/delete-membership.md +++ b/docs/examples/0.9.x/client-android/kotlin/teams/delete-membership.md @@ -21,7 +21,7 @@ class MainActivity : AppCompatActivity() { teamId = "[TEAM_ID]", membershipId = "[MEMBERSHIP_ID]" ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/teams/delete.md b/docs/examples/0.9.x/client-android/kotlin/teams/delete.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/teams/delete.md rename to docs/examples/0.9.x/client-android/kotlin/teams/delete.md index a5c0d1469e..de12449562 100644 --- a/docs/examples/0.9.x/client-android/examples/teams/delete.md +++ b/docs/examples/0.9.x/client-android/kotlin/teams/delete.md @@ -20,7 +20,7 @@ class MainActivity : AppCompatActivity() { val response = teams.delete( teamId = "[TEAM_ID]" ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/teams/get-memberships.md b/docs/examples/0.9.x/client-android/kotlin/teams/get-memberships.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/teams/get-memberships.md rename to docs/examples/0.9.x/client-android/kotlin/teams/get-memberships.md index a16950a227..89b4f54559 100644 --- a/docs/examples/0.9.x/client-android/examples/teams/get-memberships.md +++ b/docs/examples/0.9.x/client-android/kotlin/teams/get-memberships.md @@ -20,7 +20,7 @@ class MainActivity : AppCompatActivity() { val response = teams.getMemberships( teamId = "[TEAM_ID]", ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/teams/get.md b/docs/examples/0.9.x/client-android/kotlin/teams/get.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/teams/get.md rename to docs/examples/0.9.x/client-android/kotlin/teams/get.md index ecbed31524..54550b3ed6 100644 --- a/docs/examples/0.9.x/client-android/examples/teams/get.md +++ b/docs/examples/0.9.x/client-android/kotlin/teams/get.md @@ -20,7 +20,7 @@ class MainActivity : AppCompatActivity() { val response = teams.get( teamId = "[TEAM_ID]" ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/teams/list.md b/docs/examples/0.9.x/client-android/kotlin/teams/list.md similarity index 92% rename from docs/examples/0.9.x/client-android/examples/teams/list.md rename to docs/examples/0.9.x/client-android/kotlin/teams/list.md index 3d25f922b8..6444205472 100644 --- a/docs/examples/0.9.x/client-android/examples/teams/list.md +++ b/docs/examples/0.9.x/client-android/kotlin/teams/list.md @@ -19,7 +19,7 @@ class MainActivity : AppCompatActivity() { GlobalScope.launch { val response = teams.list( ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/teams/update-membership-roles.md b/docs/examples/0.9.x/client-android/kotlin/teams/update-membership-roles.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/teams/update-membership-roles.md rename to docs/examples/0.9.x/client-android/kotlin/teams/update-membership-roles.md index acc874eb22..d9a8a41895 100644 --- a/docs/examples/0.9.x/client-android/examples/teams/update-membership-roles.md +++ b/docs/examples/0.9.x/client-android/kotlin/teams/update-membership-roles.md @@ -22,7 +22,7 @@ class MainActivity : AppCompatActivity() { membershipId = "[MEMBERSHIP_ID]", roles = listOf() ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/teams/update-membership-status.md b/docs/examples/0.9.x/client-android/kotlin/teams/update-membership-status.md similarity index 94% rename from docs/examples/0.9.x/client-android/examples/teams/update-membership-status.md rename to docs/examples/0.9.x/client-android/kotlin/teams/update-membership-status.md index 94dfd88fde..f8e10fdafc 100644 --- a/docs/examples/0.9.x/client-android/examples/teams/update-membership-status.md +++ b/docs/examples/0.9.x/client-android/kotlin/teams/update-membership-status.md @@ -23,7 +23,7 @@ class MainActivity : AppCompatActivity() { userId = "[USER_ID]", secret = "[SECRET]" ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/client-android/examples/teams/update.md b/docs/examples/0.9.x/client-android/kotlin/teams/update.md similarity index 93% rename from docs/examples/0.9.x/client-android/examples/teams/update.md rename to docs/examples/0.9.x/client-android/kotlin/teams/update.md index a9a2c49bf6..59dd69f081 100644 --- a/docs/examples/0.9.x/client-android/examples/teams/update.md +++ b/docs/examples/0.9.x/client-android/kotlin/teams/update.md @@ -21,7 +21,7 @@ class MainActivity : AppCompatActivity() { teamId = "[TEAM_ID]", name = "[NAME]" ) - val json = response.body?.string() + val json = response.body?.string() } } } \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/account/create-recovery.md b/docs/examples/0.9.x/server-kotlin/java/account/create-recovery.md new file mode 100644 index 0000000000..f6563c3f12 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/account/create-recovery.md @@ -0,0 +1,37 @@ +import io.appwrite.Client +import io.appwrite.services.Account + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."); // Your secret JSON Web Token + + Account account = new Account(client); + account.createRecovery( + "email@example.com", + "https://example.com" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/account/create-verification.md b/docs/examples/0.9.x/server-kotlin/java/account/create-verification.md new file mode 100644 index 0000000000..3ccaba861c --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/account/create-verification.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Account + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."); // Your secret JSON Web Token + + Account account = new Account(client); + account.createVerification( + "https://example.com" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/account/delete-session.md b/docs/examples/0.9.x/server-kotlin/java/account/delete-session.md new file mode 100644 index 0000000000..96628f92c7 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/account/delete-session.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Account + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."); // Your secret JSON Web Token + + Account account = new Account(client); + account.deleteSession( + "[SESSION_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/account/delete-sessions.md b/docs/examples/0.9.x/server-kotlin/java/account/delete-sessions.md new file mode 100644 index 0000000000..ae9bbc95dc --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/account/delete-sessions.md @@ -0,0 +1,33 @@ +import io.appwrite.Client +import io.appwrite.services.Account + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."); // Your secret JSON Web Token + + Account account = new Account(client); + account.deleteSessions(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/account/delete.md b/docs/examples/0.9.x/server-kotlin/java/account/delete.md new file mode 100644 index 0000000000..17db76c4d3 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/account/delete.md @@ -0,0 +1,33 @@ +import io.appwrite.Client +import io.appwrite.services.Account + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."); // Your secret JSON Web Token + + Account account = new Account(client); + account.delete(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/account/get-logs.md b/docs/examples/0.9.x/server-kotlin/java/account/get-logs.md new file mode 100644 index 0000000000..df4f150275 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/account/get-logs.md @@ -0,0 +1,33 @@ +import io.appwrite.Client +import io.appwrite.services.Account + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."); // Your secret JSON Web Token + + Account account = new Account(client); + account.getLogs(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/account/get-prefs.md b/docs/examples/0.9.x/server-kotlin/java/account/get-prefs.md new file mode 100644 index 0000000000..4f1a7c081c --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/account/get-prefs.md @@ -0,0 +1,33 @@ +import io.appwrite.Client +import io.appwrite.services.Account + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."); // Your secret JSON Web Token + + Account account = new Account(client); + account.getPrefs(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/account/get-session.md b/docs/examples/0.9.x/server-kotlin/java/account/get-session.md new file mode 100644 index 0000000000..d99f4f98f2 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/account/get-session.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Account + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."); // Your secret JSON Web Token + + Account account = new Account(client); + account.getSession( + "[SESSION_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/account/get-sessions.md b/docs/examples/0.9.x/server-kotlin/java/account/get-sessions.md new file mode 100644 index 0000000000..561267ab6d --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/account/get-sessions.md @@ -0,0 +1,33 @@ +import io.appwrite.Client +import io.appwrite.services.Account + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."); // Your secret JSON Web Token + + Account account = new Account(client); + account.getSessions(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/account/get.md b/docs/examples/0.9.x/server-kotlin/java/account/get.md new file mode 100644 index 0000000000..513a719a8a --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/account/get.md @@ -0,0 +1,33 @@ +import io.appwrite.Client +import io.appwrite.services.Account + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."); // Your secret JSON Web Token + + Account account = new Account(client); + account.get(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/account/update-email.md b/docs/examples/0.9.x/server-kotlin/java/account/update-email.md new file mode 100644 index 0000000000..9017a8f239 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/account/update-email.md @@ -0,0 +1,37 @@ +import io.appwrite.Client +import io.appwrite.services.Account + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."); // Your secret JSON Web Token + + Account account = new Account(client); + account.updateEmail( + "email@example.com", + "password" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/account/update-name.md b/docs/examples/0.9.x/server-kotlin/java/account/update-name.md new file mode 100644 index 0000000000..58291fe7d3 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/account/update-name.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Account + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."); // Your secret JSON Web Token + + Account account = new Account(client); + account.updateName( + "[NAME]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/account/update-password.md b/docs/examples/0.9.x/server-kotlin/java/account/update-password.md new file mode 100644 index 0000000000..6d460b5de1 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/account/update-password.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Account + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."); // Your secret JSON Web Token + + Account account = new Account(client); + account.updatePassword( + "password", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/account/update-prefs.md b/docs/examples/0.9.x/server-kotlin/java/account/update-prefs.md new file mode 100644 index 0000000000..6cc967c4cc --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/account/update-prefs.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Account + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."); // Your secret JSON Web Token + + Account account = new Account(client); + account.updatePrefs( + mapOf( "a" to "b" ) + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/account/update-recovery.md b/docs/examples/0.9.x/server-kotlin/java/account/update-recovery.md new file mode 100644 index 0000000000..4a77021b00 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/account/update-recovery.md @@ -0,0 +1,39 @@ +import io.appwrite.Client +import io.appwrite.services.Account + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."); // Your secret JSON Web Token + + Account account = new Account(client); + account.updateRecovery( + "[USER_ID]", + "[SECRET]", + "password", + "password" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/account/update-verification.md b/docs/examples/0.9.x/server-kotlin/java/account/update-verification.md new file mode 100644 index 0000000000..cb2d467c42 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/account/update-verification.md @@ -0,0 +1,37 @@ +import io.appwrite.Client +import io.appwrite.services.Account + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."); // Your secret JSON Web Token + + Account account = new Account(client); + account.updateVerification( + "[USER_ID]", + "[SECRET]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/avatars/get-browser.md b/docs/examples/0.9.x/server-kotlin/java/avatars/get-browser.md new file mode 100644 index 0000000000..5400828c2a --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/avatars/get-browser.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Avatars + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Avatars avatars = new Avatars(client); + avatars.getBrowser( + "aa", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/avatars/get-credit-card.md b/docs/examples/0.9.x/server-kotlin/java/avatars/get-credit-card.md new file mode 100644 index 0000000000..9f2a02e360 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/avatars/get-credit-card.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Avatars + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Avatars avatars = new Avatars(client); + avatars.getCreditCard( + "amex", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/avatars/get-favicon.md b/docs/examples/0.9.x/server-kotlin/java/avatars/get-favicon.md new file mode 100644 index 0000000000..d713cfc3bf --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/avatars/get-favicon.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Avatars + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Avatars avatars = new Avatars(client); + avatars.getFavicon( + "https://example.com" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/avatars/get-flag.md b/docs/examples/0.9.x/server-kotlin/java/avatars/get-flag.md new file mode 100644 index 0000000000..31c5e5cef3 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/avatars/get-flag.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Avatars + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Avatars avatars = new Avatars(client); + avatars.getFlag( + "af", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/avatars/get-image.md b/docs/examples/0.9.x/server-kotlin/java/avatars/get-image.md new file mode 100644 index 0000000000..3c84fb04b1 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/avatars/get-image.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Avatars + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Avatars avatars = new Avatars(client); + avatars.getImage( + "https://example.com", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/avatars/get-initials.md b/docs/examples/0.9.x/server-kotlin/java/avatars/get-initials.md new file mode 100644 index 0000000000..906f1a62db --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/avatars/get-initials.md @@ -0,0 +1,35 @@ +import io.appwrite.Client +import io.appwrite.services.Avatars + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Avatars avatars = new Avatars(client); + avatars.getInitials( + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/avatars/get-q-r.md b/docs/examples/0.9.x/server-kotlin/java/avatars/get-q-r.md new file mode 100644 index 0000000000..30559ae369 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/avatars/get-q-r.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Avatars + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Avatars avatars = new Avatars(client); + avatars.getQR( + "[TEXT]", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/database/create-collection.md b/docs/examples/0.9.x/server-kotlin/java/database/create-collection.md new file mode 100644 index 0000000000..4492ce25ca --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/database/create-collection.md @@ -0,0 +1,39 @@ +import io.appwrite.Client +import io.appwrite.services.Database + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Database database = new Database(client); + database.createCollection( + "[NAME]", + listOf(), + listOf(), + listOf() + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/database/create-document.md b/docs/examples/0.9.x/server-kotlin/java/database/create-document.md new file mode 100644 index 0000000000..03e0cafd3a --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/database/create-document.md @@ -0,0 +1,37 @@ +import io.appwrite.Client +import io.appwrite.services.Database + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Database database = new Database(client); + database.createDocument( + "[COLLECTION_ID]", + mapOf( "a" to "b" ), + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/database/delete-collection.md b/docs/examples/0.9.x/server-kotlin/java/database/delete-collection.md new file mode 100644 index 0000000000..d0dd0cac77 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/database/delete-collection.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Database + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Database database = new Database(client); + database.deleteCollection( + "[COLLECTION_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/database/delete-document.md b/docs/examples/0.9.x/server-kotlin/java/database/delete-document.md new file mode 100644 index 0000000000..de39f36d5d --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/database/delete-document.md @@ -0,0 +1,37 @@ +import io.appwrite.Client +import io.appwrite.services.Database + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Database database = new Database(client); + database.deleteDocument( + "[COLLECTION_ID]", + "[DOCUMENT_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/database/get-collection.md b/docs/examples/0.9.x/server-kotlin/java/database/get-collection.md new file mode 100644 index 0000000000..be4e39dab9 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/database/get-collection.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Database + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Database database = new Database(client); + database.getCollection( + "[COLLECTION_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/database/get-document.md b/docs/examples/0.9.x/server-kotlin/java/database/get-document.md new file mode 100644 index 0000000000..b92c404f69 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/database/get-document.md @@ -0,0 +1,37 @@ +import io.appwrite.Client +import io.appwrite.services.Database + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Database database = new Database(client); + database.getDocument( + "[COLLECTION_ID]", + "[DOCUMENT_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/database/list-collections.md b/docs/examples/0.9.x/server-kotlin/java/database/list-collections.md new file mode 100644 index 0000000000..6d0fe9ad02 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/database/list-collections.md @@ -0,0 +1,35 @@ +import io.appwrite.Client +import io.appwrite.services.Database + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Database database = new Database(client); + database.listCollections( + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/database/list-documents.md b/docs/examples/0.9.x/server-kotlin/java/database/list-documents.md new file mode 100644 index 0000000000..25bc741f11 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/database/list-documents.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Database + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Database database = new Database(client); + database.listDocuments( + "[COLLECTION_ID]", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/database/update-collection.md b/docs/examples/0.9.x/server-kotlin/java/database/update-collection.md new file mode 100644 index 0000000000..db9fd9e325 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/database/update-collection.md @@ -0,0 +1,37 @@ +import io.appwrite.Client +import io.appwrite.services.Database + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Database database = new Database(client); + database.updateCollection( + "[COLLECTION_ID]", + "[NAME]", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/database/update-document.md b/docs/examples/0.9.x/server-kotlin/java/database/update-document.md new file mode 100644 index 0000000000..ca8399609f --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/database/update-document.md @@ -0,0 +1,38 @@ +import io.appwrite.Client +import io.appwrite.services.Database + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Database database = new Database(client); + database.updateDocument( + "[COLLECTION_ID]", + "[DOCUMENT_ID]", + mapOf( "a" to "b" ), + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/functions/create-execution.md b/docs/examples/0.9.x/server-kotlin/java/functions/create-execution.md new file mode 100644 index 0000000000..f71c52554a --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/functions/create-execution.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Functions + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Functions functions = new Functions(client); + functions.createExecution( + "[FUNCTION_ID]", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/functions/create-tag.md b/docs/examples/0.9.x/server-kotlin/java/functions/create-tag.md new file mode 100644 index 0000000000..d6252f3425 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/functions/create-tag.md @@ -0,0 +1,38 @@ +import io.appwrite.Client +import io.appwrite.services.Functions + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Functions functions = new Functions(client); + functions.createTag( + "[FUNCTION_ID]", + "[COMMAND]", + File("./path-to-files/image.jpg") + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/functions/create.md b/docs/examples/0.9.x/server-kotlin/java/functions/create.md new file mode 100644 index 0000000000..2d02c2a066 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/functions/create.md @@ -0,0 +1,38 @@ +import io.appwrite.Client +import io.appwrite.services.Functions + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Functions functions = new Functions(client); + functions.create( + "[NAME]", + listOf(), + "java-11.0", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/functions/delete-tag.md b/docs/examples/0.9.x/server-kotlin/java/functions/delete-tag.md new file mode 100644 index 0000000000..b1b32f43cf --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/functions/delete-tag.md @@ -0,0 +1,37 @@ +import io.appwrite.Client +import io.appwrite.services.Functions + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Functions functions = new Functions(client); + functions.deleteTag( + "[FUNCTION_ID]", + "[TAG_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/functions/delete.md b/docs/examples/0.9.x/server-kotlin/java/functions/delete.md new file mode 100644 index 0000000000..d6ac9c3a66 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/functions/delete.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Functions + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Functions functions = new Functions(client); + functions.delete( + "[FUNCTION_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/functions/get-execution.md b/docs/examples/0.9.x/server-kotlin/java/functions/get-execution.md new file mode 100644 index 0000000000..9cf872a793 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/functions/get-execution.md @@ -0,0 +1,37 @@ +import io.appwrite.Client +import io.appwrite.services.Functions + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Functions functions = new Functions(client); + functions.getExecution( + "[FUNCTION_ID]", + "[EXECUTION_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/functions/get-tag.md b/docs/examples/0.9.x/server-kotlin/java/functions/get-tag.md new file mode 100644 index 0000000000..290730d383 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/functions/get-tag.md @@ -0,0 +1,37 @@ +import io.appwrite.Client +import io.appwrite.services.Functions + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Functions functions = new Functions(client); + functions.getTag( + "[FUNCTION_ID]", + "[TAG_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/functions/get.md b/docs/examples/0.9.x/server-kotlin/java/functions/get.md new file mode 100644 index 0000000000..96d0eba931 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/functions/get.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Functions + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Functions functions = new Functions(client); + functions.get( + "[FUNCTION_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/functions/list-executions.md b/docs/examples/0.9.x/server-kotlin/java/functions/list-executions.md new file mode 100644 index 0000000000..412d78bf88 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/functions/list-executions.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Functions + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Functions functions = new Functions(client); + functions.listExecutions( + "[FUNCTION_ID]", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/functions/list-tags.md b/docs/examples/0.9.x/server-kotlin/java/functions/list-tags.md new file mode 100644 index 0000000000..3982c7dfc2 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/functions/list-tags.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Functions + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Functions functions = new Functions(client); + functions.listTags( + "[FUNCTION_ID]", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/functions/list.md b/docs/examples/0.9.x/server-kotlin/java/functions/list.md new file mode 100644 index 0000000000..a23792d898 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/functions/list.md @@ -0,0 +1,35 @@ +import io.appwrite.Client +import io.appwrite.services.Functions + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Functions functions = new Functions(client); + functions.list( + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/functions/update-tag.md b/docs/examples/0.9.x/server-kotlin/java/functions/update-tag.md new file mode 100644 index 0000000000..5266d0e963 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/functions/update-tag.md @@ -0,0 +1,37 @@ +import io.appwrite.Client +import io.appwrite.services.Functions + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Functions functions = new Functions(client); + functions.updateTag( + "[FUNCTION_ID]", + "[TAG]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/functions/update.md b/docs/examples/0.9.x/server-kotlin/java/functions/update.md new file mode 100644 index 0000000000..ac5c3c8e3d --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/functions/update.md @@ -0,0 +1,38 @@ +import io.appwrite.Client +import io.appwrite.services.Functions + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Functions functions = new Functions(client); + functions.update( + "[FUNCTION_ID]", + "[NAME]", + listOf(), + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/health/get-anti-virus.md b/docs/examples/0.9.x/server-kotlin/java/health/get-anti-virus.md new file mode 100644 index 0000000000..8cca86bc26 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/health/get-anti-virus.md @@ -0,0 +1,33 @@ +import io.appwrite.Client +import io.appwrite.services.Health + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Health health = new Health(client); + health.getAntiVirus(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/health/get-cache.md b/docs/examples/0.9.x/server-kotlin/java/health/get-cache.md new file mode 100644 index 0000000000..b5fb7e72de --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/health/get-cache.md @@ -0,0 +1,33 @@ +import io.appwrite.Client +import io.appwrite.services.Health + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Health health = new Health(client); + health.getCache(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/health/get-d-b.md b/docs/examples/0.9.x/server-kotlin/java/health/get-d-b.md new file mode 100644 index 0000000000..6d835fa52b --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/health/get-d-b.md @@ -0,0 +1,33 @@ +import io.appwrite.Client +import io.appwrite.services.Health + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Health health = new Health(client); + health.getDB(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/health/get-queue-certificates.md b/docs/examples/0.9.x/server-kotlin/java/health/get-queue-certificates.md new file mode 100644 index 0000000000..3498cb1e67 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/health/get-queue-certificates.md @@ -0,0 +1,33 @@ +import io.appwrite.Client +import io.appwrite.services.Health + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Health health = new Health(client); + health.getQueueCertificates(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/health/get-queue-functions.md b/docs/examples/0.9.x/server-kotlin/java/health/get-queue-functions.md new file mode 100644 index 0000000000..b89d2dd6cb --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/health/get-queue-functions.md @@ -0,0 +1,33 @@ +import io.appwrite.Client +import io.appwrite.services.Health + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Health health = new Health(client); + health.getQueueFunctions(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/health/get-queue-logs.md b/docs/examples/0.9.x/server-kotlin/java/health/get-queue-logs.md new file mode 100644 index 0000000000..36e10755a6 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/health/get-queue-logs.md @@ -0,0 +1,33 @@ +import io.appwrite.Client +import io.appwrite.services.Health + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Health health = new Health(client); + health.getQueueLogs(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/health/get-queue-tasks.md b/docs/examples/0.9.x/server-kotlin/java/health/get-queue-tasks.md new file mode 100644 index 0000000000..cbcc13253f --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/health/get-queue-tasks.md @@ -0,0 +1,33 @@ +import io.appwrite.Client +import io.appwrite.services.Health + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Health health = new Health(client); + health.getQueueTasks(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/health/get-queue-usage.md b/docs/examples/0.9.x/server-kotlin/java/health/get-queue-usage.md new file mode 100644 index 0000000000..4bad82cf4c --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/health/get-queue-usage.md @@ -0,0 +1,33 @@ +import io.appwrite.Client +import io.appwrite.services.Health + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Health health = new Health(client); + health.getQueueUsage(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/health/get-queue-webhooks.md b/docs/examples/0.9.x/server-kotlin/java/health/get-queue-webhooks.md new file mode 100644 index 0000000000..e969d7a04f --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/health/get-queue-webhooks.md @@ -0,0 +1,33 @@ +import io.appwrite.Client +import io.appwrite.services.Health + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Health health = new Health(client); + health.getQueueWebhooks(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/health/get-storage-local.md b/docs/examples/0.9.x/server-kotlin/java/health/get-storage-local.md new file mode 100644 index 0000000000..fb652fdd96 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/health/get-storage-local.md @@ -0,0 +1,33 @@ +import io.appwrite.Client +import io.appwrite.services.Health + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Health health = new Health(client); + health.getStorageLocal(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/health/get-time.md b/docs/examples/0.9.x/server-kotlin/java/health/get-time.md new file mode 100644 index 0000000000..2f4e90f144 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/health/get-time.md @@ -0,0 +1,33 @@ +import io.appwrite.Client +import io.appwrite.services.Health + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Health health = new Health(client); + health.getTime(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/health/get.md b/docs/examples/0.9.x/server-kotlin/java/health/get.md new file mode 100644 index 0000000000..c66131fe6b --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/health/get.md @@ -0,0 +1,33 @@ +import io.appwrite.Client +import io.appwrite.services.Health + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Health health = new Health(client); + health.get(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/locale/get-continents.md b/docs/examples/0.9.x/server-kotlin/java/locale/get-continents.md new file mode 100644 index 0000000000..b57a999351 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/locale/get-continents.md @@ -0,0 +1,33 @@ +import io.appwrite.Client +import io.appwrite.services.Locale + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Locale locale = new Locale(client); + locale.getContinents(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/locale/get-countries-e-u.md b/docs/examples/0.9.x/server-kotlin/java/locale/get-countries-e-u.md new file mode 100644 index 0000000000..da3f5be058 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/locale/get-countries-e-u.md @@ -0,0 +1,33 @@ +import io.appwrite.Client +import io.appwrite.services.Locale + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Locale locale = new Locale(client); + locale.getCountriesEU(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/locale/get-countries-phones.md b/docs/examples/0.9.x/server-kotlin/java/locale/get-countries-phones.md new file mode 100644 index 0000000000..1e0b166dcc --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/locale/get-countries-phones.md @@ -0,0 +1,33 @@ +import io.appwrite.Client +import io.appwrite.services.Locale + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Locale locale = new Locale(client); + locale.getCountriesPhones(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/locale/get-countries.md b/docs/examples/0.9.x/server-kotlin/java/locale/get-countries.md new file mode 100644 index 0000000000..1899d5f3d3 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/locale/get-countries.md @@ -0,0 +1,33 @@ +import io.appwrite.Client +import io.appwrite.services.Locale + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Locale locale = new Locale(client); + locale.getCountries(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/locale/get-currencies.md b/docs/examples/0.9.x/server-kotlin/java/locale/get-currencies.md new file mode 100644 index 0000000000..3fdd0df45f --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/locale/get-currencies.md @@ -0,0 +1,33 @@ +import io.appwrite.Client +import io.appwrite.services.Locale + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Locale locale = new Locale(client); + locale.getCurrencies(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/locale/get-languages.md b/docs/examples/0.9.x/server-kotlin/java/locale/get-languages.md new file mode 100644 index 0000000000..77febddbe9 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/locale/get-languages.md @@ -0,0 +1,33 @@ +import io.appwrite.Client +import io.appwrite.services.Locale + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Locale locale = new Locale(client); + locale.getLanguages(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/locale/get.md b/docs/examples/0.9.x/server-kotlin/java/locale/get.md new file mode 100644 index 0000000000..714f214f50 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/locale/get.md @@ -0,0 +1,33 @@ +import io.appwrite.Client +import io.appwrite.services.Locale + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Locale locale = new Locale(client); + locale.get(new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + }); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/storage/create-file.md b/docs/examples/0.9.x/server-kotlin/java/storage/create-file.md new file mode 100644 index 0000000000..1b61e4e303 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/storage/create-file.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Storage + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Storage storage = new Storage(client); + storage.createFile( + File("./path-to-files/image.jpg"), + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/storage/delete-file.md b/docs/examples/0.9.x/server-kotlin/java/storage/delete-file.md new file mode 100644 index 0000000000..24c346021a --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/storage/delete-file.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Storage + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Storage storage = new Storage(client); + storage.deleteFile( + "[FILE_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/storage/get-file-download.md b/docs/examples/0.9.x/server-kotlin/java/storage/get-file-download.md new file mode 100644 index 0000000000..90bb8262b1 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/storage/get-file-download.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Storage + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Storage storage = new Storage(client); + storage.getFileDownload( + "[FILE_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/storage/get-file-preview.md b/docs/examples/0.9.x/server-kotlin/java/storage/get-file-preview.md new file mode 100644 index 0000000000..2692e0b8f9 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/storage/get-file-preview.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Storage + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Storage storage = new Storage(client); + storage.getFilePreview( + "[FILE_ID]", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/storage/get-file-view.md b/docs/examples/0.9.x/server-kotlin/java/storage/get-file-view.md new file mode 100644 index 0000000000..0fb4398441 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/storage/get-file-view.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Storage + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Storage storage = new Storage(client); + storage.getFileView( + "[FILE_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/storage/get-file.md b/docs/examples/0.9.x/server-kotlin/java/storage/get-file.md new file mode 100644 index 0000000000..ce7c58e575 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/storage/get-file.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Storage + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Storage storage = new Storage(client); + storage.getFile( + "[FILE_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/storage/list-files.md b/docs/examples/0.9.x/server-kotlin/java/storage/list-files.md new file mode 100644 index 0000000000..3385e34962 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/storage/list-files.md @@ -0,0 +1,35 @@ +import io.appwrite.Client +import io.appwrite.services.Storage + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Storage storage = new Storage(client); + storage.listFiles( + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/storage/update-file.md b/docs/examples/0.9.x/server-kotlin/java/storage/update-file.md new file mode 100644 index 0000000000..37201414b7 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/storage/update-file.md @@ -0,0 +1,38 @@ +import io.appwrite.Client +import io.appwrite.services.Storage + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Storage storage = new Storage(client); + storage.updateFile( + "[FILE_ID]", + listOf(), + listOf() + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/teams/create-membership.md b/docs/examples/0.9.x/server-kotlin/java/teams/create-membership.md new file mode 100644 index 0000000000..de0c70f0cf --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/teams/create-membership.md @@ -0,0 +1,39 @@ +import io.appwrite.Client +import io.appwrite.services.Teams + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Teams teams = new Teams(client); + teams.createMembership( + "[TEAM_ID]", + "email@example.com", + listOf(), + "https://example.com", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/teams/create.md b/docs/examples/0.9.x/server-kotlin/java/teams/create.md new file mode 100644 index 0000000000..dfd38f0ddf --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/teams/create.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Teams + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Teams teams = new Teams(client); + teams.create( + "[NAME]", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/teams/delete-membership.md b/docs/examples/0.9.x/server-kotlin/java/teams/delete-membership.md new file mode 100644 index 0000000000..cc7d19fcba --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/teams/delete-membership.md @@ -0,0 +1,37 @@ +import io.appwrite.Client +import io.appwrite.services.Teams + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Teams teams = new Teams(client); + teams.deleteMembership( + "[TEAM_ID]", + "[MEMBERSHIP_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/teams/delete.md b/docs/examples/0.9.x/server-kotlin/java/teams/delete.md new file mode 100644 index 0000000000..559602c337 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/teams/delete.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Teams + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Teams teams = new Teams(client); + teams.delete( + "[TEAM_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/teams/get-memberships.md b/docs/examples/0.9.x/server-kotlin/java/teams/get-memberships.md new file mode 100644 index 0000000000..a37cab43d3 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/teams/get-memberships.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Teams + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Teams teams = new Teams(client); + teams.getMemberships( + "[TEAM_ID]", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/teams/get.md b/docs/examples/0.9.x/server-kotlin/java/teams/get.md new file mode 100644 index 0000000000..22072f9dd2 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/teams/get.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Teams + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Teams teams = new Teams(client); + teams.get( + "[TEAM_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/teams/list.md b/docs/examples/0.9.x/server-kotlin/java/teams/list.md new file mode 100644 index 0000000000..f17b0011e0 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/teams/list.md @@ -0,0 +1,35 @@ +import io.appwrite.Client +import io.appwrite.services.Teams + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Teams teams = new Teams(client); + teams.list( + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/teams/update-membership-roles.md b/docs/examples/0.9.x/server-kotlin/java/teams/update-membership-roles.md new file mode 100644 index 0000000000..4026515cfc --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/teams/update-membership-roles.md @@ -0,0 +1,38 @@ +import io.appwrite.Client +import io.appwrite.services.Teams + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Teams teams = new Teams(client); + teams.updateMembershipRoles( + "[TEAM_ID]", + "[MEMBERSHIP_ID]", + listOf() + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/teams/update-membership-status.md b/docs/examples/0.9.x/server-kotlin/java/teams/update-membership-status.md new file mode 100644 index 0000000000..c969cabad8 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/teams/update-membership-status.md @@ -0,0 +1,39 @@ +import io.appwrite.Client +import io.appwrite.services.Teams + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."); // Your secret JSON Web Token + + Teams teams = new Teams(client); + teams.updateMembershipStatus( + "[TEAM_ID]", + "[MEMBERSHIP_ID]", + "[USER_ID]", + "[SECRET]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/teams/update.md b/docs/examples/0.9.x/server-kotlin/java/teams/update.md new file mode 100644 index 0000000000..b3c1476dee --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/teams/update.md @@ -0,0 +1,37 @@ +import io.appwrite.Client +import io.appwrite.services.Teams + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Teams teams = new Teams(client); + teams.update( + "[TEAM_ID]", + "[NAME]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/users/create.md b/docs/examples/0.9.x/server-kotlin/java/users/create.md new file mode 100644 index 0000000000..57193cc85a --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/users/create.md @@ -0,0 +1,37 @@ +import io.appwrite.Client +import io.appwrite.services.Users + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Users users = new Users(client); + users.create( + "email@example.com", + "password", + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/users/delete-session.md b/docs/examples/0.9.x/server-kotlin/java/users/delete-session.md new file mode 100644 index 0000000000..6f50727290 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/users/delete-session.md @@ -0,0 +1,37 @@ +import io.appwrite.Client +import io.appwrite.services.Users + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Users users = new Users(client); + users.deleteSession( + "[USER_ID]", + "[SESSION_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/users/delete-sessions.md b/docs/examples/0.9.x/server-kotlin/java/users/delete-sessions.md new file mode 100644 index 0000000000..759ddca58d --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/users/delete-sessions.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Users + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Users users = new Users(client); + users.deleteSessions( + "[USER_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/users/delete.md b/docs/examples/0.9.x/server-kotlin/java/users/delete.md new file mode 100644 index 0000000000..2e8bba2007 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/users/delete.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Users + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Users users = new Users(client); + users.delete( + "[USER_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/users/get-logs.md b/docs/examples/0.9.x/server-kotlin/java/users/get-logs.md new file mode 100644 index 0000000000..97ee90b0ad --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/users/get-logs.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Users + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Users users = new Users(client); + users.getLogs( + "[USER_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/users/get-prefs.md b/docs/examples/0.9.x/server-kotlin/java/users/get-prefs.md new file mode 100644 index 0000000000..79a9d09ef0 --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/users/get-prefs.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Users + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Users users = new Users(client); + users.getPrefs( + "[USER_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/users/get-sessions.md b/docs/examples/0.9.x/server-kotlin/java/users/get-sessions.md new file mode 100644 index 0000000000..eeed04069f --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/users/get-sessions.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Users + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Users users = new Users(client); + users.getSessions( + "[USER_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/users/get.md b/docs/examples/0.9.x/server-kotlin/java/users/get.md new file mode 100644 index 0000000000..b64e8e8cfe --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/users/get.md @@ -0,0 +1,36 @@ +import io.appwrite.Client +import io.appwrite.services.Users + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Users users = new Users(client); + users.get( + "[USER_ID]" + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/users/list.md b/docs/examples/0.9.x/server-kotlin/java/users/list.md new file mode 100644 index 0000000000..07e38fc32b --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/users/list.md @@ -0,0 +1,35 @@ +import io.appwrite.Client +import io.appwrite.services.Users + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Users users = new Users(client); + users.list( + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/users/update-prefs.md b/docs/examples/0.9.x/server-kotlin/java/users/update-prefs.md new file mode 100644 index 0000000000..5e232fc65a --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/users/update-prefs.md @@ -0,0 +1,37 @@ +import io.appwrite.Client +import io.appwrite.services.Users + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Users users = new Users(client); + users.updatePrefs( + "[USER_ID]", + mapOf( "a" to "b" ) + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/users/update-status.md b/docs/examples/0.9.x/server-kotlin/java/users/update-status.md new file mode 100644 index 0000000000..9fbc8ce65b --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/users/update-status.md @@ -0,0 +1,37 @@ +import io.appwrite.Client +import io.appwrite.services.Users + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Users users = new Users(client); + users.updateStatus( + "[USER_ID]", + 1 + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/java/users/update-verification.md b/docs/examples/0.9.x/server-kotlin/java/users/update-verification.md new file mode 100644 index 0000000000..ef4a23f9cf --- /dev/null +++ b/docs/examples/0.9.x/server-kotlin/java/users/update-verification.md @@ -0,0 +1,37 @@ +import io.appwrite.Client +import io.appwrite.services.Users + +public void main() { + Client client = Client(context) + .setEndpoint("https://[HOSTNAME_OR_IP]/v1") // Your API Endpoint + .setProject("5df5acd0d48c2") // Your project ID + .setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key + + Users users = new Users(client); + users.updateVerification( + "[USER_ID]", + false + new Continuation() { + @NotNull + @Override + public CoroutineContext getContext() { + return EmptyCoroutineContext.INSTANCE; + } + + @Override + public void resumeWith(@NotNull Object o) { + String json = ""; + try { + if (o instanceof Result.Failure) { + Result.Failure failure = (Result.Failure) o; + throw failure.exception; + } else { + Response response = (Response) o; + } + } catch (Throwable th) { + Log.e("ERROR", th.toString()); + } + } + } + ); +} \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/examples/account/create-recovery.md b/docs/examples/0.9.x/server-kotlin/kotlin/account/create-recovery.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/account/create-recovery.md rename to docs/examples/0.9.x/server-kotlin/kotlin/account/create-recovery.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/account/create-verification.md b/docs/examples/0.9.x/server-kotlin/kotlin/account/create-verification.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/account/create-verification.md rename to docs/examples/0.9.x/server-kotlin/kotlin/account/create-verification.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/account/delete-session.md b/docs/examples/0.9.x/server-kotlin/kotlin/account/delete-session.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/account/delete-session.md rename to docs/examples/0.9.x/server-kotlin/kotlin/account/delete-session.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/account/delete-sessions.md b/docs/examples/0.9.x/server-kotlin/kotlin/account/delete-sessions.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/account/delete-sessions.md rename to docs/examples/0.9.x/server-kotlin/kotlin/account/delete-sessions.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/account/delete.md b/docs/examples/0.9.x/server-kotlin/kotlin/account/delete.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/account/delete.md rename to docs/examples/0.9.x/server-kotlin/kotlin/account/delete.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/account/get-logs.md b/docs/examples/0.9.x/server-kotlin/kotlin/account/get-logs.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/account/get-logs.md rename to docs/examples/0.9.x/server-kotlin/kotlin/account/get-logs.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/account/get-prefs.md b/docs/examples/0.9.x/server-kotlin/kotlin/account/get-prefs.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/account/get-prefs.md rename to docs/examples/0.9.x/server-kotlin/kotlin/account/get-prefs.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/account/get-session.md b/docs/examples/0.9.x/server-kotlin/kotlin/account/get-session.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/account/get-session.md rename to docs/examples/0.9.x/server-kotlin/kotlin/account/get-session.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/account/get-sessions.md b/docs/examples/0.9.x/server-kotlin/kotlin/account/get-sessions.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/account/get-sessions.md rename to docs/examples/0.9.x/server-kotlin/kotlin/account/get-sessions.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/account/get.md b/docs/examples/0.9.x/server-kotlin/kotlin/account/get.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/account/get.md rename to docs/examples/0.9.x/server-kotlin/kotlin/account/get.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/account/update-email.md b/docs/examples/0.9.x/server-kotlin/kotlin/account/update-email.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/account/update-email.md rename to docs/examples/0.9.x/server-kotlin/kotlin/account/update-email.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/account/update-name.md b/docs/examples/0.9.x/server-kotlin/kotlin/account/update-name.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/account/update-name.md rename to docs/examples/0.9.x/server-kotlin/kotlin/account/update-name.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/account/update-password.md b/docs/examples/0.9.x/server-kotlin/kotlin/account/update-password.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/account/update-password.md rename to docs/examples/0.9.x/server-kotlin/kotlin/account/update-password.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/account/update-prefs.md b/docs/examples/0.9.x/server-kotlin/kotlin/account/update-prefs.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/account/update-prefs.md rename to docs/examples/0.9.x/server-kotlin/kotlin/account/update-prefs.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/account/update-recovery.md b/docs/examples/0.9.x/server-kotlin/kotlin/account/update-recovery.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/account/update-recovery.md rename to docs/examples/0.9.x/server-kotlin/kotlin/account/update-recovery.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/account/update-verification.md b/docs/examples/0.9.x/server-kotlin/kotlin/account/update-verification.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/account/update-verification.md rename to docs/examples/0.9.x/server-kotlin/kotlin/account/update-verification.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/avatars/get-browser.md b/docs/examples/0.9.x/server-kotlin/kotlin/avatars/get-browser.md similarity index 82% rename from docs/examples/0.9.x/server-kotlin/examples/avatars/get-browser.md rename to docs/examples/0.9.x/server-kotlin/kotlin/avatars/get-browser.md index e0a14cfdf5..d021a952e4 100644 --- a/docs/examples/0.9.x/server-kotlin/examples/avatars/get-browser.md +++ b/docs/examples/0.9.x/server-kotlin/kotlin/avatars/get-browser.md @@ -8,8 +8,8 @@ suspend fun main() { .setKey("919c2d18fb5d4...a2ae413da83346ad2") // Your secret API key val avatars = Avatars(client) - val response = avatars.getBrowser( + val result = avatars.getBrowser( code = "aa", ) - val json = response.body?.string() + println(result); // Resource URL } \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/examples/avatars/get-credit-card.md b/docs/examples/0.9.x/server-kotlin/kotlin/avatars/get-credit-card.md similarity index 82% rename from docs/examples/0.9.x/server-kotlin/examples/avatars/get-credit-card.md rename to docs/examples/0.9.x/server-kotlin/kotlin/avatars/get-credit-card.md index b12e8b1241..61592bc3d9 100644 --- a/docs/examples/0.9.x/server-kotlin/examples/avatars/get-credit-card.md +++ b/docs/examples/0.9.x/server-kotlin/kotlin/avatars/get-credit-card.md @@ -8,8 +8,8 @@ suspend fun main() { .setKey("919c2d18fb5d4...a2ae413da83346ad2") // Your secret API key val avatars = Avatars(client) - val response = avatars.getCreditCard( + val result = avatars.getCreditCard( code = "amex", ) - val json = response.body?.string() + println(result); // Resource URL } \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/examples/avatars/get-favicon.md b/docs/examples/0.9.x/server-kotlin/kotlin/avatars/get-favicon.md similarity index 83% rename from docs/examples/0.9.x/server-kotlin/examples/avatars/get-favicon.md rename to docs/examples/0.9.x/server-kotlin/kotlin/avatars/get-favicon.md index 0fd68bc69f..3714ac210a 100644 --- a/docs/examples/0.9.x/server-kotlin/examples/avatars/get-favicon.md +++ b/docs/examples/0.9.x/server-kotlin/kotlin/avatars/get-favicon.md @@ -8,8 +8,8 @@ suspend fun main() { .setKey("919c2d18fb5d4...a2ae413da83346ad2") // Your secret API key val avatars = Avatars(client) - val response = avatars.getFavicon( + val result = avatars.getFavicon( url = "https://example.com" ) - val json = response.body?.string() + println(result); // Resource URL } \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/examples/avatars/get-flag.md b/docs/examples/0.9.x/server-kotlin/kotlin/avatars/get-flag.md similarity index 83% rename from docs/examples/0.9.x/server-kotlin/examples/avatars/get-flag.md rename to docs/examples/0.9.x/server-kotlin/kotlin/avatars/get-flag.md index 0ca7e995d9..0efd3c9974 100644 --- a/docs/examples/0.9.x/server-kotlin/examples/avatars/get-flag.md +++ b/docs/examples/0.9.x/server-kotlin/kotlin/avatars/get-flag.md @@ -8,8 +8,8 @@ suspend fun main() { .setKey("919c2d18fb5d4...a2ae413da83346ad2") // Your secret API key val avatars = Avatars(client) - val response = avatars.getFlag( + val result = avatars.getFlag( code = "af", ) - val json = response.body?.string() + println(result); // Resource URL } \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/examples/avatars/get-image.md b/docs/examples/0.9.x/server-kotlin/kotlin/avatars/get-image.md similarity index 83% rename from docs/examples/0.9.x/server-kotlin/examples/avatars/get-image.md rename to docs/examples/0.9.x/server-kotlin/kotlin/avatars/get-image.md index 21bb003b2d..0d3f855617 100644 --- a/docs/examples/0.9.x/server-kotlin/examples/avatars/get-image.md +++ b/docs/examples/0.9.x/server-kotlin/kotlin/avatars/get-image.md @@ -8,8 +8,8 @@ suspend fun main() { .setKey("919c2d18fb5d4...a2ae413da83346ad2") // Your secret API key val avatars = Avatars(client) - val response = avatars.getImage( + val result = avatars.getImage( url = "https://example.com", ) - val json = response.body?.string() + println(result); // Resource URL } \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/examples/avatars/get-initials.md b/docs/examples/0.9.x/server-kotlin/kotlin/avatars/get-initials.md similarity index 81% rename from docs/examples/0.9.x/server-kotlin/examples/avatars/get-initials.md rename to docs/examples/0.9.x/server-kotlin/kotlin/avatars/get-initials.md index 09913071d3..de5a30c5c1 100644 --- a/docs/examples/0.9.x/server-kotlin/examples/avatars/get-initials.md +++ b/docs/examples/0.9.x/server-kotlin/kotlin/avatars/get-initials.md @@ -8,7 +8,7 @@ suspend fun main() { .setKey("919c2d18fb5d4...a2ae413da83346ad2") // Your secret API key val avatars = Avatars(client) - val response = avatars.getInitials( + val result = avatars.getInitials( ) - val json = response.body?.string() + println(result); // Resource URL } \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/examples/avatars/get-q-r.md b/docs/examples/0.9.x/server-kotlin/kotlin/avatars/get-q-r.md similarity index 83% rename from docs/examples/0.9.x/server-kotlin/examples/avatars/get-q-r.md rename to docs/examples/0.9.x/server-kotlin/kotlin/avatars/get-q-r.md index c9ae1810a5..008922575d 100644 --- a/docs/examples/0.9.x/server-kotlin/examples/avatars/get-q-r.md +++ b/docs/examples/0.9.x/server-kotlin/kotlin/avatars/get-q-r.md @@ -8,8 +8,8 @@ suspend fun main() { .setKey("919c2d18fb5d4...a2ae413da83346ad2") // Your secret API key val avatars = Avatars(client) - val response = avatars.getQR( + val result = avatars.getQR( text = "[TEXT]", ) - val json = response.body?.string() + println(result); // Resource URL } \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/examples/database/create-collection.md b/docs/examples/0.9.x/server-kotlin/kotlin/database/create-collection.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/database/create-collection.md rename to docs/examples/0.9.x/server-kotlin/kotlin/database/create-collection.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/database/create-document.md b/docs/examples/0.9.x/server-kotlin/kotlin/database/create-document.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/database/create-document.md rename to docs/examples/0.9.x/server-kotlin/kotlin/database/create-document.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/database/delete-collection.md b/docs/examples/0.9.x/server-kotlin/kotlin/database/delete-collection.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/database/delete-collection.md rename to docs/examples/0.9.x/server-kotlin/kotlin/database/delete-collection.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/database/delete-document.md b/docs/examples/0.9.x/server-kotlin/kotlin/database/delete-document.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/database/delete-document.md rename to docs/examples/0.9.x/server-kotlin/kotlin/database/delete-document.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/database/get-collection.md b/docs/examples/0.9.x/server-kotlin/kotlin/database/get-collection.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/database/get-collection.md rename to docs/examples/0.9.x/server-kotlin/kotlin/database/get-collection.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/database/get-document.md b/docs/examples/0.9.x/server-kotlin/kotlin/database/get-document.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/database/get-document.md rename to docs/examples/0.9.x/server-kotlin/kotlin/database/get-document.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/database/list-collections.md b/docs/examples/0.9.x/server-kotlin/kotlin/database/list-collections.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/database/list-collections.md rename to docs/examples/0.9.x/server-kotlin/kotlin/database/list-collections.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/database/list-documents.md b/docs/examples/0.9.x/server-kotlin/kotlin/database/list-documents.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/database/list-documents.md rename to docs/examples/0.9.x/server-kotlin/kotlin/database/list-documents.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/database/update-collection.md b/docs/examples/0.9.x/server-kotlin/kotlin/database/update-collection.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/database/update-collection.md rename to docs/examples/0.9.x/server-kotlin/kotlin/database/update-collection.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/database/update-document.md b/docs/examples/0.9.x/server-kotlin/kotlin/database/update-document.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/database/update-document.md rename to docs/examples/0.9.x/server-kotlin/kotlin/database/update-document.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/functions/create-execution.md b/docs/examples/0.9.x/server-kotlin/kotlin/functions/create-execution.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/functions/create-execution.md rename to docs/examples/0.9.x/server-kotlin/kotlin/functions/create-execution.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/functions/create-tag.md b/docs/examples/0.9.x/server-kotlin/kotlin/functions/create-tag.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/functions/create-tag.md rename to docs/examples/0.9.x/server-kotlin/kotlin/functions/create-tag.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/functions/create.md b/docs/examples/0.9.x/server-kotlin/kotlin/functions/create.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/functions/create.md rename to docs/examples/0.9.x/server-kotlin/kotlin/functions/create.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/functions/delete-tag.md b/docs/examples/0.9.x/server-kotlin/kotlin/functions/delete-tag.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/functions/delete-tag.md rename to docs/examples/0.9.x/server-kotlin/kotlin/functions/delete-tag.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/functions/delete.md b/docs/examples/0.9.x/server-kotlin/kotlin/functions/delete.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/functions/delete.md rename to docs/examples/0.9.x/server-kotlin/kotlin/functions/delete.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/functions/get-execution.md b/docs/examples/0.9.x/server-kotlin/kotlin/functions/get-execution.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/functions/get-execution.md rename to docs/examples/0.9.x/server-kotlin/kotlin/functions/get-execution.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/functions/get-tag.md b/docs/examples/0.9.x/server-kotlin/kotlin/functions/get-tag.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/functions/get-tag.md rename to docs/examples/0.9.x/server-kotlin/kotlin/functions/get-tag.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/functions/get.md b/docs/examples/0.9.x/server-kotlin/kotlin/functions/get.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/functions/get.md rename to docs/examples/0.9.x/server-kotlin/kotlin/functions/get.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/functions/list-executions.md b/docs/examples/0.9.x/server-kotlin/kotlin/functions/list-executions.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/functions/list-executions.md rename to docs/examples/0.9.x/server-kotlin/kotlin/functions/list-executions.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/functions/list-tags.md b/docs/examples/0.9.x/server-kotlin/kotlin/functions/list-tags.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/functions/list-tags.md rename to docs/examples/0.9.x/server-kotlin/kotlin/functions/list-tags.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/functions/list.md b/docs/examples/0.9.x/server-kotlin/kotlin/functions/list.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/functions/list.md rename to docs/examples/0.9.x/server-kotlin/kotlin/functions/list.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/functions/update-tag.md b/docs/examples/0.9.x/server-kotlin/kotlin/functions/update-tag.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/functions/update-tag.md rename to docs/examples/0.9.x/server-kotlin/kotlin/functions/update-tag.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/functions/update.md b/docs/examples/0.9.x/server-kotlin/kotlin/functions/update.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/functions/update.md rename to docs/examples/0.9.x/server-kotlin/kotlin/functions/update.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/health/get-anti-virus.md b/docs/examples/0.9.x/server-kotlin/kotlin/health/get-anti-virus.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/health/get-anti-virus.md rename to docs/examples/0.9.x/server-kotlin/kotlin/health/get-anti-virus.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/health/get-cache.md b/docs/examples/0.9.x/server-kotlin/kotlin/health/get-cache.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/health/get-cache.md rename to docs/examples/0.9.x/server-kotlin/kotlin/health/get-cache.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/health/get-d-b.md b/docs/examples/0.9.x/server-kotlin/kotlin/health/get-d-b.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/health/get-d-b.md rename to docs/examples/0.9.x/server-kotlin/kotlin/health/get-d-b.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/health/get-queue-certificates.md b/docs/examples/0.9.x/server-kotlin/kotlin/health/get-queue-certificates.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/health/get-queue-certificates.md rename to docs/examples/0.9.x/server-kotlin/kotlin/health/get-queue-certificates.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/health/get-queue-functions.md b/docs/examples/0.9.x/server-kotlin/kotlin/health/get-queue-functions.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/health/get-queue-functions.md rename to docs/examples/0.9.x/server-kotlin/kotlin/health/get-queue-functions.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/health/get-queue-logs.md b/docs/examples/0.9.x/server-kotlin/kotlin/health/get-queue-logs.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/health/get-queue-logs.md rename to docs/examples/0.9.x/server-kotlin/kotlin/health/get-queue-logs.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/health/get-queue-tasks.md b/docs/examples/0.9.x/server-kotlin/kotlin/health/get-queue-tasks.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/health/get-queue-tasks.md rename to docs/examples/0.9.x/server-kotlin/kotlin/health/get-queue-tasks.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/health/get-queue-usage.md b/docs/examples/0.9.x/server-kotlin/kotlin/health/get-queue-usage.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/health/get-queue-usage.md rename to docs/examples/0.9.x/server-kotlin/kotlin/health/get-queue-usage.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/health/get-queue-webhooks.md b/docs/examples/0.9.x/server-kotlin/kotlin/health/get-queue-webhooks.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/health/get-queue-webhooks.md rename to docs/examples/0.9.x/server-kotlin/kotlin/health/get-queue-webhooks.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/health/get-storage-local.md b/docs/examples/0.9.x/server-kotlin/kotlin/health/get-storage-local.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/health/get-storage-local.md rename to docs/examples/0.9.x/server-kotlin/kotlin/health/get-storage-local.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/health/get-time.md b/docs/examples/0.9.x/server-kotlin/kotlin/health/get-time.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/health/get-time.md rename to docs/examples/0.9.x/server-kotlin/kotlin/health/get-time.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/health/get.md b/docs/examples/0.9.x/server-kotlin/kotlin/health/get.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/health/get.md rename to docs/examples/0.9.x/server-kotlin/kotlin/health/get.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/locale/get-continents.md b/docs/examples/0.9.x/server-kotlin/kotlin/locale/get-continents.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/locale/get-continents.md rename to docs/examples/0.9.x/server-kotlin/kotlin/locale/get-continents.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/locale/get-countries-e-u.md b/docs/examples/0.9.x/server-kotlin/kotlin/locale/get-countries-e-u.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/locale/get-countries-e-u.md rename to docs/examples/0.9.x/server-kotlin/kotlin/locale/get-countries-e-u.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/locale/get-countries-phones.md b/docs/examples/0.9.x/server-kotlin/kotlin/locale/get-countries-phones.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/locale/get-countries-phones.md rename to docs/examples/0.9.x/server-kotlin/kotlin/locale/get-countries-phones.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/locale/get-countries.md b/docs/examples/0.9.x/server-kotlin/kotlin/locale/get-countries.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/locale/get-countries.md rename to docs/examples/0.9.x/server-kotlin/kotlin/locale/get-countries.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/locale/get-currencies.md b/docs/examples/0.9.x/server-kotlin/kotlin/locale/get-currencies.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/locale/get-currencies.md rename to docs/examples/0.9.x/server-kotlin/kotlin/locale/get-currencies.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/locale/get-languages.md b/docs/examples/0.9.x/server-kotlin/kotlin/locale/get-languages.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/locale/get-languages.md rename to docs/examples/0.9.x/server-kotlin/kotlin/locale/get-languages.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/locale/get.md b/docs/examples/0.9.x/server-kotlin/kotlin/locale/get.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/locale/get.md rename to docs/examples/0.9.x/server-kotlin/kotlin/locale/get.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/storage/create-file.md b/docs/examples/0.9.x/server-kotlin/kotlin/storage/create-file.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/storage/create-file.md rename to docs/examples/0.9.x/server-kotlin/kotlin/storage/create-file.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/storage/delete-file.md b/docs/examples/0.9.x/server-kotlin/kotlin/storage/delete-file.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/storage/delete-file.md rename to docs/examples/0.9.x/server-kotlin/kotlin/storage/delete-file.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/storage/get-file-download.md b/docs/examples/0.9.x/server-kotlin/kotlin/storage/get-file-download.md similarity index 82% rename from docs/examples/0.9.x/server-kotlin/examples/storage/get-file-download.md rename to docs/examples/0.9.x/server-kotlin/kotlin/storage/get-file-download.md index cdae077560..7a2867ce97 100644 --- a/docs/examples/0.9.x/server-kotlin/examples/storage/get-file-download.md +++ b/docs/examples/0.9.x/server-kotlin/kotlin/storage/get-file-download.md @@ -8,8 +8,8 @@ suspend fun main() { .setKey("919c2d18fb5d4...a2ae413da83346ad2") // Your secret API key val storage = Storage(client) - val response = storage.getFileDownload( + val result = storage.getFileDownload( fileId = "[FILE_ID]" ) - val json = response.body?.string() + println(result); // Resource URL } \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/examples/storage/get-file-preview.md b/docs/examples/0.9.x/server-kotlin/kotlin/storage/get-file-preview.md similarity index 82% rename from docs/examples/0.9.x/server-kotlin/examples/storage/get-file-preview.md rename to docs/examples/0.9.x/server-kotlin/kotlin/storage/get-file-preview.md index ced1a9e067..08c0c61cd3 100644 --- a/docs/examples/0.9.x/server-kotlin/examples/storage/get-file-preview.md +++ b/docs/examples/0.9.x/server-kotlin/kotlin/storage/get-file-preview.md @@ -8,8 +8,8 @@ suspend fun main() { .setKey("919c2d18fb5d4...a2ae413da83346ad2") // Your secret API key val storage = Storage(client) - val response = storage.getFilePreview( + val result = storage.getFilePreview( fileId = "[FILE_ID]", ) - val json = response.body?.string() + println(result); // Resource URL } \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/examples/storage/get-file-view.md b/docs/examples/0.9.x/server-kotlin/kotlin/storage/get-file-view.md similarity index 83% rename from docs/examples/0.9.x/server-kotlin/examples/storage/get-file-view.md rename to docs/examples/0.9.x/server-kotlin/kotlin/storage/get-file-view.md index a56111fa3f..b9120d8ffc 100644 --- a/docs/examples/0.9.x/server-kotlin/examples/storage/get-file-view.md +++ b/docs/examples/0.9.x/server-kotlin/kotlin/storage/get-file-view.md @@ -8,8 +8,8 @@ suspend fun main() { .setKey("919c2d18fb5d4...a2ae413da83346ad2") // Your secret API key val storage = Storage(client) - val response = storage.getFileView( + val result = storage.getFileView( fileId = "[FILE_ID]" ) - val json = response.body?.string() + println(result); // Resource URL } \ No newline at end of file diff --git a/docs/examples/0.9.x/server-kotlin/examples/storage/get-file.md b/docs/examples/0.9.x/server-kotlin/kotlin/storage/get-file.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/storage/get-file.md rename to docs/examples/0.9.x/server-kotlin/kotlin/storage/get-file.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/storage/list-files.md b/docs/examples/0.9.x/server-kotlin/kotlin/storage/list-files.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/storage/list-files.md rename to docs/examples/0.9.x/server-kotlin/kotlin/storage/list-files.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/storage/update-file.md b/docs/examples/0.9.x/server-kotlin/kotlin/storage/update-file.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/storage/update-file.md rename to docs/examples/0.9.x/server-kotlin/kotlin/storage/update-file.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/teams/create-membership.md b/docs/examples/0.9.x/server-kotlin/kotlin/teams/create-membership.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/teams/create-membership.md rename to docs/examples/0.9.x/server-kotlin/kotlin/teams/create-membership.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/teams/create.md b/docs/examples/0.9.x/server-kotlin/kotlin/teams/create.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/teams/create.md rename to docs/examples/0.9.x/server-kotlin/kotlin/teams/create.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/teams/delete-membership.md b/docs/examples/0.9.x/server-kotlin/kotlin/teams/delete-membership.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/teams/delete-membership.md rename to docs/examples/0.9.x/server-kotlin/kotlin/teams/delete-membership.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/teams/delete.md b/docs/examples/0.9.x/server-kotlin/kotlin/teams/delete.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/teams/delete.md rename to docs/examples/0.9.x/server-kotlin/kotlin/teams/delete.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/teams/get-memberships.md b/docs/examples/0.9.x/server-kotlin/kotlin/teams/get-memberships.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/teams/get-memberships.md rename to docs/examples/0.9.x/server-kotlin/kotlin/teams/get-memberships.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/teams/get.md b/docs/examples/0.9.x/server-kotlin/kotlin/teams/get.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/teams/get.md rename to docs/examples/0.9.x/server-kotlin/kotlin/teams/get.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/teams/list.md b/docs/examples/0.9.x/server-kotlin/kotlin/teams/list.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/teams/list.md rename to docs/examples/0.9.x/server-kotlin/kotlin/teams/list.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/teams/update-membership-roles.md b/docs/examples/0.9.x/server-kotlin/kotlin/teams/update-membership-roles.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/teams/update-membership-roles.md rename to docs/examples/0.9.x/server-kotlin/kotlin/teams/update-membership-roles.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/teams/update-membership-status.md b/docs/examples/0.9.x/server-kotlin/kotlin/teams/update-membership-status.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/teams/update-membership-status.md rename to docs/examples/0.9.x/server-kotlin/kotlin/teams/update-membership-status.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/teams/update.md b/docs/examples/0.9.x/server-kotlin/kotlin/teams/update.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/teams/update.md rename to docs/examples/0.9.x/server-kotlin/kotlin/teams/update.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/users/create.md b/docs/examples/0.9.x/server-kotlin/kotlin/users/create.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/users/create.md rename to docs/examples/0.9.x/server-kotlin/kotlin/users/create.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/users/delete-session.md b/docs/examples/0.9.x/server-kotlin/kotlin/users/delete-session.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/users/delete-session.md rename to docs/examples/0.9.x/server-kotlin/kotlin/users/delete-session.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/users/delete-sessions.md b/docs/examples/0.9.x/server-kotlin/kotlin/users/delete-sessions.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/users/delete-sessions.md rename to docs/examples/0.9.x/server-kotlin/kotlin/users/delete-sessions.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/users/delete.md b/docs/examples/0.9.x/server-kotlin/kotlin/users/delete.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/users/delete.md rename to docs/examples/0.9.x/server-kotlin/kotlin/users/delete.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/users/get-logs.md b/docs/examples/0.9.x/server-kotlin/kotlin/users/get-logs.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/users/get-logs.md rename to docs/examples/0.9.x/server-kotlin/kotlin/users/get-logs.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/users/get-prefs.md b/docs/examples/0.9.x/server-kotlin/kotlin/users/get-prefs.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/users/get-prefs.md rename to docs/examples/0.9.x/server-kotlin/kotlin/users/get-prefs.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/users/get-sessions.md b/docs/examples/0.9.x/server-kotlin/kotlin/users/get-sessions.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/users/get-sessions.md rename to docs/examples/0.9.x/server-kotlin/kotlin/users/get-sessions.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/users/get.md b/docs/examples/0.9.x/server-kotlin/kotlin/users/get.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/users/get.md rename to docs/examples/0.9.x/server-kotlin/kotlin/users/get.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/users/list.md b/docs/examples/0.9.x/server-kotlin/kotlin/users/list.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/users/list.md rename to docs/examples/0.9.x/server-kotlin/kotlin/users/list.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/users/update-prefs.md b/docs/examples/0.9.x/server-kotlin/kotlin/users/update-prefs.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/users/update-prefs.md rename to docs/examples/0.9.x/server-kotlin/kotlin/users/update-prefs.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/users/update-status.md b/docs/examples/0.9.x/server-kotlin/kotlin/users/update-status.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/users/update-status.md rename to docs/examples/0.9.x/server-kotlin/kotlin/users/update-status.md diff --git a/docs/examples/0.9.x/server-kotlin/examples/users/update-verification.md b/docs/examples/0.9.x/server-kotlin/kotlin/users/update-verification.md similarity index 100% rename from docs/examples/0.9.x/server-kotlin/examples/users/update-verification.md rename to docs/examples/0.9.x/server-kotlin/kotlin/users/update-verification.md diff --git a/docs/references/teams/create-team-membership.md b/docs/references/teams/create-team-membership.md index a920c260be..c6d81de484 100644 --- a/docs/references/teams/create-team-membership.md +++ b/docs/references/teams/create-team-membership.md @@ -1,5 +1,5 @@ -Use this endpoint to invite a new member to join your team. An email with a link to join the team will be sent to the new member email address if the member doesn't exist in the project it will be created automatically. +Use this endpoint to invite a new member to join your team. If initiated from Client SDK, an email with a link to join the team will be sent to the new member's email address if the member doesn't exist in the project it will be created automatically. If initiated from server side SDKs, new member will automatically be added to the team. -Use the 'URL' parameter to redirect the user from the invitation email back to your app. When the user is redirected, use the [Update Team Membership Status](/docs/client/teams#teamsUpdateMembershipStatus) endpoint to allow the user to accept the invitation to the team. +Use the 'URL' parameter to redirect the user from the invitation email back to your app. When the user is redirected, use the [Update Team Membership Status](/docs/client/teams#teamsUpdateMembershipStatus) endpoint to allow the user to accept the invitation to the team. While calling from side SDKs the redirect url can be empty string. Please note that in order to avoid a [Redirect Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URL's are the once from domains you have set when added your platforms in the console interface. \ No newline at end of file diff --git a/docs/sdks/android/GETTING_STARTED.md b/docs/sdks/android/GETTING_STARTED.md index c0bba25051..72ea5d1071 100644 --- a/docs/sdks/android/GETTING_STARTED.md +++ b/docs/sdks/android/GETTING_STARTED.md @@ -87,7 +87,7 @@ try { ``` ### Learn more -You can use following resources to learn more and get help +You can use the following resources to learn more and get help - 🚀 [Getting Started Tutorial](https://appwrite.io/docs/getting-started-for-android) - 📜 [Appwrite Docs](https://appwrite.io/docs) - 💬 [Discord Community](https://appwrite.io/discord) diff --git a/docs/sdks/dart/CHANGELOG.md b/docs/sdks/dart/CHANGELOG.md index e0052addc5..2ad2597513 100644 --- a/docs/sdks/dart/CHANGELOG.md +++ b/docs/sdks/dart/CHANGELOG.md @@ -1,3 +1,12 @@ +## 0.7.0 +- Support for Appwrite 0.9 +- Breaking - removed order type enum, now you should pass string 'ASC' or 'DESC' +- Breaking - changed param name from `env` to `runtime` in the **Functions** API +- Image Crop Gravity support in image preview service +- New endpoint in Account getSession to get session by ID +- New endpoint in the Users API to update user verification status +- Fix - issues with User-Agent when app name consisted of non-ASCII characters + ## 0.6.2 - Removed default values, nothing should change in usage as default values are already allocated in server @@ -37,4 +46,4 @@ ## 0.1.0 -- First release \ No newline at end of file +- First release diff --git a/docs/sdks/dart/GETTING_STARTED.md b/docs/sdks/dart/GETTING_STARTED.md index d838324813..0fc1430ea2 100644 --- a/docs/sdks/dart/GETTING_STARTED.md +++ b/docs/sdks/dart/GETTING_STARTED.md @@ -40,7 +40,7 @@ try { ``` ### Learn more -You can use following resources to learn more and get help +You can use the following resources to learn more and get help - 🚀 [Getting Started Tutorial](https://appwrite.io/docs/getting-started-for-server) - 📜 [Appwrite Docs](https://appwrite.io/docs) - 💬 [Discord Community](https://appwrite.io/discord) diff --git a/docs/sdks/deno/GETTING_STARTED.md b/docs/sdks/deno/GETTING_STARTED.md index b06b26e94c..5fae9f634b 100644 --- a/docs/sdks/deno/GETTING_STARTED.md +++ b/docs/sdks/deno/GETTING_STARTED.md @@ -68,7 +68,7 @@ try { ``` ### Learn more -You can use following resources to learn more and get help +You can use the following resources to learn more and get help - 🚀 [Getting Started Tutorial](https://appwrite.io/docs/getting-started-for-server) - 📜 [Appwrite Docs](https://appwrite.io/docs) - 💬 [Discord Community](https://appwrite.io/discord) diff --git a/docs/sdks/dotnet/GETTING_STARTED.md b/docs/sdks/dotnet/GETTING_STARTED.md index cb982bf381..12084b23eb 100644 --- a/docs/sdks/dotnet/GETTING_STARTED.md +++ b/docs/sdks/dotnet/GETTING_STARTED.md @@ -45,7 +45,7 @@ try { ``` ### Learn more -You can use following resources to learn more and get help +You can use the following resources to learn more and get help - 🚀 [Getting Started Tutorial](https://appwrite.io/docs/getting-started-for-server) - 📜 [Appwrite Docs](https://appwrite.io/docs) - 💬 [Discord Community](https://appwrite.io/discord) diff --git a/docs/sdks/flutter/CHANGELOG.md b/docs/sdks/flutter/CHANGELOG.md index 1021124d19..b62664c2c1 100644 --- a/docs/sdks/flutter/CHANGELOG.md +++ b/docs/sdks/flutter/CHANGELOG.md @@ -1,3 +1,12 @@ +## 0.7.0 +- Support for Appwrite 0.9 +- Breaking - removed order type enum, now you should pass string 'ASC' or 'DESC' +- Image Crop Gravity support in image preview service +- New endpoint in Account getSession to get session by ID +- Fix - issues with User-Agent when app name consisted of non-ASCII characters +- Fix - issue with null Success and Failure URL in createOAuth2Session +- Updated underlying dependencies + ## 0.6.3 - Removed default values, nothing should change in usage as default values are already allocated in server @@ -116,4 +125,4 @@ ## 0.0.8 - Fixed compilation error in Client class -- Shorter description for package \ No newline at end of file +- Shorter description for package diff --git a/docs/sdks/flutter/GETTING_STARTED.md b/docs/sdks/flutter/GETTING_STARTED.md index 987c86d2e7..28899ff18d 100644 --- a/docs/sdks/flutter/GETTING_STARTED.md +++ b/docs/sdks/flutter/GETTING_STARTED.md @@ -3,26 +3,13 @@ ### Add your Flutter Platform To init your SDK and start interacting with Appwrite services, you need to add a new Flutter platform to your project. To add a new platform, go to your Appwrite console, choose the project you created in the step before, and click the 'Add Platform' button. -From the options, choose to add a new **Flutter** platform and add your app credentials. Appwrite Flutter SDK currently supports building apps for both iOS and Android. +From the options, choose to add a new **Flutter** platform and add your app credentials. Appwrite Flutter SDK currently supports building apps for Android, iOS, Linux, Mac OS, Web and Windows. If you are building your Flutter application for multiple devices, you have to follow this process for each different device. -#### iOS -For **iOS** add your app name and Bundle ID, You can find your Bundle Identifier in the General tab for your app's primary target in Xcode. - -#### Android -For **Android** add your app name and package name, Your package name is generally the applicationId in your app-level build.gradle file. By registering your new app platform, you are allowing your app to communicate with the Appwrite API. - -### iOS - -The Appwrite SDK uses ASWebAuthenticationSession on iOS 12+ and SFAuthenticationSession on iOS 11 to allow OAuth authentication. You have to change your iOS Deployment Target in Xcode to be iOS >= 11 to be able to build your app on an emulator or a real device. - -1. In Xcode, open Runner.xcworkspace in your app's ios folder. -2. To view your app's settings, select the Runner project in the Xcode project navigator. Then, in the main view sidebar, select the Runner target. -3. Select the General tab. -4. In Deployment Info, 'Target' select iOS 11.0 - ### Android +For **Android** first add your app name and package name, Your package name is generally the **applicationId** in your app-level build.gradle file. By registering your new app platform, you are allowing your app to communicate with the Appwrite API. + In order to capture the Appwrite OAuth callback url, the following activity needs to be added to your [AndroidManifest.xml](https://github.com/appwrite/playground-for-flutter/blob/master/android/app/src/main/AndroidManifest.xml). Be sure to replace the **[PROJECT_ID]** string with your actual Appwrite project ID. You can find your Appwrite project ID in your project settings screen in the console. ```xml @@ -40,12 +27,31 @@ In order to capture the Appwrite OAuth callback url, the following activity need ``` +### iOS +For **iOS** first add your app name and Bundle ID, You can find your Bundle Identifier in the General tab for your app's primary target in Xcode. + +The Appwrite SDK uses ASWebAuthenticationSession on iOS 12+ and SFAuthenticationSession on iOS 11 to allow OAuth authentication. You have to change your iOS Deployment Target in Xcode to be iOS >= 11 to be able to build your app on an emulator or a real device. + +1. In Xcode, open Runner.xcworkspace in your app's ios folder. +2. To view your app's settings, select the Runner project in the Xcode project navigator. Then, in the main view sidebar, select the Runner target. +3. Select the General tab. +4. In Deployment Info, 'Target' select iOS 11.0 + +### Linux +For **Linux** add your app name and package name, Your package name is generally the **name** in your pubspec.yaml file. If you cannot find the correct package name, run the application in linux, and make any request with proper exception handling, you should get the application ID needed to add in the received error message. + +### Mac OS +For **Mac OS** add your app name and Bundle ID, You can find your Bundle Identifier in the General tab for your app's primary target in Xcode. + ### Web Appwrite 0.7, and the Appwrite Flutter SDK 0.3.0 have added support for Flutter Web. To build web apps that integrate with Appwrite successfully, all you have to do is add a web platform on your Appwrite project's dashboard and list the domain your website will use to allow communication to the Appwrite API. #### Flutter Web Cross-Domain Communication & Cookies While running Flutter Web, make sure your Appwrite server and your Flutter client are using the same top-level domain and the same protocol (HTTP or HTTPS) to communicate. When trying to communicate between different domains or protocols, you may receive HTTP status error 401 because some modern browsers block cross-site or insecure cookies for enhanced privacy. In production, Appwrite allows you set multiple [custom-domains](https://appwrite.io/docs/custom-domains) for each project. +### Windows +For **Windows** add your app name and package name, Your package name is generally the **name** in your pubspec.yaml file. If you cannot find the correct package name, run the application in windows, and make any request with proper exception handling, you should get the application id needed to add in the received error message. + ### Init your SDK

Initialize your SDK with your Appwrite server API endpoint and project ID, which can be found in your project settings page. @@ -122,8 +128,8 @@ try { ``` ### Learn more -You can use following resources to learn more and get help +You can use the following resources to learn more and get help - 🚀 [Getting Started Tutorial](https://appwrite.io/docs/getting-started-for-flutter) - 📜 [Appwrite Docs](https://appwrite.io/docs) - 💬 [Discord Community](https://appwrite.io/discord) -- 🚂 [Appwrite Flutter Playground](https://github.com/appwrite/playground-for-flutter) \ No newline at end of file +- 🚂 [Appwrite Flutter Playground](https://github.com/appwrite/playground-for-flutter) diff --git a/docs/sdks/kotlin/GETTING_STARTED.md b/docs/sdks/kotlin/GETTING_STARTED.md index 60d78861e8..18f2b94c41 100644 --- a/docs/sdks/kotlin/GETTING_STARTED.md +++ b/docs/sdks/kotlin/GETTING_STARTED.md @@ -77,7 +77,7 @@ suspend fun main() { ### Learn more -You can use following resources to learn more and get help +You can use the following resources to learn more and get help - 🚀 [Getting Started Tutorial](https://appwrite.io/docs/getting-started-for-server) - 📜 [Appwrite Docs](https://appwrite.io/docs) diff --git a/docs/sdks/nodejs/GETTING_STARTED.md b/docs/sdks/nodejs/GETTING_STARTED.md index beb139c14b..e934faf3d9 100644 --- a/docs/sdks/nodejs/GETTING_STARTED.md +++ b/docs/sdks/nodejs/GETTING_STARTED.md @@ -68,7 +68,7 @@ try { ``` ### Learn more -You can use following resources to learn more and get help +You can use the following resources to learn more and get help - 🚀 [Getting Started Tutorial](https://appwrite.io/docs/getting-started-for-server) - 📜 [Appwrite Docs](https://appwrite.io/docs) - 💬 [Discord Community](https://appwrite.io/discord) diff --git a/docs/sdks/php/GETTING_STARTED.md b/docs/sdks/php/GETTING_STARTED.md index af9f8d011f..49f916a139 100644 --- a/docs/sdks/php/GETTING_STARTED.md +++ b/docs/sdks/php/GETTING_STARTED.md @@ -56,7 +56,7 @@ try { ``` ### Learn more -You can use following resources to learn more and get help +You can use the following resources to learn more and get help - 🚀 [Getting Started Tutorial](https://appwrite.io/docs/getting-started-for-server) - 📜 [Appwrite Docs](https://appwrite.io/docs) - 💬 [Discord Community](https://appwrite.io/discord) diff --git a/docs/sdks/python/GETTING_STARTED.md b/docs/sdks/python/GETTING_STARTED.md index 2af9b088de..06645904ed 100644 --- a/docs/sdks/python/GETTING_STARTED.md +++ b/docs/sdks/python/GETTING_STARTED.md @@ -57,7 +57,7 @@ except AppwriteException as e: ``` ### Learn more -You can use following resources to learn more and get help +You can use the following resources to learn more and get help - 🚀 [Getting Started Tutorial](https://appwrite.io/docs/getting-started-for-server) - 📜 [Appwrite Docs](https://appwrite.io/docs) - 💬 [Discord Community](https://appwrite.io/discord) diff --git a/docs/sdks/ruby/GETTING_STARTED.md b/docs/sdks/ruby/GETTING_STARTED.md index c31a04a9e3..b2aa767a3f 100644 --- a/docs/sdks/ruby/GETTING_STARTED.md +++ b/docs/sdks/ruby/GETTING_STARTED.md @@ -57,7 +57,7 @@ end ``` ### Learn more -You can use following resources to learn more and get help +You can use the following resources to learn more and get help - 🚀 [Getting Started Tutorial](https://appwrite.io/docs/getting-started-for-server) - 📜 [Appwrite Docs](https://appwrite.io/docs) - 💬 [Discord Community](https://appwrite.io/discord) diff --git a/docs/sdks/web/GETTING_STARTED.md b/docs/sdks/web/GETTING_STARTED.md index cf065cdd3d..f67ed5fe83 100644 --- a/docs/sdks/web/GETTING_STARTED.md +++ b/docs/sdks/web/GETTING_STARTED.md @@ -52,7 +52,7 @@ sdk.account.create('me@example.com', 'password', 'Jane Doe') ``` ### Learn more -You can use following resources to learn more and get help +You can use the following resources to learn more and get help - 🚀 [Getting Started Tutorial](https://appwrite.io/docs/getting-started-for-flutter) - 📜 [Appwrite Docs](https://appwrite.io/docs) - 💬 [Discord Community](https://appwrite.io/discord) diff --git a/public/dist/styles/default-ltr.css b/public/dist/styles/default-ltr.css index f9f5d979bb..a3ef241114 100644 --- a/public/dist/styles/default-ltr.css +++ b/public/dist/styles/default-ltr.css @@ -1 +1 @@ -.pull-start{float:left}.pull-end{float:right}img[src=""]{visibility:hidden;display:inline-block}:root{--config-width:910px;--config-width-xxl:1000px;--config-width-xl:910px;--config-width-large:700px;--config-width-medium:550px;--config-width-small:320px;--config-color-link:#1e849e;--config-color-background:#eceff1;--config-color-background-dark:#dfe2e4;--config-color-background-fade:#ffffff;--config-color-background-fade-super:#fdfdfd;--config-color-background-focus:#f5f5f5;--config-color-background-input:#ffffff;--config-color-placeholder:#868686;--config-color-tooltip-text:#dce8f5;--config-color-tooltip-background:#333333;--config-color-focus:#f02e65;--config-color-focus-fade:#fef8fa;--config-color-focus-hover:#ff729b;--config-color-focus-glow:#fce5ec;--config-color-focus-dark:#c52653;--config-color-normal:#40404c;--config-color-dark:#313131;--config-color-fade:#8f8f8f;--config-color-fade-light:#e2e2e2;--config-color-fade-super:#f1f3f5;--config-color-danger:#f53d3d;--config-color-success:#1bbf61;--config-color-warning:#fffbdd;--config-color-info:#386fd2;--config-border-color:#f3f3f3;--config-border-fade:#e0e3e4;--config-border-radius:10px;--config-prism-background:#373738;--config-prism-numbers:#39393c;--config-note-background:#f1fbff;--config-note-border:#5bceff;--config-warning-background:#fdf7d9;--config-warning-border:#f8e380;--config-social-twitter:#1da1f2;--config-social-github:#000000;--config-social-discord:#7189dc;--config-social-facebook:#4070b4;--config-language-bash:#2b2626;--config-language-bash-contrast:#fff;--config-language-javascript:#fff054;--config-language-javascript-contrast:#333232;--config-language-web:#fff054;--config-language-web-contrast:#333232;--config-language-html:#ff895b;--config-language-html-contrast:#ffffff;--config-language-yaml:#ca3333;--config-language-yaml-contrast:#ffffff;--config-language-php:#6182bb;--config-language-php-contrast:#ffffff;--config-language-nodejs:#8cc500;--config-language-nodejs-contrast:#ffffff;--config-language-ruby:#fc3f48;--config-language-ruby-contrast:#ffffff;--config-language-python:#3873a2;--config-language-python-contrast:#ffffff;--config-language-go:#00add8;--config-language-go-contrast:#ffffff;--config-language-dart:#035698;--config-language-dart-contrast:#ffffff;--config-language-flutter:#035698;--config-language-flutter-contrast:#ffffff;--config-language-android:#a4c439;--config-language-android-contrast:#ffffff;--config-language-kotlin:#766DB2;--config-language-kotlin-contrast:#ffffff;--config-language-java:#0074bd;--config-language-java-contrast:#ffffff;--config-modal-note-background:#f5fbff;--config-modal-note-border:#eaf2f7;--config-modal-note-color:#3b5d73;--config-switch-background:#e2e2e2;--config-console-background:#eceff1;--config-console-nav-start:#143650;--config-console-nav-end:#302839;--config-console-nav-border:#2a253a;--config-console-nav-switch-background:#ececec;--config-console-nav-switch-color:#868686;--config-console-nav-switch-arrow:url("data:image/svg+xml;utf8,")}:root .theme-dark{--config-color-background:#061F2F;--config-color-background-dark:#262d50;--config-color-background-fade:#1c223a;--config-color-background-fade-super:#1a1f35;--config-color-background-focus:#1a1f35;--config-color-background-input:#dce8f5;--config-color-tooltip-text:#061F2F;--config-color-tooltip-background:#dce8f5;--config-color-link:#4caedb;--config-color-placeholder:#9ea1af;--config-color-focus:#c7d8eb;--config-color-focus-fade:#1e233e;--config-color-focus-hover:#d3deea;--config-color-focus-glow:#d3deea;--config-color-focus-dark:#657586;--config-color-normal:#c7d8eb;--config-color-dark:#c7d8eb;--config-color-fade:#bec3e0;--config-color-fade-light:#181818;--config-color-fade-super:#262D50;--config-color-danger:#d84a4a;--config-color-success:#34b86d;--config-color-warning:#e0d56d;--config-color-info:#386fd2;--config-border-color:#262D50;--config-border-fade:#19203a;--config-prism-background:#1F253F;--config-prism-numbers:#1F253F;--config-note-background:#171e33;--config-note-border:#262D50;--config-warning-background:#1F253F;--config-warning-border:#262D50;--config-social-twitter:var(--config-color-normal);--config-social-github:var(--config-color-normal);--config-social-discord:var(--config-color-normal);--config-social-facebook:var(--config-color-normal);--config-language-bash:var(--config-color-normal);--config-language-bash-contrast:var(--config-color-background);--config-language-javascript:var(--config-color-normal);--config-language-javascript-contrast:var(--config-color-background);--config-language-web:var(--config-color-normal);--config-language-web-contrast:var(--config-color-background);--config-language-yaml:var(--config-color-normal);--config-language-yaml-contrast:var(--config-color-background);--config-language-html:var(--config-color-normal);--config-language-html-contrast:var(--config-color-background);--config-language-php:var(--config-color-normal);--config-language-php-contrast:var(--config-color-background);--config-language-nodejs:var(--config-color-normal);--config-language-nodejs-contrast:var(--config-color-background);--config-language-ruby:var(--config-color-normal);--config-language-ruby-contrast:var(--config-color-background);--config-language-python:var(--config-color-normal);--config-language-python-contrast:var(--config-color-background);--config-language-go:var(--config-color-normal);--config-language-go-contrast:var(--config-color-background);--config-language-dart:var(--config-color-normal);--config-language-dart-contrast:var(--config-color-background);--config-language-flutter:var(--config-color-normal);--config-language-flutter-contrast:var(--config-color-background);--config-modal-note-background:#15192b;--config-modal-note-border:#161b31;--config-modal-note-color:var(--config-color-normal);--config-switch-background:var(--config-color-normal);--config-console-background:#20263f;--config-console-nav-start:#1c2139;--config-console-nav-end:#151929;--config-console-nav-border:#171b30;--config-console-nav-switch-background:var(--config-color-focus);--config-console-nav-switch-color:var(--config-color-background);--config-console-nav-switch-arrow:url("data:image/svg+xml;utf8,")}.theme-light .force-light{display:block!important}.theme-dark .force-dark{display:block!important}.force-dark{display:none!important}.force-light{display:none!important}@font-face{font-family:Poppins;font-style:normal;font-weight:100;src:url(/fonts/poppins-v9-latin-100.eot);src:local('Poppins Thin'),local('Poppins-Thin'),url(/fonts/poppins-v9-latin-100.eot?#iefix) format('embedded-opentype'),url(/fonts/poppins-v9-latin-100.woff2) format('woff2'),url(/fonts/poppins-v9-latin-100.woff) format('woff'),url(/fonts/poppins-v9-latin-100.ttf) format('truetype'),url(/fonts/poppins-v9-latin-100.svg#Poppins) format('svg')}@font-face{font-family:Poppins;font-style:normal;font-weight:300;src:url(/fonts/poppins-v9-latin-300.eot);src:local('Poppins Light'),local('Poppins-Light'),url(/fonts/poppins-v9-latin-300.eot?#iefix) format('embedded-opentype'),url(/fonts/poppins-v9-latin-300.woff2) format('woff2'),url(/fonts/poppins-v9-latin-300.woff) format('woff'),url(/fonts/poppins-v9-latin-300.ttf) format('truetype'),url(/fonts/poppins-v9-latin-300.svg#Poppins) format('svg')}@font-face{font-family:Poppins;font-style:normal;font-weight:400;src:url(/fonts/poppins-v9-latin-regular.eot);src:local('Poppins Regular'),local('Poppins-Regular'),url(/fonts/poppins-v9-latin-regular.eot?#iefix) format('embedded-opentype'),url(/fonts/poppins-v9-latin-regular.woff2) format('woff2'),url(/fonts/poppins-v9-latin-regular.woff) format('woff'),url(/fonts/poppins-v9-latin-regular.ttf) format('truetype'),url(/fonts/poppins-v9-latin-regular.svg#Poppins) format('svg')}@font-face{font-family:Poppins;font-style:normal;font-weight:500;src:url(/fonts/poppins-v9-latin-500.eot);src:local('Poppins Medium'),local('Poppins-Medium'),url(/fonts/poppins-v9-latin-500.eot?#iefix) format('embedded-opentype'),url(/fonts/poppins-v9-latin-500.woff2) format('woff2'),url(/fonts/poppins-v9-latin-500.woff) format('woff'),url(/fonts/poppins-v9-latin-500.ttf) format('truetype'),url(/fonts/poppins-v9-latin-500.svg#Poppins) format('svg')}@font-face{font-family:Poppins;font-style:normal;font-weight:600;src:url(/fonts/poppins-v9-latin-600.eot);src:local('Poppins SemiBold'),local('Poppins-SemiBold'),url(/fonts/poppins-v9-latin-600.eot?#iefix) format('embedded-opentype'),url(/fonts/poppins-v9-latin-600.woff2) format('woff2'),url(/fonts/poppins-v9-latin-600.woff) format('woff'),url(/fonts/poppins-v9-latin-600.ttf) format('truetype'),url(/fonts/poppins-v9-latin-600.svg#Poppins) format('svg')}@font-face{font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url(/fonts/source-code-pro-v11-latin-regular.eot);src:local('Source Code Pro Regular'),local('SourceCodePro-Regular'),url(/fonts/source-code-pro-v11-latin-regular.eot?#iefix) format('embedded-opentype'),url(/fonts/source-code-pro-v11-latin-regular.woff2) format('woff2'),url(/fonts/source-code-pro-v11-latin-regular.woff) format('woff'),url(/fonts/source-code-pro-v11-latin-regular.ttf) format('truetype'),url(/fonts/source-code-pro-v11-latin-regular.svg#SourceCodePro) format('svg')}.padding{padding:30px}.padding-top{padding-top:30px!important}.padding-top-large{padding-top:50px!important}.padding-top-xl{padding-top:80px!important}.padding-bottom{padding-bottom:30px!important}.padding-bottom-large{padding-bottom:50px!important}.padding-bottom-xl{padding-bottom:80px!important}.margin-end{margin-right:20px!important}.margin-start{margin-left:20px!important}.margin-end-small{margin-right:10px!important}.margin-start-small{margin-left:10px!important}.margin-end-large{margin-right:50px!important}.margin-start-large{margin-left:50px!important}.margin-end-no{margin-right:0!important}.margin-start-no{margin-left:0!important}.margin-end-negative{margin-right:-30px!important}.margin-start-negative{margin-left:-30px!important}.margin-end-negative-small{margin-right:-15px!important}.margin-start-negative-small{margin-left:-15px!important}.margin-end-negative-tiny{margin-right:-5px!important}.margin-start-negative-tiny{margin-left:-5px!important}.margin-top{margin-top:30px!important}.margin-bottom{margin-bottom:30px!important}.margin-top-no{margin-top:0!important}.margin-bottom-no{margin-bottom:0!important}.margin-top-xxl{margin-top:140px!important}.margin-top-xl{margin-top:80px!important}.margin-top-large{margin-top:50px!important}.margin-top-small{margin-top:15px!important}.margin-top-tiny{margin-top:5px!important}.margin-top-negative{margin-top:-30px!important}.margin-top-negative-tiny{margin-top:-5px!important}.margin-top-negative-small{margin-top:-15px!important}.margin-top-negative-large{margin-top:-50px!important}.margin-top-negative-xl{margin-top:-80px!important}.margin-top-negative-xxl{margin-top:-100px!important}.margin-top-negative-xxxl{margin-top:-150px!important}.margin-bottom-xxl{margin-bottom:140px!important}.margin-bottom-xl{margin-bottom:80px!important}.margin-bottom-large{margin-bottom:50px!important}.margin-bottom-small{margin-bottom:15px!important}.margin-bottom-tiny{margin-bottom:5px!important}.margin-bottom-negative{margin-bottom:-30px!important}.margin-bottom-negative-tiny{margin-bottom:-5px!important}.margin-bottom-negative-small{margin-bottom:-15px!important}.margin-bottom-negative-large{margin-bottom:-50px!important}.margin-bottom-negative-xl{margin-bottom:-80px!important}.margin-bottom-negative-xl{margin-bottom:-100px!important}.force-left,.ide{direction:ltr;text-align:left}.force-right{direction:rtl;text-align:right}.pull-left{float:left}.pull-right{float:right}.ratio-wide{height:0;overflow:hidden;padding-top:56%;position:relative;width:100%}.ratio-wide>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-square{height:0;overflow:hidden;padding-top:56%;position:relative;width:100%}.ratio-square>*{position:absolute;top:0;left:0;width:100%;height:100%}.clear:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.phones-only{display:none}@media only screen and (max-width:550px){.phones-only{display:inherit!important}}.tablets-only{display:none}@media only screen and (min-width:551px) and (max-width:1198px){.tablets-only{display:inherit!important}}.desktops-only{display:none}@media only screen and (min-width:1199px){.desktops-only{display:inherit!important}}.phones-only-inline{display:none}@media only screen and (max-width:550px){.phones-only-inline{display:inline-block!important}}.tablets-only-inline{display:none}@media only screen and (min-width:551px) and (max-width:1198px){.tablets-only-inline{display:inline-block!important}}.desktops-only-inline{display:none}@media only screen and (min-width:1199px){.desktops-only-inline{display:inline-block!important}}*{font-family:Poppins,sans-serif;-webkit-font-smoothing:antialiased;font-weight:300}h1,h2,h3,h4,h5,h6{margin:0}h4,h5,h6{font-weight:400}.link,a{color:var(--config-color-link);text-decoration:none;border-left:2px solid transparent;border-right:2px solid transparent;transition:.2s;cursor:pointer}.link.disabled,a.disabled{opacity:.5}.link.tag:hover,a.tag:hover{opacity:.9}.link.danger,a.danger{color:var(--config-color-danger)}.link.link-animation-enabled,a.link-animation-enabled{display:inline-block}.link.link-animation-enabled:hover,a.link-animation-enabled:hover{transform:translateY(-2px)}.link-return-animation--start>i{display:inline-block;transition:.2s}.link-return-animation--start:hover>i{transform:translateX(-2px)}.link-return-animation--end>i{display:inline-block;transition:.2s}.link-return-animation--end:hover>i{transform:translateX(2px)}b,strong{font-weight:500}p{margin:0 0 20px 0;line-height:26px}small{font-size:16px;color:var(--config-color-fade)}.text-size-small{font-size:13px}.text-size-xs{font-size:10px}.text-size-normal{font-size:16px}.text-height-large{height:30px;line-height:30px}.text-height-small{line-height:13px}.text-one-liner{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.text-bold{font-weight:400!important}.text-bold-large{font-weight:500!important}.text-bold-xl{font-weight:600!important}.text-danger{color:var(--config-color-danger)!important}.text-success{color:var(--config-color-success)!important}.text-upper{text-transform:uppercase}.text-warning{color:var(--config-color-warning)}.text-focus{color:var(--config-color-focus)}.text-fade{color:var(--config-color-fade)}.text-green{color:var(--config-color-success)}.text-red{color:var(--config-color-danger)}.text-info{color:var(--config-color-info)}.text-yellow{color:#ffe28b}.text-disclaimer{font-size:11px;color:var(--config-color-fade)}.text-fade-extra{color:var(--config-color-fade);opacity:.5}.text-line-high-large{line-height:30px}.text-line-high-xl{line-height:40px}.text-sign{margin:5px 0;font-size:25px;width:25px;height:25px;line-height:25px;display:inline-block}.text-align-center{text-align:center}.text-align-start{text-align:left}.text-align-end{text-align:right}.text-align-left{text-align:left}.text-align-right{text-align:right}.text-dir-ltr{direction:ltr;display:inline-block}.text-dir-rtl{direction:rtl;display:inline-block}.icon-dot-3:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-o-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}i[class*=' icon-']:before,i[class^=icon-]:before{display:inline;line-height:unset}table{width:calc(100% + 60px);border-collapse:collapse;margin:-30px;border-radius:10px;overflow:hidden;position:relative;table-layout:fixed}table.y-scroll{overflow-y:auto}table thead{box-shadow:0 0 2px rgba(0,0,0,.25);border-bottom:solid 1px var(--config-color-fade-super);font-size:14px}table.small{font-size:14px}table.open-end tbody tr:last-child{border-bottom:none;font-weight:700;background:#f7fbf7}table.full tbody td,table.full tbody th{vertical-align:top;white-space:normal;overflow:auto;line-height:24px;padding-top:20px;padding-bottom:20px;height:auto}table .avatar{width:30px;height:30px}table tr{border-bottom:solid 1px var(--config-color-fade-super)}table tr:last-child{border-bottom:none}table tr:nth-child(even){background:var(--config-color-background-fade-super)}table tr.selected{background:var(--config-note-background)}table tr.selected td,table tr.selected td span{font-weight:500}table th{text-align:left;font-weight:400}table th i{color:var(--config-color-fade);font-size:10px;display:inline-block;vertical-align:top;line-height:16px;padding:0 3px}table td,table th{height:65px;padding:0 15px;line-height:50px}table td:first-child,table th:first-child{padding-left:30px}table td:last-child,table th:last-child{padding-right:30px}table td,table th{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){table.vertical{border-top:solid 1px var(--config-color-fade-super);display:block;overflow:hidden;padding-top:12px}table.vertical .hide{display:none}table.vertical tbody,table.vertical td,table.vertical th,table.vertical thead,table.vertical tr{width:100%;display:block}table.vertical th,table.vertical tr{padding-top:12px;padding-bottom:12px}table.vertical th:first-child,table.vertical tr:first-child{padding-top:0}table.vertical td,table.vertical th{padding:5px 20px!important;text-overflow:ellipsis;white-space:normal;height:40px;line-height:40px;width:calc(100% - 40px)}table.vertical td:first-child,table.vertical td:last-child,table.vertical th:first-child,table.vertical th:last-child{padding:0 10px}table.vertical td:last-child,table.vertical th:last-child{padding-bottom:0}table.vertical td p,table.vertical th p{display:inline-block;width:calc(100% - 40px)}table.vertical td:not([data-title=""]):before{content:attr(data-title);margin-right:4px;font-weight:400}table.vertical thead{display:none}}.zone{max-width:var(--config-width-xl);margin:0 auto 40px auto}.zone.xxxl{max-width:calc(1400px - 100px)}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.zone.xxxl{max-width:100%}}.zone.xxl{max-width:var(--config-width-xxl)}.zone.xl{max-width:var(--config-width-xl)}.zone.large{max-width:var(--config-width-large)}.zone.medium{max-width:var(--config-width-medium)}.zone.small{max-width:var(--config-width-small)}.row{position:relative;margin:0 -50px;padding-left:50px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.row{margin:0 -30px;padding-left:30px}}.row.force-ltr>.col{float:left}.row.force-rtl>.col{float:right}.row.force-reverse>.col{float:right}.row.wide{margin:0 -100px;padding-left:100px}.row.wide>.span-1{width:calc(8.33333333% * 1 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-2{width:calc(8.33333333% * 2 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-3{width:calc(8.33333333% * 3 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-4{width:calc(8.33333333% * 4 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-5{width:calc(8.33333333% * 5 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-6{width:calc(8.33333333% * 6 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-7{width:calc(8.33333333% * 7 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-8{width:calc(8.33333333% * 8 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-9{width:calc(8.33333333% * 9 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-10{width:calc(8.33333333% * 10 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-11{width:calc(8.33333333% * 11 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-12{width:calc(8.33333333% * 12 - 100px);box-sizing:content-box;padding-right:100px}.row.thin{margin:0 -20px;padding-left:20px}.row.thin>.span-1{width:calc(8.33333333% * 1 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-2{width:calc(8.33333333% * 2 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-3{width:calc(8.33333333% * 3 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-4{width:calc(8.33333333% * 4 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-5{width:calc(8.33333333% * 5 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-6{width:calc(8.33333333% * 6 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-7{width:calc(8.33333333% * 7 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-8{width:calc(8.33333333% * 8 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-9{width:calc(8.33333333% * 9 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-10{width:calc(8.33333333% * 10 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-11{width:calc(8.33333333% * 11 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-12{width:calc(8.33333333% * 12 - 20px);box-sizing:content-box;padding-right:20px}.row.modalize{margin:0 -30px;padding-left:30px}.row.modalize>.span-1{width:calc(8.33333333% * 1 - 30px);box-sizing:content-box;padding-right:30px}.row.modalize>.span-2{width:calc(8.33333333% * 2 - 30px);box-sizing:content-box;padding-right:30px}.row.modalize>.span-3{width:calc(8.33333333% * 3 - 30px);box-sizing:content-box;padding-right:30px}.row.modalize>.span-4{width:calc(8.33333333% * 4 - 30px);box-sizing:content-box;padding-right:30px}.row.modalize>.span-5{width:calc(8.33333333% * 5 - 30px);box-sizing:content-box;padding-right:30px}.row.modalize>.span-6{width:calc(8.33333333% * 6 - 30px);box-sizing:content-box;padding-right:30px}.row.modalize>.span-7{width:calc(8.33333333% * 7 - 30px);box-sizing:content-box;padding-right:30px}.row.modalize>.span-8{width:calc(8.33333333% * 8 - 30px);box-sizing:content-box;padding-right:30px}.row.modalize>.span-9{width:calc(8.33333333% * 9 - 30px);box-sizing:content-box;padding-right:30px}.row.modalize>.span-10{width:calc(8.33333333% * 10 - 30px);box-sizing:content-box;padding-right:30px}.row.modalize>.span-11{width:calc(8.33333333% * 11 - 30px);box-sizing:content-box;padding-right:30px}.row.modalize>.span-12{width:calc(8.33333333% * 12 - 30px);box-sizing:content-box;padding-right:30px}.row:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.row .col{float:left;box-sizing:border-box}.row .col.sticky-top{position:sticky;top:90px}.row .col.sticky-bottom{position:sticky;bottom:0}.row .span-1{width:calc(8.33333333% * 1 - 40px);box-sizing:content-box;padding-right:40px}.row .span-2{width:calc(8.33333333% * 2 - 40px);box-sizing:content-box;padding-right:40px}.row .span-3{width:calc(8.33333333% * 3 - 40px);box-sizing:content-box;padding-right:40px}.row .span-4{width:calc(8.33333333% * 4 - 40px);box-sizing:content-box;padding-right:40px}.row .span-5{width:calc(8.33333333% * 5 - 40px);box-sizing:content-box;padding-right:40px}.row .span-6{width:calc(8.33333333% * 6 - 40px);box-sizing:content-box;padding-right:40px}.row .span-7{width:calc(8.33333333% * 7 - 40px);box-sizing:content-box;padding-right:40px}.row .span-8{width:calc(8.33333333% * 8 - 40px);box-sizing:content-box;padding-right:40px}.row .span-9{width:calc(8.33333333% * 9 - 40px);box-sizing:content-box;padding-right:40px}.row .span-10{width:calc(8.33333333% * 10 - 40px);box-sizing:content-box;padding-right:40px}.row .span-11{width:calc(8.33333333% * 11 - 40px);box-sizing:content-box;padding-right:40px}.row .span-12{width:calc(8.33333333% * 12 - 40px);box-sizing:content-box;padding-right:40px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.row.responsive{width:100%;padding:0;margin:0}.row.responsive>.span-1,.row.responsive>.span-10,.row.responsive>.span-11,.row.responsive>.span-12,.row.responsive>.span-2,.row.responsive>.span-3,.row.responsive>.span-4,.row.responsive>.span-5,.row.responsive>.span-6,.row.responsive>.span-7,.row.responsive>.span-8,.row.responsive>.span-9{width:calc(8.33333333% * 12 - 0px)!important;box-sizing:content-box!important;padding-right:0!important;width:100%!important}}.tiles{position:relative}.tiles:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.tiles>*{margin-right:50px!important;float:left;width:calc(33.3333% - 33.3333px)}.tiles>* .photo-title{width:calc(100% + 30px);height:15px;margin:-15px -15px 10px -15px;border-radius:10px 10px 0 0;background:var(--config-color-fade-super);border-bottom:solid 1px var(--config-color-fade-super)}.tiles>:nth-child(3n){margin-right:0!important}@media only screen and (min-width:551px) and (max-width:1198px){.tiles>li{width:calc(50% - 25px)}.tiles>li:nth-child(3n){margin-right:50px!important}.tiles>li:nth-child(2n){margin-right:0!important}}@media only screen and (max-width:550px){.tiles>li{width:100%;margin-right:0!important}}@font-face{font-family:fontello;src:url(data:application/octet-stream;base64,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) format('woff'),url(data:application/octet-stream;base64,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AADoMAAA6DAAAAAxAADoMQAA6DEAAAAyAADoMgAA6DIAAAAzAADoMwAA6DMAAAA0AADoNAAA6DQAAAA1AADoNQAA6DUAAAA2AADoNgAA6DYAAAA3AADoNwAA6DcAAAA4AADoOAAA6DgAAAA5AADoOQAA6DkAAAA6AADoOgAA6DoAAAA7AADoOwAA6DsAAAA8AADoPAAA6DwAAAA9AADoPQAA6D0AAAA+AADoPgAA6D4AAAA/AADoPwAA6D8AAABAAADoQAAA6EAAAABBAADoQQAA6EEAAABCAADoQgAA6EIAAABDAADoQwAA6EMAAABEAADoRAAA6EQAAABFAADoRQAA6EUAAABGAADoRgAA6EYAAABHAADoRwAA6EcAAABIAADoSAAA6EgAAABJAADoSQAA6EkAAABKAADoSgAA6EoAAABLAADoSwAA6EsAAABMAADoTAAA6EwAAABNAADoTQAA6E0AAABOAADoTgAA6E4AAABPAADoTwAA6E8AAABQAADwjgAA8I4AAABRAADwmwAA8JsAAABSAADwsAAA8LAAAABTAADwxQAA8MUAAABUAADwygAA8MoAAABVAADwywAA8MsAAABWAADwzQAA8M0AAABXAADw3AAA8NwAAABYAADw4QAA8OEAAABZAADxGAAA8RgAAABaAADxHAAA8RwAAABbAADxIQAA8SEAAABcAADxMgAA8TIAAABdAADxNwAA8TcAAABeAADxOAAA8TgAAABfAADxcQAA8XEAAABgAADxegAA8XoAAABhAADxkgAA8ZIAAABiAADxkwAA8ZMAAABjAADxnAAA8ZwAAABkAADxoAAA8aAAAABlAADxrQAA8a0AAABmAADxwAAA8cAAAABnAADxzQAA8c0AAABoAADx3AAA8dwAAABpAADx5QAA8eUAAABqAADx/gAA8f4AAABrAADyMQAA8jEAAABsAADyOgAA8joAAABtAADylgAA8pYAAABuAADyxgAA8sYAAABvAAIAAP+xAsoDDAAVAB4AJUAiAAUBBW8DAQEEAW8ABAIEbwACAAJvAAAAZhMXEREXMgYFGislFAYjISImNTQ+AxcWMjcyHgMDFAYiLgE2HgECykYx/iQxRgoYKj4tScpKKkImHAiPfLR6BIKshEU8WFg8MFRWPCgBSEgmPlRWAcBYfn6wgAJ8AAAC//7/zgPq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eSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAEMAbwBwAHkAcgBpAGcAaAB0ACAAKABDACkAIAAyADAAMgAwACAAYgB5ACAAbwByAGkAZwBpAG4AYQBsACAAYQB1AHQAaABvAHIAcwAgAEAAIABmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQBmAG8AbgB0AGUAbABsAG8AUgBlAGcAdQBsAGEAcgBmAG8AbgB0AGUAbABsAG8AZgBvAG4AdABlAGwAbABvAFYAZQByAHMAaQBvAG4AIAAxAC4AMABmAG8AbgB0AGUAbABsAG8ARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAAR1c2VyBmZvbGRlcgRsaXN0BWxvZ2luA2NvZwd0d2l0dGVyC2FydGljbGUtYWx0BmNhbmNlbARob21lCGRvd24tZGlyCGZhY2Vib29rCGFzdGVyaXNrBnVwbG9hZAlzdG9wd2F0Y2gGZXhwb3J0BWhlYXJ0BHBsdXMGdXAtZGlyBG1lbnUJbGVmdC1vcGVuCnJpZ2h0LW9wZW4FaW5ib3gGd3JlbmNoB2NvbW1lbnQNc3RhY2tvdmVyZmxvdwhxdWVzdGlvbgpvay1jaXJjbGVkB3dhcm5pbmcEbWFpbARsaW5rB2tleS1pbnYFdHJhc2gIZG93bmxvYWQHZ2xhc3NlcwZxcmNvZGUHc2h1ZmZsZQNleWUEbG9jawZzZWFyY2gEYmVsbAV1c2Vycwhsb2NhdGlvbglicmllZmNhc2UJaW5zdGFncmFtBWNsb2NrBXBob25lCGNhbGVuZGFyBXByaW50BGVkaXQEYm9sZAZpdGFsaWMGcm9ja2V0CHdoYXRzYXBwBWRvdC0zDGluZm8tY2lyY2xlZAh2aWRlb2NhbQtxdW90ZS1yaWdodAdwaWN0dXJlB3BhbGV0dGUEbGFtcAlib29rLW9wZW4Cb2sIY2hhdC1hbHQHYXJjaGl2ZQRwbGF5BXBhdXNlCWRvd24tb3Blbgd1cC1vcGVuBW1pbnVzCGV4Y2hhbmdlB25ldHdvcmsHZGlzY29yZAhtb29uLWludgdzdW4taW52DmNhbmNlbC1jaXJjbGVkCWxpZ2h0bmluZwNkZXYJcmlnaHQtZGlyCGxlZnQtZGlyBGZpcmUIbGluay1leHQOZ2l0aHViLWNpcmNsZWQGZmlsdGVyBGRvY3MLbGlzdC1idWxsZXQNbGlzdC1udW1iZXJlZAl1bmRlcmxpbmUEc29ydAhsaW5rZWRpbgVzbWlsZQhrZXlib2FyZARjb2RlBnNoaWVsZBJhbmdsZS1jaXJjbGVkLWxlZnQTYW5nbGUtY2lyY2xlZC1yaWdodAliaXRidWNrZXQHd2luZG93cwtkb3QtY2lyY2xlZAp3aGVlbGNoYWlyBGJhbmsGZ29vZ2xlD2J1aWxkaW5nLWZpbGxlZAhkYXRhYmFzZQhsaWZlYnVveQZoZWFkZXIKYmlub2N1bGFycwpjaGFydC1hcmVhCXBpbnRlcmVzdAZtZWRpdW0GZ2l0bGFiCHRlbGVncmFtAAAAAQAB//8ADwAAAAAAAAAAAAAAAAAAAAAAGAAYABgAGAOB/zoDgf86sAAsILAAVVhFWSAgS7gADlFLsAZTWliwNBuwKFlgZiCKVViwAiVhuQgACABjYyNiGyEhsABZsABDI0SyAAEAQ2BCLbABLLAgYGYtsAIsIGQgsMBQsAQmWrIoAQpDRWNFUltYISMhG4pYILBQUFghsEBZGyCwOFBYIbA4WVkgsQEKQ0VjRWFksChQWCGxAQpDRWNFILAwUFghsDBZGyCwwFBYIGYgiophILAKUFhgGyCwIFBYIbAKYBsgsDZQWCGwNmAbYFlZWRuwAStZ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) format('truetype')}[class*=" icon-"]:before,[class^=icon-]:before{font-family:fontello;font-style:normal;font-weight:400;speak:never;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em}.icon-user:before{content:'\e800'}.icon-folder:before{content:'\e801'}.icon-list:before{content:'\e802'}.icon-login:before{content:'\e803'}.icon-cog:before{content:'\e804'}.icon-twitter:before{content:'\e805'}.icon-article-alt:before{content:'\e806'}.icon-cancel:before{content:'\e807'}.icon-home:before{content:'\e808'}.icon-down-dir:before{content:'\e809'}.icon-facebook:before{content:'\e80a'}.icon-asterisk:before{content:'\e80b'}.icon-upload:before{content:'\e80c'}.icon-stopwatch:before{content:'\e80d'}.icon-export:before{content:'\e80e'}.icon-heart:before{content:'\e80f'}.icon-plus:before{content:'\e810'}.icon-up-dir:before{content:'\e811'}.icon-menu:before{content:'\e812'}.icon-left-open:before{content:'\e813'}.icon-right-open:before{content:'\e814'}.icon-inbox:before{content:'\e815'}.icon-wrench:before{content:'\e816'}.icon-comment:before{content:'\e817'}.icon-stackoverflow:before{content:'\e818'}.icon-question:before{content:'\e819'}.icon-ok-circled:before{content:'\e81a'}.icon-warning:before{content:'\e81b'}.icon-mail:before{content:'\e81c'}.icon-link:before{content:'\e81d'}.icon-key-inv:before{content:'\e81e'}.icon-trash:before{content:'\e81f'}.icon-download:before{content:'\e820'}.icon-glasses:before{content:'\e821'}.icon-qrcode:before{content:'\e822'}.icon-shuffle:before{content:'\e823'}.icon-eye:before{content:'\e824'}.icon-lock:before{content:'\e825'}.icon-search:before{content:'\e826'}.icon-bell:before{content:'\e827'}.icon-users:before{content:'\e828'}.icon-location:before{content:'\e829'}.icon-briefcase:before{content:'\e82a'}.icon-instagram:before{content:'\e82b'}.icon-clock:before{content:'\e82c'}.icon-phone:before{content:'\e82d'}.icon-calendar:before{content:'\e82e'}.icon-print:before{content:'\e82f'}.icon-edit:before{content:'\e830'}.icon-bold:before{content:'\e831'}.icon-italic:before{content:'\e832'}.icon-rocket:before{content:'\e833'}.icon-whatsapp:before{content:'\e834'}.icon-dot-3:before{content:'\e835'}.icon-info-circled:before{content:'\e836'}.icon-videocam:before{content:'\e837'}.icon-quote-right:before{content:'\e838'}.icon-picture:before{content:'\e839'}.icon-palette:before{content:'\e83a'}.icon-lamp:before{content:'\e83b'}.icon-book-open:before{content:'\e83c'}.icon-ok:before{content:'\e83d'}.icon-chat-alt:before{content:'\e83e'}.icon-archive:before{content:'\e83f'}.icon-play:before{content:'\e840'}.icon-pause:before{content:'\e841'}.icon-down-open:before{content:'\e842'}.icon-up-open:before{content:'\e843'}.icon-minus:before{content:'\e844'}.icon-exchange:before{content:'\e845'}.icon-network:before{content:'\e846'}.icon-discord:before{content:'\e847'}.icon-moon-inv:before{content:'\e848'}.icon-sun-inv:before{content:'\e849'}.icon-cancel-circled:before{content:'\e84a'}.icon-lightning:before{content:'\e84b'}.icon-dev:before{content:'\e84c'}.icon-right-dir:before{content:'\e84d'}.icon-left-dir:before{content:'\e84e'}.icon-fire:before{content:'\e84f'}.icon-link-ext:before{content:'\f08e'}.icon-github-circled:before{content:'\f09b'}.icon-filter:before{content:'\f0b0'}.icon-docs:before{content:'\f0c5'}.icon-list-bullet:before{content:'\f0ca'}.icon-list-numbered:before{content:'\f0cb'}.icon-underline:before{content:'\f0cd'}.icon-sort:before{content:'\f0dc'}.icon-linkedin:before{content:'\f0e1'}.icon-smile:before{content:'\f118'}.icon-keyboard:before{content:'\f11c'}.icon-code:before{content:'\f121'}.icon-shield:before{content:'\f132'}.icon-angle-circled-left:before{content:'\f137'}.icon-angle-circled-right:before{content:'\f138'}.icon-bitbucket:before{content:'\f171'}.icon-windows:before{content:'\f17a'}.icon-dot-circled:before{content:'\f192'}.icon-wheelchair:before{content:'\f193'}.icon-bank:before{content:'\f19c'}.icon-google:before{content:'\f1a0'}.icon-building-filled:before{content:'\f1ad'}.icon-database:before{content:'\f1c0'}.icon-lifebuoy:before{content:'\f1cd'}.icon-header:before{content:'\f1dc'}.icon-binoculars:before{content:'\f1e5'}.icon-chart-area:before{content:'\f1fe'}.icon-pinterest:before{content:'\f231'}.icon-medium:before{content:'\f23a'}.icon-gitlab:before{content:'\f296'}.icon-telegram:before{content:'\f2c6'}.datalist-polyfill{list-style:none;display:none;background:#fff;box-shadow:0 2px 2px #999;position:absolute;left:0;top:0;margin:0;padding:0;max-height:300px;overflow-y:auto}.datalist-polyfill:empty{display:none!important}.datalist-polyfill>li{padding:3px;font:13px "Lucida Grande",Sans-Serif}.datalist-polyfill__active{background:#3875d7;color:#fff}date-input-polyfill{z-index:1000!important;max-width:320px!important;width:320px!important}date-input-polyfill .monthSelect-wrapper,date-input-polyfill .yearSelect-wrapper{height:50px;line-height:50px;padding:0;width:40%!important;margin-bottom:10px!important}date-input-polyfill .monthSelect-wrapper select,date-input-polyfill .yearSelect-wrapper select{padding:0 12px;height:50px;line-height:50px;box-sizing:border-box}date-input-polyfill .yearSelect-wrapper{width:35%!important}date-input-polyfill table{width:100%!important;max-width:100%!important;padding:0 12px 12px 12px!important;box-sizing:border-box;margin:0}date-input-polyfill table td:first-child,date-input-polyfill table td:last-child,date-input-polyfill table th:first-child,date-input-polyfill table th:last-child{width:32px!important;padding:4px!important}date-input-polyfill select{margin-bottom:10px}date-input-polyfill button{width:25%!important;height:50px!important;line-height:50px!important;margin-bottom:10px!important;background:inherit;position:relative;color:inherit;padding:inherit;box-sizing:inherit;border-radius:inherit;font-size:inherit;box-shadow:none;border:none;border-bottom:none!important}::placeholder{color:var(--config-color-placeholder);text-align:left}::-webkit-input-placeholder{text-align:left}input:-moz-placeholder{text-align:left}form.inline{display:inline-block}input,textarea{background:var(--config-color-background-input)}input[type=file],input[type=file]::-webkit-file-upload-button{cursor:pointer}.button,button{display:inline-block;background:var(--config-color-focus);border-radius:26px;border:none;color:var(--config-color-background-fade);height:52px;line-height:52px;padding:0 25px;cursor:pointer;font-size:16px;box-sizing:border-box;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.button:focus,.button:hover,button:focus,button:hover{background:var(--config-color-focus-hover)}.button.fly,button.fly{position:fixed;z-index:2;bottom:30px;right:30px}@media only screen and (max-width:550px){.button.fly,button.fly{right:15px}}.button.fill,button.fill{display:block;width:100%;text-align:center;padding:0 10px!important}.button.fill-aligned,button.fill-aligned{display:block;width:100%;text-align:left;padding:0 20px!important}.button.icon,button.icon{padding-right:30px!important}.button.icon-reduce,button.icon-reduce{padding-left:15px!important}.button.reverse,button.reverse{background:0 0;height:50px;line-height:48px;padding:0 23px;color:var(--config-color-focus);border:solid 2px var(--config-color-focus)}.button.reverse:focus,.button.reverse:hover,button.reverse:focus,button.reverse:hover{color:var(--config-color-focus-hover);border-color:var(--config-color-focus-hover)}.button.small,button.small{padding:0 15px;height:40px;line-height:36px;font-size:13px}.button.tick,button.tick{background:var(--config-color-fade-light);color:var(--config-color-dark);border-radius:20px;padding:0 10px;line-height:30px;height:30px;font-size:12px;display:inline-block}.button.tick.selected,button.tick.selected{background:var(--config-color-dark);color:var(--config-color-fade)}.button.round,button.round{width:52px;padding:0}.button.round.small,button.round.small{font-size:12px;width:30px;height:30px;line-height:30px}.button.white,button.white{background:#fff;color:var(--config-color-focus)}.button.white.reverse,button.white.reverse{color:#fff;background:0 0;border:solid 2px #fff}.button.trans,button.trans{background:0 0!important}.button.trans.reverse,button.trans.reverse{background:0 0!important}.button.success,button.success{background:var(--config-color-success)}.button.success.reverse,button.success.reverse{color:var(--config-color-success);background:#fff;border:solid 2px var(--config-color-success)}.button.danger,button.danger{background:var(--config-color-danger);color:#fff}.button.danger.reverse,button.danger.reverse{color:var(--config-color-danger);background:var(--config-color-background-fade);border:solid 2px var(--config-color-danger)}.button.dark,button.dark{background:var(--config-color-dark);color:var(--config-color-background-fade)}.button.dark.reverse,button.dark.reverse{color:var(--config-color-dark);background:var(--config-color-background-fade);border:solid 2px var(--config-color-dark)}.button .disabled,.button.disabled,.button:disabled,button .disabled,button.disabled,button:disabled{color:var(--config-color-normal);background:var(--config-color-background-dark);opacity:.6;cursor:default}.button.link,button.link{background:0 0;border-radius:0;color:var(--config-color-link);height:auto;line-height:normal;padding:0;padding-right:0!important}.button.link:focus,button.link:focus{box-shadow:inherit}.button.strip,button.strip{background:0 0;height:auto;line-height:16px;color:inherit;padding:0 5px}.button.facebook,button.facebook{color:#fff!important;background:#4070b4!important}.button.twitter,button.twitter{color:#fff!important;background:#56c2ea!important}.button.linkedin,button.linkedin{color:#fff!important;background:#0076b5!important}.button.github,button.github{color:#fff!important;background:#7e7c7c!important}.button:focus,button:focus{outline:0}label{margin-bottom:15px;display:block;line-height:normal}label.inline{display:inline}.input,input[type=date],input[type=datetime-local],input[type=email],input[type=file],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{-webkit-appearance:none;-moz-appearance:none;-webkit-transform:translateZ(0);box-sizing:content-box;color:#313131;height:40px;line-height:40px;border:solid 1px var(--config-color-fade-light);border-radius:10px;padding:5px 15px;font-size:16px;display:block;width:calc(100% - 32px);margin-bottom:30px}.input[type=file],input[type=date][type=file],input[type=datetime-local][type=file],input[type=email][type=file],input[type=file][type=file],input[type=number][type=file],input[type=password][type=file],input[type=search][type=file],input[type=tel][type=file],input[type=text][type=file],input[type=url][type=file],select[type=file],textarea[type=file]{line-height:0;padding:15px;height:auto}.input:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=file]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{outline:0;border-color:#b3d7fd}.input:disabled,input[type=date]:disabled,input[type=datetime-local]:disabled,input[type=email]:disabled,input[type=file]:disabled,input[type=number]:disabled,input[type=password]:disabled,input[type=search]:disabled,input[type=tel]:disabled,input[type=text]:disabled,input[type=url]:disabled,select:disabled,textarea:disabled{color:var(--config-color-normal);background:var(--config-color-fade-super);opacity:1!important}.input.strip,input[type=date].strip,input[type=datetime-local].strip,input[type=email].strip,input[type=file].strip,input[type=number].strip,input[type=password].strip,input[type=search].strip,input[type=tel].strip,input[type=text].strip,input[type=url].strip,select.strip,textarea.strip{border:none;border-radius:0;padding:5px 0;width:100%;background-color:transparent;background-position:right 2px top 50%;border-bottom:solid 1px var(--config-color-fade-light);color:var(--config-color-placeholder)}.input.strip:focus,input[type=date].strip:focus,input[type=datetime-local].strip:focus,input[type=email].strip:focus,input[type=file].strip:focus,input[type=number].strip:focus,input[type=password].strip:focus,input[type=search].strip:focus,input[type=tel].strip:focus,input[type=text].strip:focus,input[type=url].strip:focus,select.strip:focus,textarea.strip:focus{border-color:#b3d7fd}.input:-webkit-autofill::first-line,input[type=date]:-webkit-autofill::first-line,input[type=datetime-local]:-webkit-autofill::first-line,input[type=email]:-webkit-autofill::first-line,input[type=file]:-webkit-autofill::first-line,input[type=number]:-webkit-autofill::first-line,input[type=password]:-webkit-autofill::first-line,input[type=search]:-webkit-autofill::first-line,input[type=tel]:-webkit-autofill::first-line,input[type=text]:-webkit-autofill::first-line,input[type=url]:-webkit-autofill::first-line,select:-webkit-autofill::first-line,textarea:-webkit-autofill::first-line{font-weight:300;font-size:16px}input[type=email],input[type=url]{direction:ltr}input[type=email]::placeholder,input[type=url]::placeholder{text-align:left;direction:ltr}select{background:0 0;-webkit-appearance:none;background-image:var(--config-console-nav-switch-arrow);background-position:right 15px top 50%;background-repeat:no-repeat;background-color:var(--config-color-background-input);width:calc(100% - 62px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:45px}select:-webkit-autofill{background-image:url("data:image/svg+xml;utf8,")!important;background-position:100% 50%!important;background-repeat:no-repeat!important}input[type=search],input[type=search].strip{background:0 0;-webkit-appearance:none;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAdZJREFUWIXt1s2LjWEYBvDfnDMzFpNIamZIFrMiJYMyFmKhZKfOwoiFr2LFn2BByG6WVrKwMcjWxgoLIlKIUk6RrzAjZWZ8LO731FlwvB+PUbjq6X0X7/VeV/d9P9fz8IdRL8Hpw3x8w0xaOz9GNxq4gJeZcGs1cRab0fU7xLfgMSYzoT3YgNXYhIO4iM+4iTWphGs4jikcFSXvhEGczr4/UFW8C2N4jXUFudvwCYeqGNgnSr6yJH8rpkWLCqMfE9hdUryFE3iC3qLEk7ij+kT34Q32FiHV8Qr7K4q3cArXihCGxd5elMjARnzBvE4f1dreV+AtnicycC/7/7K8BhaIvqXCO3zFwrwGZtCT0EAtW9N5DTSxWGR/CizNns/yEgbFEK5NZGCnaEPHE7e9Ai9wA6OJDIzistgJubFdxHB/RfFVYgCHixJruI5x5dNwDm6J47sUhkTvjpUw0Y1zeOrXR3hHjOA9zmBuTs4Arog4/yhuUZWwHPdFMh7280BZgiP4ILJ/UuymqRQmejPxphiquzgvKnMJDzOxB9glZqiRiecykbfHdawX98EhcdxO4BGu4nYm2EJDzEKPSMIdYrBnFYUq8d/EP2di1gey3cS4ErflvxffASbhcakIINaMAAAAAElFTkSuQmCC);background-color:var(--config-color-background-input);background-position:left 15px top 50%;background-repeat:no-repeat;background-size:20px 20px;width:calc(100% - 60px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:45px}select[multiple]{min-height:75px;padding:5px 10px!important;padding-right:50px!important}select[multiple] option{padding:10px 4px;border-bottom:solid 1px #f1f1f1}select[multiple] option:last-child{border-bottom:none}textarea{min-height:75px;resize:vertical;line-height:32px;padding:5px 15px}textarea.tall{min-height:180px}fieldset{border:none;margin:0;padding:0}.counter{font-size:13px;text-align:right;color:var(--config-color-fade);margin-top:-20px;margin-bottom:20px}.file-preview{background:var(--config-color-background-input) url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAIElEQVQoU2NkYGAwZsAEZ9GFGIeIQix+wfQgyDODXSEAcUwGCrDSHgkAAAAASUVORK5CYII=)!important;border:solid 1px #e2e2e2;box-shadow:inset 0 0 3px #a0a0a0;border-radius:8px;width:calc(100% - 2px);max-height:180px;visibility:visible!important}.video-preview{padding-top:56%;position:relative;border-radius:10px;background:#e7e7e7;overflow:hidden;margin:0}.video-preview iframe{position:absolute;top:0;width:100%;height:100%;border:none}.map-preview{padding-top:50%;position:relative;margin-bottom:10px;border-radius:10px;background:#e7e7e7;overflow:hidden;box-shadow:0 0 30px rgba(218,218,218,.5)}.map-preview iframe{position:absolute;top:0;width:100%;height:100%;border:none}.tooltip{position:relative}.tooltip.large:hover:after{white-space:normal;width:280px}.tooltip.small:hover:after{white-space:normal;width:180px}.tooltip:hover:after{white-space:nowrap;background:var(--config-color-tooltip-background);border-radius:5px;bottom:26px;color:var(--config-color-tooltip-text);content:attr(data-tooltip);padding:5px 15px;position:absolute;font-size:13px;line-height:20px;z-index:98;left:20%;margin-left:-30px;word-break:break-word}.tooltip:hover:before{border:solid;border-color:var(--config-color-tooltip-background) transparent;border-width:6px 6px 0 6px;bottom:20px;content:"";position:absolute;z-index:99;left:5px}.tooltip.down:hover:after{top:26px;bottom:inherit}.tooltip.down:hover:before{top:20px;border-width:0 6px 6px 6px;bottom:inherit}.tag{display:inline-block;background:var(--config-color-fade-light);color:var(--config-color-fade);border-radius:12px;line-height:24px;padding:0 8px;font-size:12px;box-shadow:none!important;border:none;height:auto;width:auto;white-space:nowrap;text-overflow:ellipsis}.tag:hover{border:none}.tag.green{background:var(--config-color-success);color:#fff}.tag.red{background:var(--config-color-danger);color:#fff}.tag.yellow{background:#ffe28b;color:#494949}.tag.focus{background:var(--config-color-focus);color:#fff}.tag.dark{background:var(--config-color-dark);color:#e7e7e7}.tag.blue{background:var(--config-color-info);color:#fff}.tag.link{background:var(--config-color-link);color:#fff}input[type=checkbox],input[type=radio]{width:26px;height:16px;position:relative;-webkit-appearance:none;border-radius:0;border:none;background:0 0;vertical-align:middle;margin:0}input[type=checkbox]:after,input[type=radio]:after{content:"";display:block;width:20px;height:20px;background:var(--config-color-background-fade);top:-5px;border-radius:50%;position:absolute;border:solid 3px var(--config-color-focus);vertical-align:middle}input[type=checkbox]:checked:after,input[type=radio]:checked:after{text-align:center;font-family:fontello;content:'\e83d';font-size:16px;line-height:20px;color:var(--config-color-background-fade);background:var(--config-color-focus)}input[type=checkbox][type=radio]:checked:after,input[type=radio][type=radio]:checked:after{content:'';display:block;width:10px;height:10px;border-radius:50%;background:var(--config-color-background-fade);border:solid 8px var(--config-color-focus)}input[type=checkbox]:focus,input[type=radio]:focus{outline:0}input[type=checkbox]:focus:after,input[type=checkbox]:hover:after,input[type=radio]:focus:after,input[type=radio]:hover:after{outline:0;border-color:#000}input[type=checkbox]:checked:focus:after,input[type=checkbox]:checked:hover:after,input[type=radio]:checked:focus:after,input[type=radio]:checked:hover:after{border-color:var(--config-color-focus)}.input-copy{position:relative}.input-copy input,.input-copy textarea{padding-right:65px;width:calc(100% - 82px);resize:none}.input-copy .copy{position:absolute;top:0;right:0;border-left:solid 1px var(--config-color-fade-light);height:calc(100% - 2px);width:50px;line-height:50px;text-align:center;background:var(--config-color-background-focus);margin:1px;border-radius:0 10px 10px 0}.paging{color:var(--config-color-fade);padding:5px 15px;font-size:12px}.paging form{display:inline-block}.paging button:disabled{color:var(--config-color-background-fade);opacity:.6}.blue-snap iframe{-webkit-appearance:none;-moz-appearance:none;-webkit-transform:translateZ(0);box-sizing:content-box;color:#313131;height:40px;line-height:40px;border:solid 1px var(--config-color-fade-light);border-radius:10px;padding:5px 15px;font-size:16px;display:block;width:calc(100% - 32px);margin-bottom:30px;float:none!important;height:40px!important;width:calc(100% - 32px)!important;border:solid 1px #e2e2e2!important;background:0 0!important;position:static!important}.blue-snap iframe[type=file]{line-height:0;padding:15px;height:auto}.blue-snap iframe:focus{outline:0;border-color:#b3d7fd}.blue-snap iframe:disabled{color:var(--config-color-normal);background:var(--config-color-fade-super);opacity:1!important}.blue-snap iframe.strip{border:none;border-radius:0;padding:5px 0;width:100%;background-color:transparent;background-position:right 2px top 50%;border-bottom:solid 1px var(--config-color-fade-light);color:var(--config-color-placeholder)}.blue-snap iframe.strip:focus{border-color:#b3d7fd}.blue-snap iframe:-webkit-autofill::first-line{font-weight:300;font-size:16px}.blue-snap .error{font-size:12px;margin-top:-25px;color:var(--config-color-danger);height:40px;padding-left:2px}.pell{height:auto;padding-bottom:0;margin-bottom:0;padding-top:0;background:var(--config-color-background-input);line-height:normal!important;position:relative}.pell.hide{padding:0!important;height:1px;min-height:1px;max-height:1px;border:none;box-shadow:none;margin-bottom:20px;opacity:0}.pell [contenteditable=true]:empty:before{content:attr(placeholder);display:block;color:var(--config-color-placeholder)}.pell .pell-actionbar{border-bottom:solid 1px var(--config-color-fade-light);margin:0 -15px 15px -15px;padding:10px 15px;position:sticky;top:70px;background:var(--config-color-background-input);border-radius:10px 10px 0 0}.pell .pell-content{min-height:100px;display:block;padding:10px;margin:-10px;cursor:text}.pell .pell-content:focus{outline:0}.pell button{background:inherit;color:inherit;margin:0;padding:0;padding-right:15px;height:40px;line-height:40px;box-shadow:none;cursor:pointer;font-size:13px;border-radius:0}.pell button.pell-button-selected,.pell button:focus,.pell button:hover{color:var(--config-color-link)}.pell h1,.pell h2,.pell h3,.pell h4,.pell h5,.pell h6{text-align:inherit;margin-bottom:30px}.pell b,.pell strong{font-weight:700}.pell ol,.pell ul{margin:0 0 20px 0}.pell ol li,.pell ul li{display:list-item!important;list-style:inherit;list-style-position:inside!important;margin:0 20px 2px 20px}.pell ol li p,.pell ul li p{margin:0;display:inline}.pell ol li{list-style:decimal}.pell ol li::before{content:'';display:none}label.switch{line-height:42px}.switch,input[type=checkbox].button.switch,input[type=checkbox].switch{width:52px;height:32px;line-height:32px;border-radius:21px;background:var(--config-color-fade);display:inline-block;margin:0;padding:5px;padding-left:5px;padding-right:30px}.switch.on,.switch:checked,input[type=checkbox].button.switch.on,input[type=checkbox].button.switch:checked,input[type=checkbox].switch.on,input[type=checkbox].switch:checked{background-color:var(--config-color-success);padding-left:25px;padding-right:5px}.switch.on:focus,.switch.on:hover,.switch:checked:focus,.switch:checked:hover,input[type=checkbox].button.switch.on:focus,input[type=checkbox].button.switch.on:hover,input[type=checkbox].button.switch:checked:focus,input[type=checkbox].button.switch:checked:hover,input[type=checkbox].switch.on:focus,input[type=checkbox].switch.on:hover,input[type=checkbox].switch:checked:focus,input[type=checkbox].switch:checked:hover{background:var(--config-color-success)}.switch:focus,.switch:hover,input[type=checkbox].button.switch:focus,input[type=checkbox].button.switch:hover,input[type=checkbox].switch:focus,input[type=checkbox].switch:hover{background:var(--config-color-fade)}.switch:focus:after,.switch:hover:after,input[type=checkbox].button.switch:focus:after,input[type=checkbox].button.switch:hover:after,input[type=checkbox].switch:focus:after,input[type=checkbox].switch:hover:after{background:#fff}.switch:after,input[type=checkbox].button.switch:after,input[type=checkbox].switch:after{content:"";display:block;width:22px;height:22px;background:#fff;border-radius:50%;border:none;position:static;top:0}.password-meter{margin:-41px 10px 30px 10px;height:2px;background:0 0;max-width:100%;z-index:2;position:relative}.password-meter.weak{background:var(--config-color-danger)}.password-meter.medium{background:var(--config-color-success)}.password-meter.strong{background:var(--config-color-success)}.color-input:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.color-input .color-preview{width:53px;height:53px;float:left;margin-right:10px;background:#000;border-radius:10px;box-shadow:inset 0 0 3px #a0a0a0;position:relative}.color-input .color-preview input{opacity:0;position:absolute;top:0;bottom:0;left:0;right:0;width:100%;height:100%;cursor:pointer}.color-input input{text-transform:uppercase;float:left;width:calc(100% - 95px)}.grecaptcha-badge{box-shadow:none!important;border-radius:10px!important;overflow:hidden!important;background:#4d92df!important;bottom:25px}.grecaptcha-badge:hover{width:256px!important}.back{font-size:15px;line-height:24px;height:24px;margin-left:-15px;margin-top:-25px;margin-bottom:20px}.back span{font-weight:inherit!important}@media only screen and (max-width:550px){.back{margin-left:-5px}}hr{height:1px;background:var(--config-border-color)!important;border:none}hr.fade{opacity:.7}.upload{position:relative}.upload:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.upload input{position:absolute;top:0;left:0;opacity:0;cursor:pointer}.upload.single .preview{height:0;position:relative;padding-top:100%;width:100%;margin-bottom:15px!important}.upload.single .preview li{position:absolute;top:0;width:calc(100% - 20px);height:calc(100% - 20px);margin-right:0!important;margin-bottom:0!important}.upload .button{float:left;margin-right:10px!important}.upload .button.disabled,.upload .button.disabled:hover{background:0 0;color:inherit;border-color:inherit}.upload .count{float:left;line-height:52px}.upload .progress{background:var(--config-color-success);height:6px;border-radius:3px;margin-bottom:15px!important}.upload .preview:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.upload .preview li{float:left;margin-right:20px!important;margin-bottom:15px!important;background:var(--config-color-background-fade-super);width:150px;height:150px;line-height:148px;text-align:center;border-radius:20px;overflow:hidden;position:relative;cursor:pointer;border:solid 1px var(--config-color-background-dark)}.upload .preview li:hover:before{background:var(--config-color-focus)}.upload .preview li:before{content:'\e807';font-family:fontello;font-size:12px;position:absolute;width:20px;height:20px;display:block;top:8px;right:8px;text-align:center;line-height:20px;vertical-align:middle;border-radius:50%;background:#484848;color:#fff;z-index:1}.upload .preview li img{vertical-align:middle;max-height:150px;max-width:150px;-webkit-filter:drop-shadow(0 0 6px rgba(0, 0, 0, .3));filter:drop-shadow(0 0 1px rgba(0, 0, 0, .3))}.upload.wide .preview li{height:0;width:100%;position:relative;padding-top:30.547%;background:#e7e7e7;border-radius:10px;overflow:hidden;border:solid 1px #f9f9f9;margin:0}.upload.wide .preview li img{border-radius:10px;position:absolute;top:0;width:100%;display:block;opacity:1;max-width:inherit;max-height:inherit}ol{list-style:none;counter-reset:x-counter;padding:0}ol li{counter-increment:x-counter;line-height:30px;margin-bottom:30px;margin-left:45px}ol li::before{display:inline-block;content:counter(x-counter);color:var(--config-color-background-fade);background:var(--config-color-focus);border:solid 2px var(--config-color-focus);margin-right:15px;margin-left:-45px;width:26px;height:26px;border-radius:50%;text-align:center;line-height:26px}.required{color:var(--config-color-danger);font-size:8px;position:relative;top:-8px}.drop-list{position:relative;outline:0}.drop-list.open ul{display:block}.drop-list ul{position:relative;background:var(--config-color-background-fade);border-radius:10px;box-shadow:0 0 3px rgba(0,0,0,.05);padding:30px;display:block;border-bottom:none;box-shadow:0 0 6px rgba(0,0,0,.1);display:none;position:absolute;bottom:calc(100% + 10px);z-index:2;padding:0;left:-10px;max-width:280px;min-width:240px}.drop-list ul.padding-tiny{padding:5px}.drop-list ul.padding-xs{padding:10px}.drop-list ul.padding-small{padding:15px}.drop-list ul.y-scroll{overflow-y:auto}.drop-list ul.danger{background:var(--config-color-danger);color:#fff}.drop-list ul.danger .box{color:var(--config-color-normal);background:var(--config-color-background-fade)}.drop-list ul.danger>.button,.drop-list ul.danger>button{background:#fff;color:var(--config-color-danger)}.drop-list ul.note{background:var(--config-note-background)}.drop-list ul.focus{background:var(--config-color-focus);color:var(--config-color-background-fade)}.drop-list ul.focus .button,.drop-list ul.focus button{background:var(--config-color-background-fade);color:var(--config-color-focus)}.drop-list ul.line{background:0 0;border:solid 1px var(--config-color-background-dark);box-shadow:none}.drop-list ul.warning{background:var(--config-color-warning);color:#2d2d2d}.drop-list ul.warning .button,.drop-list ul.warning button{background:rgba(45,45,45,.8);color:var(--config-color-success)}.drop-list ul .tabs{border-bottom:solid 1px var(--config-border-color);margin:0 -30px;padding:0 30px!important}.drop-list ul>footer{margin:0 -30px -30px -30px;padding:15px 30px;background:var(--config-color-background-fade);border:solid 1px var(--config-border-color);border-radius:0 0 10px 10px}.drop-list ul hr{height:1px;background:var(--config-console-background);border:none;margin:30px -30px}.drop-list ul .label{position:absolute;top:10px;z-index:2;right:10px}.drop-list ul.fade-bottom{position:relative;overflow:hidden}.drop-list ul.fade-bottom:after{content:"";position:absolute;display:block;bottom:15px;width:100%;background:#000;background:linear-gradient(180deg,rgba(0,0,0,0) 0,var(--config-color-background-fade) 80%);height:100px;margin:0 -15px}.drop-list ul .header{position:static;height:40px;padding:20px 30px 20px 30px;margin-bottom:30px;margin:-30px -30px 20px -30px;background:var(--config-color-background-fade);border-bottom:solid 1px #efefef}.drop-list ul ul.numbers>li{position:relative;margin-left:30px;margin-right:50px}.drop-list ul ul.numbers>li hr{margin-left:-60px;margin-right:-80px}.drop-list ul ul.numbers>li .settings{position:absolute;top:3px;right:-50px}.drop-list ul ul.numbers>li::after{display:block;width:25px;height:25px;line-height:25px;font-size:13px;font-weight:500;border-radius:50%;background:var(--config-color-focus);color:var(--config-color-background);counter-increment:section;content:counter(section);text-align:center;position:absolute;top:3px;left:-45px}.drop-list ul .scroll{margin:0 -30px;overflow-y:scroll}.drop-list ul .scroll table{width:100%;margin:0}.drop-list ul ul.sortable{counter-reset:section}.drop-list ul ul.sortable>li [data-move-down].round,.drop-list ul ul.sortable>li [data-move-up].round,.drop-list ul ul.sortable>li [data-remove].round{background:var(--config-color-focus);color:var(--config-color-background-fade);width:25px;height:25px;line-height:25px;display:inline-block;text-align:center;padding:0;margin-right:5px}.drop-list ul ul.sortable>li [data-move-down].round:disabled,.drop-list ul ul.sortable>li [data-move-up].round:disabled,.drop-list ul ul.sortable>li [data-remove].round:disabled{display:none}.drop-list ul ul.sortable>li:first-child [data-move-up]{display:none}.drop-list ul ul.sortable>li:first-child [data-move-up]:disabled{display:inline-block;background:var(--config-color-background)}.drop-list ul ul.sortable>li:last-child [data-move-down]{display:none}.drop-list ul ul.sortable>li:last-child [data-move-down]:disabled{display:inline-block;background:var(--config-color-background)}.drop-list ul .toggle{position:relative;border-top:1px solid var(--config-console-background);border-bottom:1px solid var(--config-console-background);margin:0 -30px;padding:30px 30px 0 30px;height:65px;overflow:hidden}.drop-list ul .toggle.list{border-bottom:none}.drop-list ul .toggle.sorts button.ls-ui-open{width:calc(100% - 100px)}.drop-list ul .toggle button.ls-ui-open{right:0;position:absolute;top:0;width:100%;height:95px;background:0 0;opacity:.5;border-radius:0}.drop-list ul .toggle .icon-minus,.drop-list ul .toggle .icon-up-open{display:none}.drop-list ul .toggle .content{display:none}.drop-list ul .toggle.open{height:auto}.drop-list ul .toggle.open .icon-minus,.drop-list ul .toggle.open .icon-up-open{display:block}.drop-list ul .toggle.open .icon-down-open,.drop-list ul .toggle.open .icon-plus{display:none}.drop-list ul .toggle.open .content{display:block}.drop-list ul .list li{border-bottom:solid 2px var(--config-border-color);margin:0 -30px 30px -30px;padding:0 30px 30px 30px}.drop-list ul .list li:last-child{padding-bottom:0;margin-bottom:0;border-bottom:none}@media only screen and (max-width:550px){.drop-list ul .list li .actions{float:none}}.drop-list ul .list li .avatar{display:block}.drop-list ul .list li .avatar.inline{display:inline-block}.drop-list ul.new{text-align:center}.drop-list ul.new i{font-size:80px;line-height:80px;font-family:Poppins,sans-serif;font-style:normal;font-weight:300}.drop-list ul.new b{margin-top:20px;display:block}.drop-list ul .info{margin:0 -30px;padding:20px 30px;background:var(--config-modal-note-background);color:var(--config-modal-note-color);border-top:solid 1px var(--config-modal-note-border);border-bottom:solid 1px var(--config-modal-note-border)}.drop-list ul .info hr{background:var(--config-modal-note-border)!important}.drop-list ul .table-wrap{margin:0 -30px;overflow-y:scroll}.drop-list ul .table-wrap table{margin:0}.drop-list ul:before{border:solid;border-color:var(--config-color-background-fade) transparent;border-width:8px 8px 0 8px;bottom:-8px;content:"";position:absolute;z-index:99;left:30px}.drop-list ul.arrow-end:before{right:30px;left:unset}.drop-list ul li{border-bottom:solid 1px var(--config-color-fade-super);margin:0;padding:0}.drop-list ul li:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.drop-list ul li:first-child{border-radius:10px 10px 0 0}.drop-list ul li:last-child{border-radius:0 0 10px 10px}.drop-list ul li:hover{background:var(--config-color-fade-super)}.drop-list ul li:first-child:hover,.drop-list ul li:last-child:hover{border-color:transparent}.drop-list ul li .link,.drop-list ul li a,.drop-list ul li button.link{display:block;vertical-align:middle;height:auto;line-height:30px;display:inline-block;padding:10px 15px!important;color:inherit;font-size:14px;border:none;cursor:pointer;width:calc(100% - 30px);text-align:left;box-sizing:content-box}.drop-list ul li.disabled .link:hover,.drop-list ul li.disabled a:hover{background:0 0}.drop-list ul li .avatar{width:30px;height:30px;margin-right:10px;float:left}.drop-list ul li:last-child{border-bottom:none}.drop-list.bottom ul{bottom:auto;margin-top:-2px}.drop-list.bottom ul:before{bottom:auto;top:-8px;border-width:0 8px 8px 8px}.drop-list.end ul{right:-10px;left:auto}.disabled{opacity:.2;cursor:default}.disabled .button,.disabled .link,.disabled a,.disabled button{cursor:default!important}.disabled .button:hover,.disabled .link:hover,.disabled a:hover,.disabled button:hover{background:0 0}.tags{-webkit-appearance:none;-moz-appearance:none;-webkit-transform:translateZ(0);box-sizing:content-box;color:#313131;height:40px;line-height:40px;border:solid 1px var(--config-color-fade-light);border-radius:10px;padding:5px 15px;font-size:16px;display:block;width:calc(100% - 32px);margin-bottom:30px;background:var(--config-color-background-input);min-height:42px;height:auto;cursor:text}.tags[type=file]{line-height:0;padding:15px;height:auto}.tags:focus{outline:0;border-color:#b3d7fd}.tags:disabled{color:var(--config-color-normal);background:var(--config-color-fade-super);opacity:1!important}.tags.strip{border:none;border-radius:0;padding:5px 0;width:100%;background-color:transparent;background-position:right 2px top 50%;border-bottom:solid 1px var(--config-color-fade-light);color:var(--config-color-placeholder)}.tags.strip:focus{border-color:#b3d7fd}.tags:-webkit-autofill::first-line{font-weight:300;font-size:16px}.tags .add{display:inline-block!important;border:none;padding:0;width:auto;margin:0;max-width:100%;min-width:200px}.tags ul.tags-list{display:inline;white-space:pre-line}.tags ul.tags-list li{display:inline-block!important;margin-right:10px;font-size:16px;padding:5px 10px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tags ul.tags-list li::before{float:right;content:'\e807';font-family:fontello;font-style:normal;display:inline-block;text-align:center;line-height:16px;width:16px;height:16px;font-size:12px;background:#000;color:#fff;border-radius:50%;margin-top:4px;margin-bottom:4px;margin-left:6px;margin-right:0}.switch-theme{background:var(--config-switch-background);border-radius:19px;height:26px;width:44px;margin:9px 0}.switch-theme button{padding:3px;display:block;background:0 0;height:26px;width:100%}.switch-theme i{background:var(--config-color-background-fade);border-radius:50%;height:18px;width:18px;line-height:18px;font-size:12px;padding:0;margin:0;color:var(--config-color-fade)}.switch-theme i.force-light{float:right}.switch-theme i.force-dark{float:left}.dot{width:20px;height:20px;background:var(--config-color-fade);border-radius:50%;display:inline-block;vertical-align:middle;margin:0!important;padding:0!important}.dot.danger{background:var(--config-color-danger)!important}.dot.success{background:var(--config-color-success)!important}.dot.warning{background:var(--config-color-warning)!important}.dot.info{background:var(--config-color-info)!important}.console{width:100%;padding:0;overscroll-behavior:none}.console body{position:relative;width:calc(100% - 320px);padding-top:70px;padding-bottom:0;padding-right:50px;padding-left:270px;margin:0;color:var(--config-color-normal);background:var(--config-console-background)}.console body .project-only{display:none!important}.console body.show-nav .project-only{display:inline-block!important}.console body.hide-nav{padding-left:50px;width:calc(100% - 100px)}.console body.hide-nav header{width:calc(100% - 50px)}.console body.hide-nav header .logo{display:inline-block}.console body.hide-nav .console-back{display:block}.console body.hide-nav .console-index{display:none}.console body.hide-nav .account{display:none}.console body.index .console-back{display:none}.console body.index .console-index{display:block}.console body.index .account{display:block}.console body .console-index{display:block}.console body .console-back{display:none}.console main{min-height:480px}.console header{position:fixed;top:0;width:calc(100% - 280px);height:40px;line-height:40px;padding:15px 30px;background:var(--config-color-background-fade);box-shadow:0 0 2px rgba(0,0,0,.1);margin:0 -50px;z-index:2;font-size:14px}.console header .logo{display:none;border:none}.console header .logo:hover{border:none;opacity:.8}.console header .logo img{height:26px;margin:7px 0}.console header .setup-new{width:40px;height:40px;line-height:40px}.console header .list{width:240px}.console header .list select{height:40px;line-height:40px;padding-top:0;padding-bottom:0;border:none;border-radius:26px;background-color:var(--config-console-nav-switch-background);color:var(--config-console-nav-switch-color)}.console header .account{margin-left:25px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.console header .switch-theme{margin:2px 0}.console header .avatar{height:40px;width:40px}.console header .account-button{background:0 0;position:absolute;width:100%;height:40px;border-radius:0;z-index:1}.console header .notifications{position:relative;font-size:20px}.console header .notifications a{color:#1b3445}.console header .notifications:after{position:absolute;content:"";display:block;background:var(--config-color-danger);width:8px;height:8px;border-radius:50%;top:3px;right:3px}.console header nav{background:#1b3445;background:linear-gradient(var(--config-console-nav-start),var(--config-console-nav-end));color:#788c99;position:fixed;height:100%;width:220px;top:0;left:0}.console header nav .logo{height:39px;padding:15px 20px;display:block}.console header nav .logo img{display:inline-block;margin-top:7px;margin-bottom:14px}.console header nav .logo svg g{fill:var(--config-color-focus)}.console header nav .icon{display:block;border:none;margin:18px 10px 50px 10px}.console header nav .icon img{display:block}.console header nav .icon:hover{border-bottom:none}.console header nav .icon:hover svg g{fill:var(--config-color-focus)}.console header nav .container{overflow:auto;height:calc(100% - 133px);width:100%}.console header nav .project-box{padding:20px;text-align:center;display:block;border:none;line-height:100px;height:100px}.console header nav .project-box img{max-height:80px;max-width:80%;display:inline-block;vertical-align:middle}.console header nav .project{display:block;padding:85px 25px 20px 25px;color:#788c99;position:relative;border:none;height:20px}.console header nav .project:hover{border-bottom:none}.console header nav .project .name{height:20px;line-height:20px;margin:0;padding:0;display:inline-block;max-width:100%}.console header nav .project .arrow{display:block;position:absolute;right:5px;top:10px;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #788c99;transform:rotate(225deg)}.console header nav .project img{position:absolute;bottom:40px;display:block;margin-bottom:10px;max-height:35px;max-width:40%}.console header nav .subtitle{padding:0 30px;display:block;font-size:12px;font-weight:300}.console header nav .links{margin-bottom:15px!important}.console header nav .links.top{border:none;padding-bottom:0;margin-bottom:5px!important}.console header nav .links.bottom{position:absolute;bottom:0;left:0;right:0;padding-bottom:0;border:none;margin-bottom:0!important;box-shadow:0 0 10px rgba(0,0,0,.1)}.console header nav .links.bottom a{border-top:solid 1px var(--config-console-nav-border);border-bottom:none}.console header nav .links .sub{display:inline-block;border:none;width:25px;height:25px;line-height:25px;border-radius:50%;padding:0;background:var(--config-color-focus);color:#fff;text-align:center;font-size:12px;margin:18px}.console header nav .links .sub i{width:auto;margin:0}.console header nav .links .sub:hover{border:none}.console header nav .links a{padding:8px 20px;border:none;display:block;color:#87a5b9;font-weight:400;border-left:solid 5px transparent;font-size:13px}.console header nav .links a i{margin-right:8px;width:22px;display:inline-block}.console header nav .links a.selected,.console header nav .links a:hover{color:#e4e4e4}.console header nav:after{content:'';display:block;position:absolute;background:#302839;height:100px;width:100%;bottom:-100px}.console>footer{width:calc(100% + 100px);margin:0 -50px;box-sizing:border-box;background:0 0;padding-right:30px;padding-left:30px}.console>footer ul{float:none;text-align:center}.console>footer ul li{float:none;display:inline-block}.console .projects{position:relative}.console .projects:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.console .projects li{float:left;margin-right:50px;margin-bottom:50px;width:270px}.console .projects li:nth-child(3n){margin-right:0}.console .dashboard{padding:20px;overflow:hidden;position:relative;z-index:1;margin-bottom:2px}.console .dashboard .chart{width:80%}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.console .dashboard .chart{width:100%}}.console .dashboard hr{margin:20px -25px;height:2px;background:var(--config-console-background)}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.console .dashboard hr{height:3px}}.console .dashboard footer{margin:-20px;padding:20px;background:#fcfeff;border:none;color:var(--config-color-link)}.console .dashboard .col{position:relative}.console .dashboard .col:last-child:after{display:none}.console .dashboard .col:after{content:"";display:block;width:2px;background:var(--config-console-background);position:absolute;top:-20px;bottom:-20px;right:24px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.console .dashboard .col:after{width:calc(100% + 40px);height:3px;position:static;margin:20px -20px}}.console .dashboard .value{color:var(--config-color-focus);vertical-align:bottom;line-height:45px}.console .dashboard .value.small{line-height:35px}.console .dashboard .value .sum{font-size:45px;line-height:45px;font-weight:700;vertical-align:bottom}.console .dashboard .value .sum.small{font-size:25px;line-height:25px}.console .dashboard .unit{font-weight:500;line-height:20px;vertical-align:bottom;font-size:16px;display:inline-block;margin-bottom:5px;margin-left:5px;color:var(--config-color-focus)}.console .dashboard .metric{color:var(--config-color-focus);font-weight:400;font-size:13px;line-height:16px}.console .dashboard .range{color:var(--config-color-fade);font-weight:400;font-size:14px;line-height:16px}.console .dashboard a{display:block;font-weight:400;font-size:14px;line-height:16px;padding:0;border:none}.console .chart-metric{width:19%}@media only screen and (min-width:551px) and (max-width:1198px),only screen and (max-width:550px){.console .chart-metric{width:100%}}.console .chart{width:100%;position:relative;height:0;padding-top:20px;padding-bottom:26%;margin-right:-2px;overflow:hidden;background-color:var(--config-color-background-fade);background-image:linear-gradient(transparent 1px,transparent 1px),linear-gradient(90deg,transparent 1px,transparent 1px),linear-gradient(var(--config-border-color) 1px,transparent 1px),linear-gradient(90deg,var(--config-border-color) 1px,transparent 1px);background-size:100px 100px,100px 100px,20px 20px,20px 20px;background-position:-2px -2px,-2px -2px,-1px -1px,-1px -1px;background-repeat:round;border:solid 1px var(--config-border-color);border-right:solid 1px transparent;border-bottom:solid 1px transparent}@media only screen and (min-width:551px) and (max-width:1198px),only screen and (max-width:550px){.console .chart{width:100%;padding-bottom:32%;float:none;margin-bottom:20px}}.console .chart canvas{position:absolute;bottom:0;display:block;height:100%;width:100%}.console .chart-notes{font-size:12px}.console .chart-notes li{line-height:20px;display:inline-block;margin-right:15px}.console .chart-notes li::before{display:inline-block;content:'';width:14px;height:14px;background:var(--config-color-normal);border-radius:50%;margin-right:8px;vertical-align:middle}.console .chart-notes li.blue,.console .chart-notes li:nth-child(1){color:#29b5d9}.console .chart-notes li.blue::before,.console .chart-notes li:nth-child(1)::before{background:#29b5d9}.console .chart-notes li.green,.console .chart-notes li:nth-child(2){color:#4eb55b}.console .chart-notes li.green::before,.console .chart-notes li:nth-child(2)::before{background:#4eb55b}.console .chart-notes li.orange,.console .chart-notes li:nth-child(3){color:#ec9323}.console .chart-notes li.orange::before,.console .chart-notes li:nth-child(3)::before{background:#ec9323}.console .chart-notes li.red,.console .chart-notes li:nth-child(4){color:#dc3232}.console .chart-notes li.red::before,.console .chart-notes li:nth-child(4)::before{background:#dc3232}.console .community a{padding:0 10px;display:inline-block}.console .link-list li{margin-bottom:15px}.console .link-list i{display:inline-block;width:30px;height:30px;line-height:30px;text-align:center;background:var(--config-color-fade);color:var(--config-color-fade-super);border-radius:50%;margin-right:15px}.console .link-list i.fade{background:0 0;color:var(--config-color-fade)}.console .provider{width:50px;height:50px;background:#f5f5f5;color:#868686;line-height:50px;text-align:center;font-size:25px;border-radius:50%}.console .provider.facebook{color:#fff;background:#3b5998}.console .provider.twitter{color:#fff;background:#55beff}.console .provider.telegram{color:#fff;background:#3ba9e1}.console .provider.github{color:#fff;background:#24292e}.console .provider.whatsapp{color:#fff;background:#25d366}.console .provider.linkedin{color:#fff;background:#1074af}.console .provider.microsoft{color:#fff;background:#137ad4}.console .provider.google{color:#fff;background:#4489f1}.console .provider.bitbucket{color:#fff;background:#2a88fb}.console .provider.gitlab{color:#faa238;background:#30353e}.console .provider.instagram{color:#fff;background:radial-gradient(circle at 30% 107%,#fdf497 0,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)}.console .premium{z-index:3;margin-top:320px}.console .premium .message{height:190px;overflow:hidden;position:absolute;top:-280px}.console .premium:after{content:'';position:absolute;top:0;left:-20px;right:-20px;bottom:-20px;background:var(--config-color-background);opacity:.7;z-index:300}.console .app-section{height:90px}.console .confirm{background:var(--config-color-link);color:#fff;border-radius:25px;padding:12px;line-height:28px;text-align:center}.console .confirm .action{font-weight:500;cursor:pointer}.console .platforms{overflow:hidden}.console .platforms .box{overflow:hidden}.console .platforms .box img{width:50px;margin:0 auto;margin-bottom:20px}.console .platforms .box .cover{margin:-30px -30px 30px -30px;padding:30px}.console .platforms .box .cover.android{background:#a4ca24}.console .platforms .box .cover.android h1{color:#fff;font-size:18px;margin-top:20px}.console .platforms .col{text-align:center;line-height:30px}.console .platforms a{display:block;margin:-20px;padding:20px}.console .platforms a:hover{background:#fbfeff}.console .platforms img{display:block;margin:0 30px;width:calc(100% - 60px);border-radius:50%;margin-bottom:20px}.console .document-nav{display:none;position:sticky;top:90px}@media only screen and (min-width:1380px){.console .document-nav{display:block}}.console .document-nav ul{position:absolute;width:200px;left:-260px}.console .document-nav ul li{margin-bottom:20px}.console .document-nav ul li .selected{font-weight:500}.console .scroll-to{display:none}@media only screen and (min-width:1199px){.console .logo .top{display:none!important}}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.console>header{width:calc(100% - 30px)!important;margin:0 -30px;padding:15px}.console>header nav{width:100%;height:70px;overflow:hidden}.console>header nav.close{background:0 0}.console>header nav.close .logo .nav{display:none!important}.console>header nav.open{height:100%}.console>header nav.open .logo .top{display:none!important}.console>header nav.open .bottom{display:block!important}.console>header nav.open button{color:#87a5b9}.console>header nav button{margin:9px;background:0 0;color:var(--config-color-normal)}.console>header nav button:focus,.console>header nav button:hover{background:0 0}.console>header nav .logo{display:block!important;position:absolute;top:0;left:50%;margin:auto;transform:translateX(-50%)}.console>header nav .bottom{display:none!important}.console>footer{width:auto;margin:50px -30px 0 -30px!important;padding:0 30px 30px 30px}.console body{height:"calc(100% - 70px)"!important;width:calc(100% - 60px)!important;padding:70px 30px 0 30px!important}.console .cover{padding:25px 30px;margin:0 -30px}}@media only screen and (max-width:550px){.console body{height:"calc(100% - 70px)"!important;width:calc(100% - 40px)!important;padding:70px 20px 0 20px!important}.console .cover{padding:20px 20px;margin:0 -20px}.console>header{margin:0 -20px}.console>header .list{width:175px;font-size:14px}.console>footer{margin:50px -20px 0 -20px!important;padding:0 20px 20px 20px}}.dev-feature{display:none}.prod-feature{display:none}.development .dev-feature{display:block;opacity:.6!important;outline:solid #ff0 3px;outline-offset:3px}.development .dev-feature.dev-inline{display:inline-block}.development .prod-feature{display:none}.production .dev-feature{display:none}.production .prod-feature{display:block}.search{opacity:1!important}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.search button{margin-top:20px}}html.home body{padding:0 50px;color:var(--config-color-normal)}html.home .logo a{display:block}html.home .logo a:hover{opacity:.8}html.home .logo img{max-height:35px;width:198px;margin:45px auto 25px auto}html.home footer{background:0 0;text-align:center}html.home main{min-height:400px}.alerts ul{width:100%;visibility:hidden;position:fixed;padding:0;right:0;left:0;color:var(--config-color-normal);z-index:1001;margin:0 auto;bottom:15px;max-width:560px}.alerts ul li{margin:10px 0 0 0;padding:0}.alerts ul li div.message{position:relative;padding:12px 35px;margin:0 auto;list-style:none;background:var(--config-color-background-dark);text-align:center;font-size:14px;border-radius:10px;line-height:16px;min-height:16px;box-shadow:0 0 10px rgba(0,0,0,.05);opacity:.95}.alerts ul li div.message a,.alerts ul li div.message span{font-weight:600}.alerts ul li div.message a{border-bottom:dotted 1px var(--config-color-normal)}.alerts ul li div.message i{cursor:pointer;position:absolute;font-size:14px;line-height:20px;top:9px;left:9px;color:var(--config-color-background-dark);background:var(--config-color-normal);width:22px;height:22px;border-radius:50%}.alerts ul li div.message.error{color:#fff!important;background:var(--config-color-danger)!important}.alerts ul li div.message.error a{color:#fff!important;border-bottom:dotted 1px #fff!important}.alerts ul li div.message.error i{color:var(--config-color-danger);background:#fff}.alerts ul li div.message.success{color:#fff!important;background:var(--config-color-success)!important}.alerts ul li div.message.success a{color:#fff;border-bottom:dotted 1px #fff}.alerts ul li div.message.success i{color:var(--config-color-success);background:#fff}.alerts ul li div.message.warning{color:var(--config-color-normal)!important;background:var(--config-color-warning)!important}.alerts ul li div.message.warning a{color:var(--config-color-normal)!important;border-bottom:dotted 1px var(--config-color-normal)!important}.alerts ul li div.message.warning i{color:#fff;background:var(--config-color-normal)!important}.alerts ul li div.message.open{display:block}.alerts ul li div.message.close{display:none}.alerts .cookie-alert{background:var(--config-color-focus-fade)!important;color:var(--config-color-focus)}.alerts .cookie-alert a{color:var(--config-color-focus);font-weight:400;border-bottom:dotted 1px var(--config-color-focus)!important}.alerts .cookie-alert i{color:var(--config-color-focus-fade)!important;background:var(--config-color-focus)!important}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.alerts ul{top:auto;bottom:0;max-width:100%;left:0}.alerts ul li{margin:5px 0 0 0}.alerts ul li div.message{border-radius:0}}.show-nav .alerts ul{left:220px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.show-nav .alerts ul{left:0}}article{overflow-wrap:break-word;word-wrap:break-word}article h1{font-size:36px}article h2{font-size:24px}article h3{font-size:20px}article h4{font-size:20px}article h5{font-size:18px}article h6{font-size:16px}article h1,article h2,article h3,article h4,article h5,article h6{margin-top:30px!important;margin-bottom:30px!important}article p{line-height:32px;font-size:16px}article .update{display:block;margin-top:50px!important}article table{width:100%;margin:0;margin-bottom:30px!important;border-radius:0;border-bottom:solid 1px var(--config-border-color)}article table thead td{font-weight:500;padding:5px 15px}article table td,article table th{padding:15px;height:auto}article table td:first-child,article table th:first-child{padding-left:10px}article table td:last-child,article table th:last-child{padding-right:10px}article table td p,article table th p{font-size:inherit;line-height:inherit}article table td p:last-child,article table th p:last-child{margin:0}.avatar-container{position:relative}.avatar-container .corner{position:absolute;bottom:-3px;right:-3px}.avatar{width:60px;height:60px;border-radius:50%;background:var(--config-color-background-focus);display:inline-block;overflow:hidden;box-shadow:0 0 6px rgba(0,0,0,.09);position:relative;z-index:1;opacity:1!important}.avatar:before{content:"";position:absolute;width:100%;height:100%;z-index:0;background:var(--config-color-background-focus)}.avatar.inline{display:inline-block;vertical-align:middle}.avatar.trans{background:0 0}.avatar .no-shadow{box-shadow:none}.avatar.xs{width:30px;height:30px}.avatar.xxs{width:20px;height:20px}.avatar.small{width:50px;height:50px}.avatar.big{width:100px;height:100px}.avatar.huge{width:150px;height:150px}.box{position:relative;background:var(--config-color-background-fade);border-radius:10px;box-shadow:0 0 3px rgba(0,0,0,.05);padding:30px;display:block;border-bottom:none}.box.padding-tiny{padding:5px}.box.padding-xs{padding:10px}.box.padding-small{padding:15px}.box.y-scroll{overflow-y:auto}.box.danger{background:var(--config-color-danger);color:#fff}.box.danger .box{color:var(--config-color-normal);background:var(--config-color-background-fade)}.box.danger>.button,.box.danger>button{background:#fff;color:var(--config-color-danger)}.box.note{background:var(--config-note-background)}.box.focus{background:var(--config-color-focus);color:var(--config-color-background-fade)}.box.focus .button,.box.focus button{background:var(--config-color-background-fade);color:var(--config-color-focus)}.box.line{background:0 0;border:solid 1px var(--config-color-background-dark);box-shadow:none}.box.warning{background:var(--config-color-warning);color:#2d2d2d}.box.warning .button,.box.warning button{background:rgba(45,45,45,.8);color:var(--config-color-success)}.box .tabs{border-bottom:solid 1px var(--config-border-color);margin:0 -30px;padding:0 30px!important}.box>footer{margin:0 -30px -30px -30px;padding:15px 30px;background:var(--config-color-background-fade);border:solid 1px var(--config-border-color);border-radius:0 0 10px 10px}.box hr{height:1px;background:var(--config-console-background);border:none;margin:30px -30px}.box .label{position:absolute;top:10px;z-index:2;right:10px}.box.fade-bottom{position:relative;overflow:hidden}.box.fade-bottom:after{content:"";position:absolute;display:block;bottom:15px;width:100%;background:#000;background:linear-gradient(180deg,rgba(0,0,0,0) 0,var(--config-color-background-fade) 80%);height:100px;margin:0 -15px}.box .header{position:static;height:40px;padding:20px 30px 20px 30px;margin-bottom:30px;margin:-30px -30px 20px -30px;background:var(--config-color-background-fade);border-bottom:solid 1px #efefef}.box ul.numbers>li{position:relative;margin-left:30px;margin-right:50px}.box ul.numbers>li hr{margin-left:-60px;margin-right:-80px}.box ul.numbers>li .settings{position:absolute;top:3px;right:-50px}.box ul.numbers>li::after{display:block;width:25px;height:25px;line-height:25px;font-size:13px;font-weight:500;border-radius:50%;background:var(--config-color-focus);color:var(--config-color-background);counter-increment:section;content:counter(section);text-align:center;position:absolute;top:3px;left:-45px}.box .scroll{margin:0 -30px;overflow-y:scroll}.box .scroll table{width:100%;margin:0}.box ul.sortable{counter-reset:section}.box ul.sortable>li [data-move-down].round,.box ul.sortable>li [data-move-up].round,.box ul.sortable>li [data-remove].round{background:var(--config-color-focus);color:var(--config-color-background-fade);width:25px;height:25px;line-height:25px;display:inline-block;text-align:center;padding:0;margin-right:5px}.box ul.sortable>li [data-move-down].round:disabled,.box ul.sortable>li [data-move-up].round:disabled,.box ul.sortable>li [data-remove].round:disabled{display:none}.box ul.sortable>li:first-child [data-move-up]{display:none}.box ul.sortable>li:first-child [data-move-up]:disabled{display:inline-block;background:var(--config-color-background)}.box ul.sortable>li:last-child [data-move-down]{display:none}.box ul.sortable>li:last-child [data-move-down]:disabled{display:inline-block;background:var(--config-color-background)}.box .toggle{position:relative;border-top:1px solid var(--config-console-background);border-bottom:1px solid var(--config-console-background);margin:0 -30px;padding:30px 30px 0 30px;height:65px;overflow:hidden}.box .toggle.list{border-bottom:none}.box .toggle.sorts button.ls-ui-open{width:calc(100% - 100px)}.box .toggle button.ls-ui-open{right:0;position:absolute;top:0;width:100%;height:95px;background:0 0;opacity:.5;border-radius:0}.box .toggle .icon-minus,.box .toggle .icon-up-open{display:none}.box .toggle .content{display:none}.box .toggle.open{height:auto}.box .toggle.open .icon-minus,.box .toggle.open .icon-up-open{display:block}.box .toggle.open .icon-down-open,.box .toggle.open .icon-plus{display:none}.box .toggle.open .content{display:block}.box .list li{border-bottom:solid 2px var(--config-border-color);margin:0 -30px 30px -30px;padding:0 30px 30px 30px}.box .list li:last-child{padding-bottom:0;margin-bottom:0;border-bottom:none}@media only screen and (max-width:550px){.box .list li .actions{float:none}}.box .list li .avatar{display:block}.box .list li .avatar.inline{display:inline-block}.box.new{text-align:center}.box.new i{font-size:80px;line-height:80px;font-family:Poppins,sans-serif;font-style:normal;font-weight:300}.box.new b{margin-top:20px;display:block}.box .info{margin:0 -30px;padding:20px 30px;background:var(--config-modal-note-background);color:var(--config-modal-note-color);border-top:solid 1px var(--config-modal-note-border);border-bottom:solid 1px var(--config-modal-note-border)}.box .info hr{background:var(--config-modal-note-border)!important}.box .table-wrap{margin:0 -30px;overflow-y:scroll}.box .table-wrap table{margin:0}a.box{border-right:none;border-left:none}a.box:hover{box-shadow:0 0 1px rgba(0,0,0,.2);opacity:.7}.box-asidex{padding-right:25px!important;padding-left:70px;right:0;background:#f9f9f9;border-radius:0 10px 10px 0;height:calc(100% - 30px);position:absolute;padding-top:30px}.box-asidex:after{content:"";display:block;position:absolute;height:100%;width:51px;background:#fff;top:0;bottom:0;left:-6px}.cover{background:var(--config-color-focus-fade);padding:30px 50px;margin:0 -50px;position:relative;border-bottom:solid 1px var(--config-border-fade)}.cover .title,.cover h1,.cover h2,.cover h3,.cover h4{color:var(--config-color-focus);font-weight:600;margin-bottom:50px!important;font-size:28px;line-height:42px}.cover .title span,.cover h1 span,.cover h2 span,.cover h3 span,.cover h4 span{font-weight:600}.cover i:before{margin:0!important}.cover p{color:var(--config-color-fade)}.cover .button{color:#fff}.cover .link,.cover a{color:var(--config-color-focus);border-left:none;border-right:none;cursor:pointer}.cover .link:hover,.cover a:hover{border-bottom-color:var(--config-color-focus)}.console .database .row .col{height:452px}.console .database .row .col:after{width:2px;right:20px}.console .database hr{margin:0 -20px;background:var(--config-color-background);height:1px}.console .database h3{font-size:13px;line-height:20px;height:20px;background-color:var(--config-color-fade-super);margin:-20px -20px 0 -20px;padding:10px 20px;border-bottom:solid 1px var(--config-color-background);font-weight:600}.console .database .empty{height:162px;font-size:12px;text-align:center;margin:50px 0}.console .database .empty h4{font-size:13px;font-weight:600;line-height:120px}.console .database .search{background-color:var(--config-color-fade-super);margin:0 -20px 0 -20px;padding:10px 15px}.console .database .search input{height:40px;background-color:#fff;border-radius:25px;padding-top:0;padding-bottom:0}.console .database .code{height:411px;background:var(--config-color-fade-super);margin:0 -20px -20px -20px;padding:20px;width:calc(100% - 10px)}.console .database .code .ide{overflow:scroll;height:451px;margin:-20px;box-shadow:none;border-radius:0}.console .database .paging{background:var(--config-color-fade-super);margin:0 -20px -20px -20px;padding:20px}.console .database .button{margin:0 -20px;padding:0 20px!important;text-align:inherit;color:var(--config-color-focus);width:100%;font-size:15px;line-height:55px;box-sizing:content-box}.console .database .button i{margin-right:8px}.console .database .button:hover{border:none;background:var(--config-color-focus-fade)}.console .database .items{margin:0 -20px;height:262px;overflow-x:hidden;overflow-y:scroll}.console .database .items form{opacity:0;position:relative}.console .database .items form button{position:absolute;top:0;bottom:0;left:0;right:0;width:100%;height:45px;border-radius:0;cursor:pointer}.console .database .items li{padding:0;margin:0 0;line-height:45px;font-size:15px;padding-left:50px;padding-right:30px;position:relative}.console .database .items li i{position:absolute;display:none;right:10px}.console .database .items li .name{display:inline-block;width:100%;height:28px}.console .database .items li.selected,.console .database .items li:hover{background:#f5f5f5}.console .database .items li.selected i,.console .database .items li:hover i{display:block}.console .database .items li:last-child{border-bottom:none}body>footer{color:var(--config-color-fade);line-height:40px;margin:0 -50px;padding:12px 50px;font-size:13px;width:100%;background:#f1f1f1;position:relative;margin-top:80px!important}body>footer:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}body>footer .logo img{height:22px;padding-top:12px}body>footer a{color:var(--config-color-fade);font-size:13px}body>footer a:hover{border-bottom-color:var(--config-color-fade)}body>footer ul:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}body>footer ul li{font-size:13px;float:left;margin-right:20px!important}body>footer .copyright{padding-left:2px}[data-ls-if]{display:none}[data-service]{opacity:0}.load-service-start{opacity:0}.load-service-end{opacity:1;transition:opacity .5s ease-out;-moz-transition:opacity .5s ease-out;-webkit-transition:opacity .5s ease-out;-o-transition:opacity .5s ease-out}.load-screen{z-index:100000;position:fixed;height:100%;width:100%;background-color:var(--config-color-background-focus);top:0;left:0}.load-screen.loaded{transition:opacity 1s ease-in-out,top 1s .7s;opacity:0;top:-100%}.load-screen .animation{position:absolute;top:45%;left:50%;transform:translate(-50%,-50%) translateZ(1px);width:140px;height:140px}.load-screen .animation div{box-sizing:border-box;display:block;position:absolute;width:124px;height:124px;margin:10px;border:10px solid var(--config-color-focus);border-radius:50%;animation:animation 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:var(--config-color-focus) transparent transparent transparent}.load-screen .animation div:nth-child(1){animation-delay:-.45s}.load-screen .animation div:nth-child(2){animation-delay:-.3s}.load-screen .animation div:nth-child(3){animation-delay:-.15s}@keyframes animation{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.load-screen img{position:absolute;height:20px;bottom:60px;left:50%;transform:translate(-50%,-50%)}.modal-open .modal-bg,.modal-open body .modal-bg{position:fixed;content:'';display:block;width:100%;height:100%;left:0;right:0;top:0;bottom:0;background:#0c0c0c;opacity:.75;z-index:5}.modal{overflow:auto;display:none;position:fixed;transform:translate3d(0,0,0);width:100%;max-height:90%;max-width:640px;background:var(--config-color-background-fade);z-index:1000;box-shadow:0 0 4px rgba(0,0,0,.25);padding:30px;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:10px;box-sizing:border-box;text-align:left;white-space:initial;line-height:normal}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.modal{width:calc(100% - 20px)}}.modal.full{max-width:none;max-height:none;height:100%;border-radius:0;padding:80px 120px}.modal.full h1{font-weight:700}.modal.padding-tiny{padding:5px}.modal.padding-xs{padding:10px}.modal.padding-small{padding:15px}.modal.height-tiny>form{height:100px}.modal.height-small>form{height:220px}.modal.width-small{max-width:400px}.modal.width-medium{max-width:500px}.modal.width-large{max-width:800px}.modal.open{display:block}.modalbutton.close{display:none}.modal.fill{height:95%;max-height:95%;max-width:75%}.modal h1,.modal h2{margin-bottom:25px;margin-top:0;font-size:20px;text-align:left}.modal h1,.modal h2,.modal h3,.modal h4,.modal h5,.modal h6{color:inherit!important;line-height:35px}.modal .main,.modal>form{position:relative;border-top:solid 1px var(--config-border-color);padding:30px 30px 0 30px;margin:0 -30px}.modal .main.strip,.modal>form.strip{border:none;padding:0;margin:0}.modal .separator{margin:20px -30px}.modal .bullets{padding-left:40px}.modal .bullets li{margin-bottom:30px!important}.modal .bullets li:before{position:absolute}.modal .info{margin:0 -30px;padding:20px 30px;background:var(--config-modal-note-background);color:var(--config-modal-note-color);border-top:solid 1px var(--config-modal-note-border);border-bottom:solid 1px var(--config-modal-note-border)}.modal .ide.strech{box-shadow:none;border-radius:0;margin:0 -30px}.modal .ide pre{overflow:auto}.modal button.close{width:30px;height:30px;line-height:30px;padding:0;margin:0;background:var(--config-color-normal);color:var(--config-color-background-fade);border-radius:50%}.modal .paging form{padding:0;margin:0;border-top:none}.modal.sticky-footer form footer{margin:-30px}.modal.sticky-footer footer{position:sticky;bottom:-30px;background:var(--config-color-background-fade-super);height:50px;z-index:1;padding:30px;box-shadow:0 0 1px rgba(0,0,0,.15)}.modal.sticky-footer footer form{display:inline-block}[data-views-current="0"] .scroll-to,[data-views-current="1"] .scroll-to{opacity:0!important}.scroll-to-bottom .scroll-to,.scroll-to-top .scroll-to{opacity:1}.scroll-to{opacity:0;display:block;width:40px;height:40px;line-height:40px;border-radius:50%;position:fixed;transform:translateZ(0);margin:30px;padding:0;bottom:0;font-size:18px;z-index:100000;transition:opacity .15s ease-in-out;right:0}.phases{list-style:none;margin:0;padding:0;position:relative}.phases li{display:none}.phases li li{display:block}.phases li.selected{display:block}.phases .number{display:none}.phases h2,.phases h3,.phases h4,.phases h5,.phases h6{margin:0 0 30px 0;text-align:inherit}.container{position:relative}.container .tabs{height:55px;line-height:55px;list-style:none;padding:0;margin-bottom:50px!important;margin-top:-55px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.container .tabs:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.container .tabs .selected{font-weight:400;color:var(--config-color-focus);position:relative;opacity:1}.container .tabs .selected:after{content:"";display:block;height:2px;background:var(--config-color-focus);width:calc(100% + 6px);margin:0 -3px;position:absolute;bottom:0;border-radius:2px}.container .tabs .number{display:none}.container .tabs li{float:left;margin-right:50px;color:var(--config-color-focus);opacity:.9;cursor:pointer}.container .tabs li:focus{outline:0}@media only screen and (max-width:550px){.container .tabs li{margin-right:25px}}.container .icon{display:none}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.container .tabs{width:auto;overflow-x:scroll;overflow-y:hidden;white-space:nowrap}.container .tabs li{display:inline-block;float:none}}.ide{background-color:var(--config-prism-background);overflow:hidden;position:relative;z-index:1;box-shadow:0 2px 4px 0 rgba(50,50,93,.3);border-radius:10px;margin-bottom:30px}.ide *{font-family:'Source Code Pro',monospace}.ide[data-lang]::after{content:attr(data-lang-label);display:inline-block;background:#fff;color:#000;position:absolute;top:15px;padding:5px 10px;border-radius:15px;font-size:10px;right:10px;opacity:.95}.ide[data-lang=bash]::after{background:var(--config-language-bash);color:var(--config-language-bash-contrast)}.ide[data-lang=javascript]::after{background:var(--config-language-javascript);color:var(--config-language-javascript-contrast)}.ide[data-lang=web]::after{background:var(--config-language-web);color:var(--config-language-web-contrast)}.ide[data-lang=html]::after{background:var(--config-language-html);color:var(--config-language-html-contrast)}.ide[data-lang=php]::after{background:var(--config-language-php);color:var(--config-language-php-contrast)}.ide[data-lang=nodejs]::after{background:var(--config-language-nodejs);color:var(--config-language-nodejs-contrast)}.ide[data-lang=ruby]::after{background:var(--config-language-ruby);color:var(--config-language-ruby-contrast)}.ide[data-lang=python]::after{background:var(--config-language-python);color:var(--config-language-python-contrast)}.ide[data-lang=go]::after{background:var(--config-language-go);color:var(--config-language-go-contrast)}.ide[data-lang=dart]::after{background:var(--config-language-dart);color:var(--config-language-dart-contrast)}.ide[data-lang=flutter]::after{background:var(--config-language-flutter);color:var(--config-language-flutter-contrast)}.ide[data-lang=yaml]::after{background:var(--config-language-yaml);color:var(--config-language-yaml-contrast)}.ide .tag{color:inherit!important;background:0 0!important;padding:inherit!important;font-size:inherit!important;line-height:14px}.ide .copy{cursor:pointer;content:attr(data-lang);display:inline-block;background:#fff;color:#000;position:absolute;transform:translateX(-50%);bottom:-20px;padding:5px 10px;border-radius:15px;font-size:10px;font-style:normal;left:50%;opacity:0;transition:bottom .3s,opacity .3s;line-height:normal;font-family:Poppins,sans-serif}.ide .copy::before{padding-right:5px}.ide:hover .copy{transition:bottom .3s,opacity .3s;opacity:.9;bottom:16px}.ide pre{-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;color:#e6ebf1;font-weight:400;line-height:20px;font-size:13px;margin:0;padding:20px;padding-left:60px}.ide.light{box-shadow:0 2px 4px 0 rgba(50,50,93,.1);background-color:#fff}.ide.light pre{color:#414770}.ide.light .token.cdata,.ide.light .token.comment,.ide.light .token.doctype,.ide.light .token.prolog{color:#91a2b0}.ide.light .token.attr-name,.ide.light .token.builtin,.ide.light .token.char,.ide.light .token.inserted,.ide.light .token.selector,.ide.light .token.string{color:#149570}.ide.light .token.punctuation{color:#414770}.ide.light .language-css .token.string,.ide.light .style .token.string,.ide.light .token.entity,.ide.light .token.operator,.ide.light .token.url,.ide.light .token.variable{color:#414770}.ide.light .line-numbers .line-numbers-rows{background:#f2feef}.ide.light .line-numbers-rows>span:before{color:#5dc79e}.ide.light .token.keyword{color:#6772e4;font-weight:500}code[class*=language-],pre[class*=language-]{text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4}pre[class*=language-]{overflow:auto}:not(pre)>code[class*=language-]{padding:.1em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#6b7c93}.token.punctuation{color:#f8f8f2}.namespace{opacity:.7}.token.constant,.token.deleted,.token.property,.token.symbol,.token.tag{color:#f92672}.token.boolean,.token.number{color:#f79a59}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#3ecf8e}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.class-name,.token.function{color:#45b2e8}.token.keyword{color:#7795f8}.token.important,.token.regex{color:#fd971f}.token.italic{font-style:italic}.token.entity{cursor:help}pre[class*=language-].line-numbers{position:relative;padding-left:60px;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{background:var(--config-prism-numbers);position:absolute;pointer-events:none;top:-20px;bottom:-21px;padding:20px 0;font-size:100%;left:-60px;width:40px;letter-spacing:-1px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{padding-right:5px;pointer-events:none;display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#636365;display:block;padding-right:.8em;text-align:right}html{padding:0;margin:0;direction:ltr}body{margin:0;background:var(--config-console-background) no-repeat fixed;min-width:300px}ul{padding:0;margin:0}ul li{margin:0;list-style:none} \ No newline at end of file +.pull-start{float:left}.pull-end{float:right}img[src=""]{visibility:hidden;display:inline-block}:root{--config-width:910px;--config-width-xxl:1000px;--config-width-xl:910px;--config-width-large:700px;--config-width-medium:550px;--config-width-small:320px;--config-color-link:#1e849e;--config-color-background:#eceff1;--config-color-background-dark:#dfe2e4;--config-color-background-fade:#ffffff;--config-color-background-fade-super:#fdfdfd;--config-color-background-focus:#f5f5f5;--config-color-background-input:#ffffff;--config-color-placeholder:#868686;--config-color-tooltip-text:#dce8f5;--config-color-tooltip-background:#333333;--config-color-focus:#f02e65;--config-color-focus-fade:#fef8fa;--config-color-focus-hover:#ff729b;--config-color-focus-glow:#fce5ec;--config-color-focus-dark:#c52653;--config-color-normal:#40404c;--config-color-dark:#313131;--config-color-fade:#8f8f8f;--config-color-fade-light:#e2e2e2;--config-color-fade-super:#f1f3f5;--config-color-danger:#f53d3d;--config-color-success:#1bbf61;--config-color-warning:#fffbdd;--config-color-info:#386fd2;--config-border-color:#f3f3f3;--config-border-fade:#e0e3e4;--config-border-radius:10px;--config-prism-background:#373738;--config-prism-numbers:#39393c;--config-note-background:#f1fbff;--config-note-border:#5bceff;--config-warning-background:#fdf7d9;--config-warning-border:#f8e380;--config-social-twitter:#1da1f2;--config-social-github:#000000;--config-social-discord:#7189dc;--config-social-facebook:#4070b4;--config-language-bash:#2b2626;--config-language-bash-contrast:#fff;--config-language-javascript:#fff054;--config-language-javascript-contrast:#333232;--config-language-web:#fff054;--config-language-web-contrast:#333232;--config-language-html:#ff895b;--config-language-html-contrast:#ffffff;--config-language-yaml:#ca3333;--config-language-yaml-contrast:#ffffff;--config-language-php:#6182bb;--config-language-php-contrast:#ffffff;--config-language-nodejs:#8cc500;--config-language-nodejs-contrast:#ffffff;--config-language-ruby:#fc3f48;--config-language-ruby-contrast:#ffffff;--config-language-python:#3873a2;--config-language-python-contrast:#ffffff;--config-language-go:#00add8;--config-language-go-contrast:#ffffff;--config-language-dart:#035698;--config-language-dart-contrast:#ffffff;--config-language-flutter:#035698;--config-language-flutter-contrast:#ffffff;--config-language-android:#a4c439;--config-language-android-contrast:#ffffff;--config-language-kotlin:#766DB2;--config-language-kotlin-contrast:#ffffff;--config-language-java:#0074bd;--config-language-java-contrast:#ffffff;--config-modal-note-background:#f5fbff;--config-modal-note-border:#eaf2f7;--config-modal-note-color:#3b5d73;--config-switch-background:#e2e2e2;--config-console-background:#eceff1;--config-console-nav-start:#143650;--config-console-nav-end:#302839;--config-console-nav-border:#2a253a;--config-console-nav-switch-background:#ececec;--config-console-nav-switch-color:#868686;--config-console-nav-switch-arrow:url("data:image/svg+xml;utf8,")}:root .theme-dark{--config-color-background:#061F2F;--config-color-background-dark:#262d50;--config-color-background-fade:#1c223a;--config-color-background-fade-super:#1a1f35;--config-color-background-focus:#1a1f35;--config-color-background-input:#dce8f5;--config-color-tooltip-text:#061F2F;--config-color-tooltip-background:#dce8f5;--config-color-link:#4caedb;--config-color-placeholder:#9ea1af;--config-color-focus:#c7d8eb;--config-color-focus-fade:#1e233e;--config-color-focus-hover:#d3deea;--config-color-focus-glow:#d3deea;--config-color-focus-dark:#657586;--config-color-normal:#c7d8eb;--config-color-dark:#c7d8eb;--config-color-fade:#bec3e0;--config-color-fade-light:#181818;--config-color-fade-super:#262D50;--config-color-danger:#d84a4a;--config-color-success:#34b86d;--config-color-warning:#e0d56d;--config-color-info:#386fd2;--config-border-color:#262D50;--config-border-fade:#19203a;--config-prism-background:#1F253F;--config-prism-numbers:#1F253F;--config-note-background:#171e33;--config-note-border:#262D50;--config-warning-background:#1F253F;--config-warning-border:#262D50;--config-social-twitter:var(--config-color-normal);--config-social-github:var(--config-color-normal);--config-social-discord:var(--config-color-normal);--config-social-facebook:var(--config-color-normal);--config-language-bash:var(--config-color-normal);--config-language-bash-contrast:var(--config-color-background);--config-language-javascript:var(--config-color-normal);--config-language-javascript-contrast:var(--config-color-background);--config-language-web:var(--config-color-normal);--config-language-web-contrast:var(--config-color-background);--config-language-yaml:var(--config-color-normal);--config-language-yaml-contrast:var(--config-color-background);--config-language-html:var(--config-color-normal);--config-language-html-contrast:var(--config-color-background);--config-language-php:var(--config-color-normal);--config-language-php-contrast:var(--config-color-background);--config-language-nodejs:var(--config-color-normal);--config-language-nodejs-contrast:var(--config-color-background);--config-language-ruby:var(--config-color-normal);--config-language-ruby-contrast:var(--config-color-background);--config-language-python:var(--config-color-normal);--config-language-python-contrast:var(--config-color-background);--config-language-go:var(--config-color-normal);--config-language-go-contrast:var(--config-color-background);--config-language-dart:var(--config-color-normal);--config-language-dart-contrast:var(--config-color-background);--config-language-flutter:var(--config-color-normal);--config-language-flutter-contrast:var(--config-color-background);--config-language-android:var(--config-color-normal);--config-language-android-contrast:var(--config-color-background);--config-language-kotlin:var(--config-color-normal);--config-language-kotlin-contrast:var(--config-color-background);--config-language-java:var(--config-color-normal);--config-language-java-contrast:var(--config-color-background);--config-modal-note-background:#15192b;--config-modal-note-border:#161b31;--config-modal-note-color:var(--config-color-normal);--config-switch-background:var(--config-color-normal);--config-console-background:#20263f;--config-console-nav-start:#1c2139;--config-console-nav-end:#151929;--config-console-nav-border:#171b30;--config-console-nav-switch-background:var(--config-color-focus);--config-console-nav-switch-color:var(--config-color-background);--config-console-nav-switch-arrow:url("data:image/svg+xml;utf8,")}.theme-light .force-light{display:block!important}.theme-dark .force-dark{display:block!important}.force-dark{display:none!important}.force-light{display:none!important}@font-face{font-family:Poppins;font-style:normal;font-weight:100;src:url(/fonts/poppins-v9-latin-100.eot);src:local('Poppins Thin'),local('Poppins-Thin'),url(/fonts/poppins-v9-latin-100.eot?#iefix) format('embedded-opentype'),url(/fonts/poppins-v9-latin-100.woff2) format('woff2'),url(/fonts/poppins-v9-latin-100.woff) format('woff'),url(/fonts/poppins-v9-latin-100.ttf) format('truetype'),url(/fonts/poppins-v9-latin-100.svg#Poppins) format('svg')}@font-face{font-family:Poppins;font-style:normal;font-weight:300;src:url(/fonts/poppins-v9-latin-300.eot);src:local('Poppins Light'),local('Poppins-Light'),url(/fonts/poppins-v9-latin-300.eot?#iefix) format('embedded-opentype'),url(/fonts/poppins-v9-latin-300.woff2) format('woff2'),url(/fonts/poppins-v9-latin-300.woff) format('woff'),url(/fonts/poppins-v9-latin-300.ttf) format('truetype'),url(/fonts/poppins-v9-latin-300.svg#Poppins) format('svg')}@font-face{font-family:Poppins;font-style:normal;font-weight:400;src:url(/fonts/poppins-v9-latin-regular.eot);src:local('Poppins Regular'),local('Poppins-Regular'),url(/fonts/poppins-v9-latin-regular.eot?#iefix) format('embedded-opentype'),url(/fonts/poppins-v9-latin-regular.woff2) format('woff2'),url(/fonts/poppins-v9-latin-regular.woff) format('woff'),url(/fonts/poppins-v9-latin-regular.ttf) format('truetype'),url(/fonts/poppins-v9-latin-regular.svg#Poppins) format('svg')}@font-face{font-family:Poppins;font-style:normal;font-weight:500;src:url(/fonts/poppins-v9-latin-500.eot);src:local('Poppins Medium'),local('Poppins-Medium'),url(/fonts/poppins-v9-latin-500.eot?#iefix) format('embedded-opentype'),url(/fonts/poppins-v9-latin-500.woff2) format('woff2'),url(/fonts/poppins-v9-latin-500.woff) format('woff'),url(/fonts/poppins-v9-latin-500.ttf) format('truetype'),url(/fonts/poppins-v9-latin-500.svg#Poppins) format('svg')}@font-face{font-family:Poppins;font-style:normal;font-weight:600;src:url(/fonts/poppins-v9-latin-600.eot);src:local('Poppins SemiBold'),local('Poppins-SemiBold'),url(/fonts/poppins-v9-latin-600.eot?#iefix) format('embedded-opentype'),url(/fonts/poppins-v9-latin-600.woff2) format('woff2'),url(/fonts/poppins-v9-latin-600.woff) format('woff'),url(/fonts/poppins-v9-latin-600.ttf) format('truetype'),url(/fonts/poppins-v9-latin-600.svg#Poppins) format('svg')}@font-face{font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url(/fonts/source-code-pro-v11-latin-regular.eot);src:local('Source Code Pro Regular'),local('SourceCodePro-Regular'),url(/fonts/source-code-pro-v11-latin-regular.eot?#iefix) format('embedded-opentype'),url(/fonts/source-code-pro-v11-latin-regular.woff2) format('woff2'),url(/fonts/source-code-pro-v11-latin-regular.woff) format('woff'),url(/fonts/source-code-pro-v11-latin-regular.ttf) format('truetype'),url(/fonts/source-code-pro-v11-latin-regular.svg#SourceCodePro) format('svg')}.padding{padding:30px}.padding-top{padding-top:30px!important}.padding-top-large{padding-top:50px!important}.padding-top-xl{padding-top:80px!important}.padding-bottom{padding-bottom:30px!important}.padding-bottom-large{padding-bottom:50px!important}.padding-bottom-xl{padding-bottom:80px!important}.margin-end{margin-right:20px!important}.margin-start{margin-left:20px!important}.margin-end-small{margin-right:10px!important}.margin-start-small{margin-left:10px!important}.margin-end-large{margin-right:50px!important}.margin-start-large{margin-left:50px!important}.margin-end-no{margin-right:0!important}.margin-start-no{margin-left:0!important}.margin-end-negative{margin-right:-30px!important}.margin-start-negative{margin-left:-30px!important}.margin-end-negative-small{margin-right:-15px!important}.margin-start-negative-small{margin-left:-15px!important}.margin-end-negative-tiny{margin-right:-5px!important}.margin-start-negative-tiny{margin-left:-5px!important}.margin-top{margin-top:30px!important}.margin-bottom{margin-bottom:30px!important}.margin-top-no{margin-top:0!important}.margin-bottom-no{margin-bottom:0!important}.margin-top-xxl{margin-top:140px!important}.margin-top-xl{margin-top:80px!important}.margin-top-large{margin-top:50px!important}.margin-top-small{margin-top:15px!important}.margin-top-tiny{margin-top:5px!important}.margin-top-negative{margin-top:-30px!important}.margin-top-negative-tiny{margin-top:-5px!important}.margin-top-negative-small{margin-top:-15px!important}.margin-top-negative-large{margin-top:-50px!important}.margin-top-negative-xl{margin-top:-80px!important}.margin-top-negative-xxl{margin-top:-100px!important}.margin-top-negative-xxxl{margin-top:-150px!important}.margin-bottom-xxl{margin-bottom:140px!important}.margin-bottom-xl{margin-bottom:80px!important}.margin-bottom-large{margin-bottom:50px!important}.margin-bottom-small{margin-bottom:15px!important}.margin-bottom-tiny{margin-bottom:5px!important}.margin-bottom-negative{margin-bottom:-30px!important}.margin-bottom-negative-tiny{margin-bottom:-5px!important}.margin-bottom-negative-small{margin-bottom:-15px!important}.margin-bottom-negative-large{margin-bottom:-50px!important}.margin-bottom-negative-xl{margin-bottom:-80px!important}.margin-bottom-negative-xl{margin-bottom:-100px!important}.force-left,.ide{direction:ltr;text-align:left}.force-right{direction:rtl;text-align:right}.pull-left{float:left}.pull-right{float:right}.ratio-wide{height:0;overflow:hidden;padding-top:56%;position:relative;width:100%}.ratio-wide>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-square{height:0;overflow:hidden;padding-top:56%;position:relative;width:100%}.ratio-square>*{position:absolute;top:0;left:0;width:100%;height:100%}.clear:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.phones-only{display:none}@media only screen and (max-width:550px){.phones-only{display:inherit!important}}.tablets-only{display:none}@media only screen and (min-width:551px) and (max-width:1198px){.tablets-only{display:inherit!important}}.desktops-only{display:none}@media only screen and (min-width:1199px){.desktops-only{display:inherit!important}}.phones-only-inline{display:none}@media only screen and (max-width:550px){.phones-only-inline{display:inline-block!important}}.tablets-only-inline{display:none}@media only screen and (min-width:551px) and (max-width:1198px){.tablets-only-inline{display:inline-block!important}}.desktops-only-inline{display:none}@media only screen and (min-width:1199px){.desktops-only-inline{display:inline-block!important}}*{font-family:Poppins,sans-serif;-webkit-font-smoothing:antialiased;font-weight:300}h1,h2,h3,h4,h5,h6{margin:0}h4,h5,h6{font-weight:400}.link,a{color:var(--config-color-link);text-decoration:none;border-left:2px solid transparent;border-right:2px solid transparent;transition:.2s;cursor:pointer}.link.disabled,a.disabled{opacity:.5}.link.tag:hover,a.tag:hover{opacity:.9}.link.danger,a.danger{color:var(--config-color-danger)}.link.link-animation-enabled,a.link-animation-enabled{display:inline-block}.link.link-animation-enabled:hover,a.link-animation-enabled:hover{transform:translateY(-2px)}.link-return-animation--start>i{display:inline-block;transition:.2s}.link-return-animation--start:hover>i{transform:translateX(-2px)}.link-return-animation--end>i{display:inline-block;transition:.2s}.link-return-animation--end:hover>i{transform:translateX(2px)}b,strong{font-weight:500}p{margin:0 0 20px 0;line-height:26px}small{font-size:16px;color:var(--config-color-fade)}.text-size-small{font-size:13px}.text-size-xs{font-size:10px}.text-size-normal{font-size:16px}.text-height-large{height:30px;line-height:30px}.text-height-small{line-height:13px}.text-one-liner{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.text-bold{font-weight:400!important}.text-bold-large{font-weight:500!important}.text-bold-xl{font-weight:600!important}.text-danger{color:var(--config-color-danger)!important}.text-success{color:var(--config-color-success)!important}.text-upper{text-transform:uppercase}.text-warning{color:var(--config-color-warning)}.text-focus{color:var(--config-color-focus)}.text-fade{color:var(--config-color-fade)}.text-green{color:var(--config-color-success)}.text-red{color:var(--config-color-danger)}.text-info{color:var(--config-color-info)}.text-yellow{color:#ffe28b}.text-disclaimer{font-size:11px;color:var(--config-color-fade)}.text-fade-extra{color:var(--config-color-fade);opacity:.5}.text-line-high-large{line-height:30px}.text-line-high-xl{line-height:40px}.text-sign{margin:5px 0;font-size:25px;width:25px;height:25px;line-height:25px;display:inline-block}.text-align-center{text-align:center}.text-align-start{text-align:left}.text-align-end{text-align:right}.text-align-left{text-align:left}.text-align-right{text-align:right}.text-dir-ltr{direction:ltr;display:inline-block}.text-dir-rtl{direction:rtl;display:inline-block}.icon-dot-3:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-o-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}i[class*=' icon-']:before,i[class^=icon-]:before{display:inline;line-height:unset}table{width:calc(100% + 60px);border-collapse:collapse;margin:-30px;border-radius:10px;overflow:hidden;position:relative;table-layout:fixed}table.y-scroll{overflow-y:auto}table thead{box-shadow:0 0 2px rgba(0,0,0,.25);border-bottom:solid 1px var(--config-color-fade-super);font-size:14px}table.small{font-size:14px}table.open-end tbody tr:last-child{border-bottom:none;font-weight:700;background:#f7fbf7}table.full tbody td,table.full tbody th{vertical-align:top;white-space:normal;overflow:auto;line-height:24px;padding-top:20px;padding-bottom:20px;height:auto}table .avatar{width:30px;height:30px}table tr{border-bottom:solid 1px var(--config-color-fade-super)}table tr:last-child{border-bottom:none}table tr:nth-child(even){background:var(--config-color-background-fade-super)}table tr.selected{background:var(--config-note-background)}table tr.selected td,table tr.selected td span{font-weight:500}table th{text-align:left;font-weight:400}table th i{color:var(--config-color-fade);font-size:10px;display:inline-block;vertical-align:top;line-height:16px;padding:0 3px}table td,table th{height:65px;padding:0 15px;line-height:50px}table td:first-child,table th:first-child{padding-left:30px}table td:last-child,table th:last-child{padding-right:30px}table td,table th{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){table.vertical{border-top:solid 1px var(--config-color-fade-super);display:block;overflow:hidden;padding-top:12px}table.vertical .hide{display:none}table.vertical tbody,table.vertical td,table.vertical th,table.vertical thead,table.vertical tr{width:100%;display:block}table.vertical th,table.vertical tr{padding-top:12px;padding-bottom:12px}table.vertical th:first-child,table.vertical tr:first-child{padding-top:0}table.vertical td,table.vertical th{padding:5px 20px!important;text-overflow:ellipsis;white-space:normal;height:40px;line-height:40px;width:calc(100% - 40px)}table.vertical td:first-child,table.vertical td:last-child,table.vertical th:first-child,table.vertical th:last-child{padding:0 10px}table.vertical td:last-child,table.vertical th:last-child{padding-bottom:0}table.vertical td p,table.vertical th p{display:inline-block;width:calc(100% - 40px)}table.vertical td:not([data-title=""]):before{content:attr(data-title);margin-right:4px;font-weight:400}table.vertical thead{display:none}}.zone{max-width:var(--config-width-xl);margin:0 auto 40px auto}.zone.xxxl{max-width:calc(1400px - 100px)}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.zone.xxxl{max-width:100%}}.zone.xxl{max-width:var(--config-width-xxl)}.zone.xl{max-width:var(--config-width-xl)}.zone.large{max-width:var(--config-width-large)}.zone.medium{max-width:var(--config-width-medium)}.zone.small{max-width:var(--config-width-small)}.row{position:relative;margin:0 -50px;padding-left:50px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.row{margin:0 -30px;padding-left:30px}}.row.force-ltr>.col{float:left}.row.force-rtl>.col{float:right}.row.force-reverse>.col{float:right}.row.wide{margin:0 -100px;padding-left:100px}.row.wide>.span-1{width:calc(8.33333333% * 1 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-2{width:calc(8.33333333% * 2 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-3{width:calc(8.33333333% * 3 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-4{width:calc(8.33333333% * 4 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-5{width:calc(8.33333333% * 5 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-6{width:calc(8.33333333% * 6 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-7{width:calc(8.33333333% * 7 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-8{width:calc(8.33333333% * 8 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-9{width:calc(8.33333333% * 9 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-10{width:calc(8.33333333% * 10 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-11{width:calc(8.33333333% * 11 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-12{width:calc(8.33333333% * 12 - 100px);box-sizing:content-box;padding-right:100px}.row.thin{margin:0 -20px;padding-left:20px}.row.thin>.span-1{width:calc(8.33333333% * 1 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-2{width:calc(8.33333333% * 2 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-3{width:calc(8.33333333% * 3 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-4{width:calc(8.33333333% * 4 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-5{width:calc(8.33333333% * 5 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-6{width:calc(8.33333333% * 6 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-7{width:calc(8.33333333% * 7 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-8{width:calc(8.33333333% * 8 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-9{width:calc(8.33333333% * 9 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-10{width:calc(8.33333333% * 10 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-11{width:calc(8.33333333% * 11 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-12{width:calc(8.33333333% * 12 - 20px);box-sizing:content-box;padding-right:20px}.row.modalize{margin:0 -30px;padding-left:30px}.row.modalize>.span-1{width:calc(8.33333333% * 1 - 30px);box-sizing:content-box;padding-right:30px}.row.modalize>.span-2{width:calc(8.33333333% * 2 - 30px);box-sizing:content-box;padding-right:30px}.row.modalize>.span-3{width:calc(8.33333333% * 3 - 30px);box-sizing:content-box;padding-right:30px}.row.modalize>.span-4{width:calc(8.33333333% * 4 - 30px);box-sizing:content-box;padding-right:30px}.row.modalize>.span-5{width:calc(8.33333333% * 5 - 30px);box-sizing:content-box;padding-right:30px}.row.modalize>.span-6{width:calc(8.33333333% * 6 - 30px);box-sizing:content-box;padding-right:30px}.row.modalize>.span-7{width:calc(8.33333333% * 7 - 30px);box-sizing:content-box;padding-right:30px}.row.modalize>.span-8{width:calc(8.33333333% * 8 - 30px);box-sizing:content-box;padding-right:30px}.row.modalize>.span-9{width:calc(8.33333333% * 9 - 30px);box-sizing:content-box;padding-right:30px}.row.modalize>.span-10{width:calc(8.33333333% * 10 - 30px);box-sizing:content-box;padding-right:30px}.row.modalize>.span-11{width:calc(8.33333333% * 11 - 30px);box-sizing:content-box;padding-right:30px}.row.modalize>.span-12{width:calc(8.33333333% * 12 - 30px);box-sizing:content-box;padding-right:30px}.row:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.row .col{float:left;box-sizing:border-box}.row .col.sticky-top{position:sticky;top:90px}.row .col.sticky-bottom{position:sticky;bottom:0}.row .span-1{width:calc(8.33333333% * 1 - 40px);box-sizing:content-box;padding-right:40px}.row .span-2{width:calc(8.33333333% * 2 - 40px);box-sizing:content-box;padding-right:40px}.row .span-3{width:calc(8.33333333% * 3 - 40px);box-sizing:content-box;padding-right:40px}.row .span-4{width:calc(8.33333333% * 4 - 40px);box-sizing:content-box;padding-right:40px}.row .span-5{width:calc(8.33333333% * 5 - 40px);box-sizing:content-box;padding-right:40px}.row .span-6{width:calc(8.33333333% * 6 - 40px);box-sizing:content-box;padding-right:40px}.row .span-7{width:calc(8.33333333% * 7 - 40px);box-sizing:content-box;padding-right:40px}.row .span-8{width:calc(8.33333333% * 8 - 40px);box-sizing:content-box;padding-right:40px}.row .span-9{width:calc(8.33333333% * 9 - 40px);box-sizing:content-box;padding-right:40px}.row .span-10{width:calc(8.33333333% * 10 - 40px);box-sizing:content-box;padding-right:40px}.row .span-11{width:calc(8.33333333% * 11 - 40px);box-sizing:content-box;padding-right:40px}.row .span-12{width:calc(8.33333333% * 12 - 40px);box-sizing:content-box;padding-right:40px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.row.responsive{width:100%;padding:0;margin:0}.row.responsive>.span-1,.row.responsive>.span-10,.row.responsive>.span-11,.row.responsive>.span-12,.row.responsive>.span-2,.row.responsive>.span-3,.row.responsive>.span-4,.row.responsive>.span-5,.row.responsive>.span-6,.row.responsive>.span-7,.row.responsive>.span-8,.row.responsive>.span-9{width:calc(8.33333333% * 12 - 0px)!important;box-sizing:content-box!important;padding-right:0!important;width:100%!important}}.tiles{position:relative}.tiles:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.tiles>*{margin-right:50px!important;float:left;width:calc(33.3333% - 33.3333px)}.tiles>* .photo-title{width:calc(100% + 30px);height:15px;margin:-15px -15px 10px -15px;border-radius:10px 10px 0 0;background:var(--config-color-fade-super);border-bottom:solid 1px var(--config-color-fade-super)}.tiles>:nth-child(3n){margin-right:0!important}@media only screen and (min-width:551px) and (max-width:1198px){.tiles>li{width:calc(50% - 25px)}.tiles>li:nth-child(3n){margin-right:50px!important}.tiles>li:nth-child(2n){margin-right:0!important}}@media only screen and (max-width:550px){.tiles>li{width:100%;margin-right:0!important}}@font-face{font-family:fontello;src:url(data:application/octet-stream;base64,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) format('woff'),url(data:application/octet-stream;base64,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AADoMAAA6DAAAAAxAADoMQAA6DEAAAAyAADoMgAA6DIAAAAzAADoMwAA6DMAAAA0AADoNAAA6DQAAAA1AADoNQAA6DUAAAA2AADoNgAA6DYAAAA3AADoNwAA6DcAAAA4AADoOAAA6DgAAAA5AADoOQAA6DkAAAA6AADoOgAA6DoAAAA7AADoOwAA6DsAAAA8AADoPAAA6DwAAAA9AADoPQAA6D0AAAA+AADoPgAA6D4AAAA/AADoPwAA6D8AAABAAADoQAAA6EAAAABBAADoQQAA6EEAAABCAADoQgAA6EIAAABDAADoQwAA6EMAAABEAADoRAAA6EQAAABFAADoRQAA6EUAAABGAADoRgAA6EYAAABHAADoRwAA6EcAAABIAADoSAAA6EgAAABJAADoSQAA6EkAAABKAADoSgAA6EoAAABLAADoSwAA6EsAAABMAADoTAAA6EwAAABNAADoTQAA6E0AAABOAADoTgAA6E4AAABPAADoTwAA6E8AAABQAADwjgAA8I4AAABRAADwmwAA8JsAAABSAADwsAAA8LAAAABTAADwxQAA8MUAAABUAADwygAA8MoAAABVAADwywAA8MsAAABWAADwzQAA8M0AAABXAADw3AAA8NwAAABYAADw4QAA8OEAAABZAADxGAAA8RgAAABaAADxHAAA8RwAAABbAADxIQAA8SEAAABcAADxMgAA8TIAAABdAADxNwAA8TcAAABeAADxOAAA8TgAAABfAADxcQAA8XEAAABgAADxegAA8XoAAABhAADxkgAA8ZIAAABiAADxkwAA8ZMAAABjAADxnAAA8ZwAAABkAADxoAAA8aAAAABlAADxrQAA8a0AAABmAADxwAAA8cAAAABnAADxzQAA8c0AAABoAADx3AAA8dwAAABpAADx5QAA8eUAAABqAADx/gAA8f4AAABrAADyMQAA8jEAAABsAADyOgAA8joAAABtAADylgAA8pYAAABuAADyxgAA8sYAAABvAAIAAP+xAsoDDAAVAB4AJUAiAAUBBW8DAQEEAW8ABAIEbwACAAJvAAAAZhMXEREXMgYFGislFAYjISImNTQ+AxcWMjcyHgMDFAYiLgE2HgECykYx/iQxRgoYKj4tScpKKkImHAiPfLR6BIKshEU8WFg8MFRWPCgBSEgmPlRWAcBYfn6wgAJ8AAAC//7/zgPqAu4ADgAeAGRLsA1QWEAjAAMEBANjBQEAAgECAAFtAAEBbgAEAgIEVAAEBAJXAAIEAksbQCIAAwQDbwUBAAIBAgABbQABAW4ABAICBFQABAQCVwACBAJLWUARAQAdGhcUERAJBgAOAQ0GBRQrATIWBwMOASMhIicDJjYzJRchNz4BOwEyHwEWMyEyFgO6IBACKgIUIPzaNAQqAhAgA2oK/LIOBCAUpDQiHiA2AVQUJAH0GBj+PBgaMgHEGBhuKIQUHCIeJBgAAAAACP////gD6QMLAA8AHwAvAD8ATwBfAG8AfwB2QHN5eHFJSEEGCAlpYWApISAGBAVZWFFQGRgREAgCAzk4MQkIAQYAAQRHDwEJDgEIBQkIYA0BBQwBBAMFBF4LAQMKAQIBAwJeBwEBAAABVAcBAQEAVgYBAAEASn17dXNta2VkXVtVVE1MJiYXJhcXFxcUEAUdKzcVFAYnIyImNzU0NjczMhYnFRQGJyMiJjc1NDYXMzIWJxUUBgcjIiY3NTQ2OwEyFgEVFAYnISImJzU0NjchMhYBFRQGKwEiJjc1NDY3MzIWARUUBichIiYnNTQ2FyEyFicVFAYHISImJzU0NjMhMhYnFRQGIyEiJic1NDY3ITIWjwoIawcMAQoIawcMAQoIawcMAQoIawcMAQoIawcMAQoIawcMA1gKCP0SBwoBDAYC7gcM/KYKCGsHDAEKCGsHDANYCgj9EgcKAQwGAu4HDAEKCP0SBwoBDAYC7gcMAQoI/RIHCgEMBgLuBwx2awcMAQoIawcKAQzQawcMAQoIawcMAQrOawcKAQwGawgKCv5MawcMAQoIawcKAQwCfWsICgoIawcKAQz+TWsHDAEKCGsHDAEKzmsHCgEMBmsICgrPawgKCghrBwoBDAACAAD/+QNZAsQAGABAAFBATQwBAQIBRyEBAAFGAAMHBgcDBm0AAgYBBgIBbQABBQYBBWsAAAUEBQAEbQAHAAYCBwZgAAUABAVUAAUFBFgABAUETCwlKicTFiMUCAUcKwEUBwEGIiY9ASMiJic1NDY3MzU0NhYXARY3ERQGKwEiJjcnJj8BPgEXMzI2JxE0JgcjIjQmNi8BJj8BPgEXMzIWApUL/tELHhT6DxQBFg76FB4LAS8LxF5DsgcMAQEBAQIBCAiyJTYBNCa0BgoCAgEBAQIBCAiyQ14BXg4L/tAKFA+hFg7WDxQBoQ4WAgn+0Aq1/nhDXgoICwkGDQcIATYkAYglNgEEAggECwkGDQcIAV4AAAACAAD/sQNaAwsACABqAEVAQmVZTEEEAAQ7CgIBADQoGxAEAwEDRwAFBAVvBgEEAARvAAABAG8AAQMBbwADAgNvAAICZlxbU1FJSCsqIiATEgcFFisBNCYiDgEWMjYlFRQGDwEGBxYXFhQHDgEnIi8BBgcGBwYrASImNScmJwcGIicmJyY0Nz4BNyYvAS4BJzU0Nj8BNjcmJyY0Nz4BMzIfATY3Njc2OwEyFh8BFhc3NjIXFhcWFAcOAQcWHwEeAQI7UnhSAlZ0VgEcCAdoCgsTKAYFD1ANBwdNGRoJBwQQfAgMEBsXTwYQBkYWBAUIKAoPCGYHCAEKBWgIDhclBgUPUA0HCE0YGgkIAxF8BwwBDxwXTwUPB0gUBAQJKAoPCGYHCgFeO1RUdlRUeHwHDAEQHhUbMgYOBhVQAQU8DQhMHBAKB2cJDDwFBkAeBQ4GDDIPHBsPAQwHfAcMARAZGiAtBwwHFFAFPA0ITBwQCgdnCQs7BQVDHAUOBgwyDxwaEAEMAAAAAQAA//cDiALDAC8ATUBKLiwqIAIFBQYZAQQFFhICAwQLAQECBEcABgUGbwAFBAVvAAQDBG8AAwIDbwACAQJvAAEAAAFUAAEBAFgAAAEATCQWFiMRIigHBRsrAQYHFRQOAyciJxYzMjcuAScWMzI3LgE9ARYXLgE0Nx4BFyY1NDY3Mhc2NwYHNgOIJTUqVnioYZd9Exh+YjtcEhMPGBg/UiYsJSwZRMBwBWpKTzU9NhU7NAJuNicXSZCGZEACUQJNAUY2AwYNYkICFQIZTmAqU2QFFRRLaAE5DCBAJAYAAAAGAAD/ngOPAx0AAwAHAAsAEAAZAB4ASkBHAAEAAAMBAF4AAwACBQMCXgAFAAQGBQReCgwIAwYHBwZUCgwIAwYGB1gLCQIHBgdMEhEeHRwbFhURGRIZERIRERERERANBRwrASE1IQEhNSEBITUhATQyFCIlMhYOAS4CNhc0MhQiA4/8gwN9/rH90gIuAU/8gwN9/INwcAEYFiICHjAgAiS8cHACrXD+sXD+r2/+fDhxcSIsJAEiLiA3OHEAAAEAAP/vAtQChgAkAB5AGyIZEAcEAAIBRwMBAgACbwEBAABmFBwUFAQFGCslFA8BBiIvAQcGIi8BJjQ/AScmND8BNjIfATc2Mh8BFhQPARcWAtQPTBAsEKSkECwQTBAQpKQQEEwQLBCkpBAsEEwPD6SkD3AWEEwPD6WlDw9MECwQpKQQLBBMEBCkpBAQTA8uD6SkDwACAAD/+QOSAsUAEAAxAC5AKy4mJRgVDw4NCAEDDAEAAQJHBAEDAQNvAAEAAW8CAQAAZiooIyIhERQFBRcrAREUBgcjNSMVIyImJxEJARY3BwYHIyInCQEGJi8BJjY3ATYyHwE1NDY7ATIWHQEXFhQDEhYO1o/WDxQBAUEBQQF8IgUHAgcF/n7+fgcNBSMEAgUBkRIwE4gKCGsICnoGASj+9Q8UAdbWFg4BDwEI/vgBJCkFAQMBQv6+BAIFKQYOBQFODw9xbAgKCgjjZgQQAAAAAQAAAAACPAHtAA4AF0AUAAEAAQFHAAEAAW8AAABmNRQCBRYrARQPAQYiLwEmNDYzITIWAjsK+gscC/oLFg4B9A4WAckOC/oLC/oLHBYWAAABAAD/sQIXA1IAFAAzQDAAAQAGAUcAAwIDcAAGAAABBgBgBQEBAgIBUgUBAQECVgQBAgECSiMREREREyEHBRsrARUjIgYdATMHIxEjESM1MzU0NjMyAhdXMCKkFo6rjo50YVIDS5MoKGql/lgBqKV6aHIAAAEAAP+xA2QDCwA1AB1AGjUsIxoRCAYAAQFHAAEAAW8AAABmKSY7AgUVKwEeAQ8BDgEvARUUBgcjIiY3NQcGJi8BJjY/AScuAT8BPgEfATU0NjczMhYdATc2Fh8BFgYPAQM7Gg4OIw86GZUqHUcdLAGUGjoOJA4OG5SUGhAPJA84G5QqHkcdKpUaOBAjDxAZlAEIDjoaPRoODlWrHSoBLByrVQ8QGT0aOg5WVg46Gj0aDg5Vqx0qASwcq1UPEBk9GjoOVgAEAAD/sQOhAy4ACAARACkAQABGQEM1AQcGCQACAgACRwAJBglvCAEGBwZvAAcDB28ABAACBFQFAQMBAQACAwBgAAQEAlgAAgQCTD08IzMjIjIlORgSCgUdKyU0Jg4CHgE2NzQmDgIeATY3FRQGIyEiJic1NDYXMx4BOwEyNjczMhYDBisBFRQGByMiJic1IyImPwE2Mh8BFgLKFB4UAhgaGI0UIBICFhwYRiAW/MsXHgEgFu4MNiOPIjYN7hYgtgkYjxQPjw8UAY8XExH6Ch4K+hIdDhYCEiASBBoMDhYCEiASBBqJsxYgIBazFiABHygoHx4BUhb6DxQBFg76LBH6Cgr6EQAAAAAFAAD/OgOqA4EAKAAxAEIASwBUAIBAfRsKAgQBHwEKBgABDQoDRwAEAQYBBAZtAAYKAQYKawAJDQcNCQdtDwEKAA0JCg1gAAcACAwHCGAQAQwACwUMC2ADAQEBAlgAAgIMSA4BBQUAWAAAAA0ASU1MREMqKVFQTFRNVEhHQ0tES0A/Ojc0Mi4tKTEqMRgjMygUEQUZKwEWFRQABAA1NBI3NSc1IyImPgE3MzIeAQYnIxUHFRYXPwE2MhYGDwEGATI2ECYEBhAWEzMyFhQGJyMiJj0BNDYyFgcnMhYSBiImEjYTMjYuAQ4CFgNXU/7s/n7+7PCyAjMVIAIcF9AVHgIiEzQBnHIGGw8qIAIOGgX+dJfW1v7S1tbLaBUgIBWcFSAgKiABNIG2Arr+vAS0g2uaApbalgKaAhl1lML+7gIBFsC0AQoTAQMzICoeASAoIgEzAQMRbAkaDx4sDxoF/YXWAS7WAtL+ztIBnh4qIAEeFpwWHh4Wnbj+/ri4AQK4/cKa1poCltqWAAIAAP/YA+gC5AAVACQARkBDIwEEAiQZAgEEAwQCRyIBAUUAAQACBAECXgAFAAQDBQRgBgEDAAADUgYBAwMAWAAAAwBMAAAhIBcWABUAFRQlNQcFFyslNTcVFAYjISImNRE0NjMhDgEPASMRASIGBzQ+BTM1BQEC7mQeFP0SFB4cFgEgIDYMCoICOKaYVAIQHDxQhlIBTP60PDhSvBQeHhQCJhYcGDIODP4+AVxSjAgcVEpcQi6c+v78AAAAAQAA/7ED6AMMABwAIUAeEQEAAQFHAgEBAAFvAwEAAGYBABcVDQsAHAEcBAUUKwUiJwEnLgM1NDY3Mh4CFz4DFzIWFAcBBgH0Dgv+pA8KKiIajn0iSD4uExQsQEYjfY6A/qUKTwoBUA8KNjZQJXuKARgqIhUUJCgaAYz1gP6xCgABAAD/+QMSAwsAIwApQCYABAMEbwABAAFwBQEDAAADVAUBAwMAWAIBAAMATCMzJSMzIwYFGisBFRQGJyMVFAYHIyImNzUjIiYnNTQ2NzM1NDY7ATIWFxUzMhYDEiAW6CAWaxYgAegXHgEgFugeF2sXHgHoFx4Bt2sWIAHpFh4BIBXpHhdrFx4B6BYgIBboIAAB//8AAAI7AckADgARQA4AAQABbwAAAGYVMgIFFislFAYnISIuAT8BNjIfARYCOxQP/gwPFAIM+goeCvoKqw4WARQeC/oKCvoLAAAAAwAA//kDWgLEAA8AHwAvADdANCgBBAUIAAIAAQJHAAUABAMFBGAAAwACAQMCYAABAAABVAABAQBYAAABAEwmNSY1JjMGBRorJRUUBgchIiYnNTQ2NyEyFgMVFAYnISImJzU0NhchMhYDFRQGIyEiJic1NDYXITIWA1kUEPzvDxQBFg4DEQ8WARQQ/O8PFAEWDgMRDxYBFBD87w8UARYOAxEPFmRHDxQBFg5HDxQBFgEQSA4WARQPSA4WARQBDkcOFhYORw8WARQAAAAAAQAA/8ACmANEABQAF0AUAQEAAQFHAAEAAW8AAABmFxcCBRYrCQIWFA8BBiInASY0NwE2Mh8BFhQCjv7XASkKCl0LHAv+YgsLAZ4KHgpdCgKq/tj+1woeCl0KCgGfCh4KAZ4LC10KHgABAAD/wAJ0A0QAFAAXQBQJAQABAUcAAQABbwAAAGYcEgIFFisJAQYiLwEmNDcJASY0PwE2MhcBFhQCav5iCxwLXQsLASj+2AsLXQoeCgGeCgFp/mEKCl0LHAsBKQEoCxwLXQsL/mILHAAAAAACAAD/+QNZAsQADQAjADNAMBYBBAMBRwIBAAEDAQADbQAFAAEABQFeAAMEBANSAAMDBFgABAMETCk0ESMUEAYFGisBMzQmJwMhAw4BFTMXMyURFAYHISImJxE0NxM+ARchMhYXExYCO7ACAXb+dXYBArA1swFTFBD87w8UAQ6FBR4OAdEOHgWFDgE6AgYBARX+6wEGAmtb/vMPFAEWDgENIiIBNA4UARIP/swiAAAAAAMAAP92A6ADCwAIABQALgAzQDAmAQQDKCcSAwIEAAEBAANHAAMEA28ABAIEbwACAAJvAAABAG8AAQFmHCMtGBIFBRkrNzQmDgIeATYlAQYiLwEmNDcBHgElFAcOASciJjQ2NzIWFxYUDwEVFzY/ATYyFtYUHhQCGBoYAWb+gxU6FjsVFQF8FlQBmQ0bgk9okpJoIEYZCQmjbAIqSyEPCh0OFgISIBIEGvb+gxQUPRQ7FgF8N1TdFiVLXgGS0JACFBAGEgdefTwCGS0UCgAAAAABAAD/aQPoAsMAJgAcQBkbAQABAUcNAQBEAAEAAW8AAABmJCIjAgUVKwEUDgEjIicGBwYHBiYnNSY2Jj8BNj8BPgI/AS4BJzQ+AjMyHgED6IbmiCcqbpMbJAoOAwIEAgMMBA0UBxQQBw9YZAFQhLxkiOaGAV5hpGAEYSYIBAEMCgECCAQDDwUOFggcHBMqMpJUSYRgOGCkAAcAAP9qAxADUgAHAAsADwATABcAGwAfAEZAQxMPDQMEAAFHHhsaGRcWFRIRCQBFAgEABABvAAQABQEEBV4AAQMDAVIAAQEDVgYBAwEDSgAACwoJCAAHAAcREREHBRcrFREXAyERMxElIRUhPwEFByU3BQcBNwUHAzcTBxM3EwdMAwH1T/3uAYj+eAEIAYkI/owXAXwY/swsAVItqkXmRhdUQVSWAaEB/rEBTv5h21OUVSZV01JrUgE0ScxJAZky/r8yAbwO/nsOAAAAAAMAAP/IAy0C9QAXACAANQCgQAoOAQMBEQEEAwJHS7AWUFhAMgACAAEBAmULAQcJAQACBwBgAAEAAwQBA2EABAoBBQYEBWAABggIBlQABgYIWAAIBghMG0AzAAIAAQACAW0LAQcJAQACBwBgAAEAAwQBA2EABAoBBQYEBWAABggIBlQABgYIWAAIBghMWUAhIiEZGAEALCshNSI1HRwYIBkgEA8NCwcFBAMAFwEXDAUUKwEiBhUzNDMyFhUUBiMiJxUzNT4BNTQuAQMiBhQWMjY0JgMyFxYXFhQHBgcGIicmJyY0NzY3NgGVTlKCHQ4NIiQLCYIwMSpKLh8tLT4uLh9uX1w2ODg2XF/dXlw2Nzc2XF4CalRPOhweIx8BejMMRTcwSin+ay4/Li4+LwIgODVcX91eXDY4ODZcXt1fXDU4AAAAAAL//f+xA18DCwAVACIAMEAtBwECAQFHAAQABG8AAAEAbwABAgFvAAIDAwJUAAICA1gAAwIDTBUXFxQUBQUZKwE0LwEmIg8BJyYiDwEGFB8BFjI3ATYXFA4BIi4CPgEyHgECzQozCxwL5H4LHAszCgrKCh4LAS8KjHLG6MhuBnq89Lp+AbgQCjILC+N+CwsyCh8KygoKAS8KS3XEdHTE6sR0dMQAA//j/5YEHwMmAAwAFQAkADZAMwABAAQFAQRgAAUAAwIFA2AGAQIAAAJUBgECAgBYAAACAEwODSIhGxoSEQ0VDhUVMgcFFislFgYjISInJjcBNjIXAzI2NCYiBh4BEzY1NC4BBhcUHwEWMjc2A99AaH39j34zNUABNT7WP6kiLi5EMAIseQU0TDYBBkgFEANKumu5XVxrAgFra/2PLkQwMEQuAYMNEyY0AjgkERGyCQmyAAAAAv/+AAADkAKAABEAIwAkQCEAAAEAbwABAwFvAAMCAgNUAAMDAlgAAgMCTBc5FzMEBRgrEyY3NjMhMgcGBwYPAQYiLwEmBTYVERQGIyEiJjURNBcFFjI3HiAEAhgDTiYSCBAOsrYQOhK2sgNEFCIQ/OAQIhQBgBI4EgJKEhYOIA4IBmBiCgpiYF4KFP6QECAgEAFwFArICgoAAAAAAwAA/7oDmANJABwAOwBcAKZAGjoBCQVXRwIABBMLAgEHA0dWKwIJRgYCBwJGS7AKUFhANgAFAwkEBWUAAQcCAAFlAAgAAwUIA2AACQAABwkAYAAEAAcBBAdhAAIGBgJUAAICBlgABgIGTBtAOAAFAwkDBQltAAEHAgcBAm0ACAADBQgDYAAJAAAHCQBgAAQABwEEB2EAAgYGAlQAAgIGWAAGAgZMWUAOWVgXFxwoFxgaGBQKBR0rJTQvASYiBxceAR8BFAYHIi4BLwEGFB8BFjI/ATYBNC8BJiIPAQYUHwEWMjcnLgI1NDYXMhYfARYfATYBFA8BBiIvASY0NycGIi8BJjQ/ATYyHwEWFAcXNjIfARYDLRB0EC4QFgMMAQIgFggODgQWExBzDy0QUhD+dw9zECwQUhAQdA8uERcDCgQeFwkOBwsECAoSAfQwUi6HLnMuMTEwhy90Ly9SL4Yvcy4xMTCHL3QvqxcPdBASFgMQBg8XHgEECgQWES4PdA8PURABnxYQcxAPUg8sEHQPERcDDg4JFiABBAUIAwkLEf6OQi9RLzBzL4cwMTEvdC+GLlIuL3QuiDAxMS90LwAAAAIAAP+fA5ADHQAUAB8AWEBVBwEBBQFHCAEBDwECAkYAAgEDAQIDbQADBAEDBGsABARuBwEAAAYFAAZgCAEFAQEFVAgBBQUBWAABBQFMFhUBABsaFR8WHw4NDAsKCQYEABQBFAkFFCsBMhYOASMiJwcVIxUjFSE1ASY1NDYTMjYuASciBhUUFgJ5c6QCoHYcFwVwb/6xAVQFpHQWIgIeGRggIgMdpOakBQVwb3HgAVQXHXOi/rIgMhwCIhUYIgAAABIAAP/ZAy4C4wAPABQAGAAcACAAJAAoAC0AMQA2ADoAPgBDAEgASwBOAFEAVABsQGlIR0NCQUA+PTw6OTg2MzEwLy0sKignJiQjIiAfHhwbGhcWFRQTJQUBAUcLAQAKBwYEAwUBBQABXgkIAgUCAgVSCQgCBQUCVgACBQJKAQBUU1FQTk1LSkZFNTQSEQsJCAcFBAAPAQ4MBRQrATIWFAYrAQMhAyMiJjQ2MwUnIwcXBxc3JzcXNycXBxc3Jxc3Jwc3JwcnBx8BNxcHFzcXBxczPwInBz8BJwc/AScHFy8BIwcXJTcjExczJQczEzcjAwESGxsSBof+SoYLExoaEwFIE3YSTXQZPE4gTU5ObUxMTS1NTU1tTU1MjisRGk4fTU1OH0w5JjogTU1NsRkRTHQNNUxMHxN1Ek3+hCgwaBFLARBrVXEKOwLjGiYa/VACsBomGmsREU60gTxNIE1NTGxNTU1tTU1MLU5MTEwqVRtO+k5MTB9NOjogTE5OKoARTbNAM0xOuxERTjco/fFdaWkCPS8AAv/4/7YD7AMIABwAIwB3tR4BAgEBR0uwC1BYQCkABwYHbwkIAgYBBm8FAQECAW8EAQIDAwJjAAMAAANSAAMDAFkAAAMATRtAKAAHBgdvCQgCBgEGbwUBAQIBbwQBAgMCbwADAAADUgADAwBZAAADAE1ZQBEdHR0jHSMRExEiExEWNgoFHCslHgEPAQ4BIyEiJi8BJj8BMwczMh8BITc2OwEnMycFJTMRMxEDyBISBhwEJBb80BYkBBwKKp5iqrIIBCgBLCgIBLKqYjD+/P78pr7GCiwSmhQaGhSaMBhsgghubgiC1vT0AQD/AAAD//4AAAPoAmAAIAAkACgANkAzAAAIBgcDBAMABF4FAQMBAQNSBQEDAwFYAgEBAwFMJSUhISUoJSgnJiEkISQUJyoYCQUYKxEmNyU2FxYPASEnJjc2FwUWBwMGIyEmLwEmDwEGIyEmJzcXITczFyE3AgoBaB0MCxnjApLkGQsOHQFqCwIbCBn+xxkGMSc1MgYa/sgbBCcTAQQr3SkBAxQBgg0MugsbIQxoaBAdGwu6DA3/AB4CGN8ZGOAaAhzivb29vQAADAAA//kDEgMLAAMABwALAA8AEwAXABsAHwAjAC8AMwA3AMBAvSQbIwMZCwEJAxkJXh4FHQMDBAECCAMCXgoBCBoBGA0IGF4ABxYNB1IAFhMAFlIiFxUfBA0AEwENE14cAQESAQAGAQBeIREgDwQGDAwGUiERIA8EBgYMVhQQDgMMBgxKNDQwMCQkICAcHBgYCAgEBAAANDc0NzY1MDMwMzIxJC8kLy4tLCsqKSgnJiUgIyAjIiEcHxwfHh0YGxgbGhkXFhUUExIREA8ODQwICwgLCgkEBwQHBgUAAwADESUFFSs3FSM1ExUjNSEVIzUBMzUjNTM1IwUzNSMDESERARUjNTMVIzUTFSM1IxUjETMVMzUBESERIREhEdZHR0cB9Ej+DNfX19cBrdbWj/6bAoNI10hI10dH1kf+m/6bAxL+m89HRwGtSEhISP3F1tbW1tb+m/6bAWX+4kdHR0cBHtZH1gFlR0cBrf6aAWb+mgFmAAAAAwAA/8MD6ANAABIANwBxAGhAZWsBAQsNAQABKQICBQYxAQQFVicCAwQFRwALAQtvAAYABQAGBW0ABQQABQRrAAIDAnAKAQEHAQAGAQBgCQEEAwMEVAkBBAQDWAgBAwQDTG5tamlbWFJQQkA9PDQzMC8zFTYYDAUYKwEGBycuAycjIiY9ATQ2OwEyARQPAQYiJj0BIyIGLwEuBSc2Nx4ENzM1NDYyHwEWERQPAQYiJj0BIyIOAgcGBw4CDwEOAicjIiY9ATQ2OwEyPgI3Nj8BPgU3MzU0NjIfARYBdCIrFAgeGi4WfQgKCgh9iwLOBbMFDwowHh4aJw0uGCgaJA0hKwwQHhosGI8KDgeyBQWzBQ8KjxssIBoMEhkQGCQSKRc2QiZ9CAoKCH0bKiQUEBEaHAwkJC42QCiPCg4HsgUCRjRlKRAmGgwCCghrCAr9xQgFswUMBmsCAgMBCgoWFiYUNGQZHioUFAJrCAoFsgUB7AgFswUMBmsQIiIbIj0lMkQVLxoYFgEKCGsIChIgJBkjPT4aQDAsIgwDawgKBbIFAAADAAAAAAPoAnYAFAAdACwAQ0BAIgEEBQFHBgEAAAMFAANgAAUABAIFBGAHAQIBAQJUBwECAgFYAAECAUwWFQEAKiglJBoZFR0WHQsKABQBFAgFFCsBMh4DFA4DIi4DND4DEzI2NCYiBhQWNxY+ARcUBiImNDYzMg4BAfRcqnBWKChWcKq4qnBWKChWcKpcXIKCuIKCXAg6KgRCXEBALg4IEAJ2MkpQPhw8UkoyMkpSPBw+UEoy/hJ+sn5+sn7WCAwKDiw+Plo+LjAAAAACAAD/+QKDAwsABwAfACpAJwUDAgABAgEAAm0AAgJuAAQBAQRUAAQEAVgAAQQBTCMTJTYTEAYFGisTITU0Jg4BFwURFAYHISImJxE0NhczNTQ2MhYHFTMyFrMBHVR2VAEB0CAW/ekXHgEgFhGUzJYCEhceAaVsO1QCUD2h/r4WHgEgFQFCFiABbGaUlGZsHgAC////agOhAw0ACAAhADJALx8BAQAOAQMBAkcAAgMCcAAEAAABBABgAAEDAwFUAAEBA1gAAwEDTBcjFBMSBQUZKwE0LgEGFBY+AQEUBiIvAQYjIi4CPgQeAhcUBxcWAoOS0JKS0JIBHiw6FL9ke1CSaEACPGyOpI5sPAFFvxUBgmeSApbKmAaM/podKhW/RT5qkKKObjoEQmaWTXtkvxUAAwAA/2oDxANTAAwAGgBCAIVADAABAgABRygbAgMBRkuwDlBYQC4HAQUBAAEFZQAAAgEAYwAIAAQDCARgAAMAAQUDAWAAAgYGAlQAAgIGWAAGAgZMG0AvBwEFAQABBWUAAAIBAAJrAAgABAMIBGAAAwABBQMBYAACBgYCVAACAgZYAAYCBkxZQAwfIhIoFhEjExIJBR0rBTQjIiY3NCIVFBY3MiUhJhE0LgIiDgIVEAUUBisBFAYiJjUjIiY1PgQ3NDY3JjU0PgEWFRQHHgEXFB4DAf0JITABEjooCf6MAtaVGjRSbFI0GgKmKh36VHZU+h0qHC4wJBIChGkFICwgBWqCARYiMDBgCDAhCQkpOgGpqAEpHDw4IiI4PBz+16gdKjtUVDsqHRgyVF6ITVSSEAoLFx4CIhULChCSVE6GYFI0AAAABv///2oELwNSABEAMgA7AEQAVgBfAG9AbE8OAgMCAUcRAQkLCW8ACwgLbxABCAIIbw8BAgMCbwcBBQABAAUBbQwKAgEGAAEGawAGBAAGBGsABARuDgEDAAADVA4BAwMAWA0BAAMATF5dWllWVFJQS0pJR0NCPz46ORkVFBk3IxMhEBIFHSsBBgcjIiY3NDMyHgE3MjcGFRQBFAYjISImJzQ+BTMyHgI+AT8BNjcyHgQXARQGIiY0NjIWARQGLgE+AhYFFAYnIyYnNjU0JxYzMj4BFzInFAYiJjQ2MhYBS1o6Sy1AAUUEKkIhJiUDAoNSQ/4YRFABBAwQICY6IQYkLkhQRhkpEAgiOCYgEA4B/cZUdlRUdlQBiX6wgAJ8tHoBQz4uSzlaLQMlJSFEKARFR1R2VFR2VAFeA0QsLMUWGgENFRBO/ltCTk5CHjhCODQmFhgcGgIWEBoKAhYmNDhCHAKPO1RUdlRU/u9ZfgJ6tngGhNMrLgFEA0FOEBUNGBgBjztUVHZUVAACAAD/sQI8AwsACAAYACZAIwABAAIAAQJtAAICbgADAAADVAADAwBYAAADAEwXFxMSBAUYKwE0JiIGFBYyNjcUBwMOASImJwMmNTQ2MhYBrVR2VFR2VI4SywkkJiYHzBKo7KgB7TtUVHZUVDs9J/5QEhYWEgGwJz12qKgAAwAA/7YD6AMIABgAIAAtAKq1JQEJCwFHS7ANUFhAOwYDAgEHBQcBBW0MAQUABwUAawQBAAgHAAhrCgEICwsIYwACAAcBAgdgDQELCQkLUg0BCwsJWQAJCwlNG0A8BgMCAQcFBwEFbQwBBQAHBQBrBAEACAcACGsKAQgLBwgLawACAAcBAgdgDQELCQkLUg0BCwsJWQAJCwlNWUAeISEAACEtIS0sKykmIyIgHRsaABgAGBIkNSIRDgUZKwEVIRM2OwE2PwE+ATsBMhYXFhczMhcTITUDByEnJisBIhM1IQYHBiMhIjUnIRUByP44CgRgoBAVFw4SHN4aFAwSKqBgBAr+OqQcASQcDhyYHJYBrgYEBlT9EloKAa4BRmQBJGwaKS0aDA4YIFBs/txkAWI2Nhr9imRYTlRUpmQAAAUAAP+xA1kDCwAIABEAGgBUAG0AY0BgEgEDBQFHAAoCBwcKZQANCw4CBgUNBmAABQAEAAUEYAADAAABAwBgAAEAAgoBAmAJCAIHDAwHVAkIAgcHDFkADAcMTSAbamVeWVJRPTw6OTg3NjUbVCBTExQTFBMSDwUaKwE0JiIOARYyNjcUBi4BPgIWNxQGIi4BNjIWJSIrASIOAQcOAQcOAhYGFgYWFB8BHgEXHgEyFjYWNhY+ATc+ATc+AiY2JjYmNC8BLgEnLgEiJgYBFAcOAQcGIicuAScmEDc+ATc2IBceARcWAjtSeFICVnRWS4C2ggJ+unw/HiwcAiAoIv7mBCc7FEQuERwqDAYIBAICAgICBgoMKhwQMEIqTApKLEA0DRwsCgYIBAICAgICBgoLKh0QLkYmUAGqAwWAczL+MnSABQMDBYB0MQEAMXR+BgMBXjtUVHZUVDtbggJ+un4CgooVHh4qHh5mBAYICyocEDBEJlAGUCZEGCgcKgsGCgQEBAQECAIKCyocEDBEJlAGUCZEGCgcKgsGCgQE/qKAMXSABQMDBn51MQEAMXSABQMDBn51MQADAAD/kgOYAyoACAARABcASUBGFhUUEwQCBAFHBwEEAwIDBAJtBQEAAAMEAANgBgECAQECVAYBAgIBWAABAgFMEhIKCQEAEhcSFw4NCREKEQUEAAgBCAgFFCsBMgAQACAAEAATMjYQJiAGEBYTFRcHJxEBzL4BDv7y/oT+8gEOvpbS0v7W1NS4ljKqAyr+8v6E/vIBDgF8AQ78zNQBKtLS/tbUAmz0ljKqARIAAf////kDEgMLAE4AI0AgMgECAQABAAICRwABAgFvAAIAAm8AAABmQkAhICYDBRUrJRQGBwYHBiMiJi8CJicuAScmLwEuAS8BJjc0NzY3PgEzMhcWHwEeARceAhUUDgIHFB8BHgE1HgEXMhYfARY3Mj4CFzIeAR8BFhcWAxIMBgs5NDMPHhEaOzYrR5orGxMKCAgEBwMBHR8cDjAPCAQKFBAKFAcCEAggJh4BAwQBDipuTAESBQsGBwoeHiAMBxAYAmAnAwKeDzAOHCAcBAUIFRQbLJhIKzYcFxASIA4PNDQ5CwYMAgMnHxQeDwIYEAgLIB4eCgUICwMWAU1uKgwCBQMBICQiAQgQAjYTCgQAAAAPAAD/agOhA1IAAwAHAAsADwATABcAGwAfACMAMwA3ADsAPwBPAHMAnkCbQSUCHRJJLSQDEx0CRyABHhoBEh0eEmAhHwIdEwkdVBsBExkXDQMJCBMJXxgWDAMIFREHAwUECAVeFBAGAwQPCwMDAQAEAV4OCgIDABwcAFIOCgIDAAAcWAAcABxMcnBtamdmY2BdW1ZTTUxFRD8+PTw7Ojk4NzY1NDEvKScjIiEgHx4dHBsaGRgXFhUUExIRERERERERERAiBR0rFzM1IxczNSMnMzUjFzM1IyczNSMBMzUjJzM1IwEzNSMnMzUjAzU0JicjIgYHFRQWNzMyNgEzNSMnMzUjFzM1Izc1NCYnIyIGFxUUFjczMjY3ERQGIyEiJjURNDY7ATU0NjsBMhYdATM1NDY7ATIWBxUzMhZHoaHFsrLFoaHFsrLFoaEBm7Oz1rKyAayhodazs8QMBiQHCgEMBiQHCgGboaHWs7PWoaESCggjBwwBCggjCArXLBz87h0qKh1INCUkJTTWNiQjJTYBRx0qT6GhoSSysrIkof3Eofqh/cShJLIBMKEHCgEMBqEHDAEK/iayJKGhoWuhBwoBDAahBwwBCiz9NR0qKh0Cyx0qNiU0NCU2NiU0NCU2KgAGAAD/kgOtAyoAGwAfACgALAAwADQAjECJBwEFCQAJBQBtAAgLCgsICm0UAQoNCwoNawANDwsND2sDAQEODA4BDG0ABhMBCQUGCV4EEgIAAAsIAAtgEQEPEAEOAQ8OXgAMAgIMUgAMDAJWAAIMAkohIBwcAQA0MzIxMC8uLSwrKiklJCAoISgcHxwfHh0aGRgXFhUUEg0LCgkIBgAbARsVBRQrATIWFREUBisBFyE3IyImNRE0NjsBNTM1IRUzFSURIREBMjY0JiIGFBYTISchFyM1MxcjNTMDYh4tLR5MIv1NG1IhLS0hYCICDyL98gHJ/cYXICEsICBVAjcv/hzYi4vGi4sCNC4g/pIfLpmZLSABbiEtdYGBdcf+3AEk/nsgKyAgKyD+SvKBIyMjAAAABQAA//kD5AMLAAYADwA5AD4ASAEHQBVAPjsQAwIBBwAENAEBAAJHQQEEAUZLsApQWEAwAAcDBAMHBG0AAAQBAQBlAAMABAADBGAIAQEABgUBBl8ABQICBVQABQUCWAACBQJMG0uwC1BYQCkAAAQBAQBlBwEDAAQAAwRgCAEBAAYFAQZfAAUCAgVUAAUFAlgAAgUCTBtLsBdQWEAwAAcDBAMHBG0AAAQBAQBlAAMABAADBGAIAQEABgUBBl8ABQICBVQABQUCWAACBQJMG0AxAAcDBAMHBG0AAAQBBAABbQADAAQAAwRgCAEBAAYFAQZfAAUCAgVUAAUFAlgAAgUCTFlZWUAWAABEQz08MS4pJh4bFhMABgAGFAkFFSslNycHFTMVASYPAQYWPwE2ExUUBiMhIiY1ETQ2NyEyFx4BDwEGJyYjISIGBxEUFhchMjY9ATQ/ATYWAxcBIzUBByc3NjIfARYUAfBAVUA1ARUJCcQJEgnECSReQ/4wQ15eQwHQIx4JAwcbCAoNDP4wJTQBNiQB0CU0BSQIGDeh/omhAm8zoTMQLBBVEL1BVUEfNgGSCQnECRIJxAn+vmpDXl5DAdBCXgEOBBMGHAgEAzQl/jAlNAE2JEYHBSQICAGPoP6JoAEuNKE0Dw9VECwAAwAA/7EDEwMLABQAKgBfAE1ASikjAgIDUQEBAg4BAAEsAQYABEcABQQFbwAEAAMCBANgAAIAAQACAWAAAAYGAFQAAAAGWAcBBgAGTCsrK18rWUZFRD8oKTchCAUYKyUWMzI1NCcuBCMiBxUUBxUUFgMWMzI+Aic0LgInIgcUFgcVFAcUATc+ATc+AyY3NRAnLgQjJzYkNzIWNzIeAxUUDgMHHgEHFA4DByImByIHATYpJdIXDyYmNCogKBABBAMXJi5ENh4BIDo+JhwtBgEB/tMBCU4UBAYCBgQCDAIUHhocAwI3AQ5JDTINJ0pGMiASGi4kHVZ0AShAWlw0GWIZO3ABErtAJRgiEgoCBlg7HVwVNAGWBA4kQC8nOiIOAQcccB0tHg4a/gM1Ag4IBxAWDhwFJAIkGAUGBgIELgEKAQIBDiIsSicdMh4iEA4UblM4WjYqDAIEAQYAAAAAAQAA/7ECOwMLADoAOEA1EAEAAS4rDAMDAAJHGQEBRQADAAIAAwJtAAICbgABAAABVAABAQBYAAABAEw5NTQwYh4EBRYrFTc+Ajc2PwE2Ej0BLgInNxceATMyNj8BBgcOAQcGDwEOAQcGAg8CBhUXFhcGByIGIyImIyYjIgcKDCwkDxAHIyI6DSIsCgpDMEgfGzgoNgIIEVAUBQMFAgQCD0QJEgkEAQleAgcGGAYQQg9NJhwzTjAECgwHEyWingEiFA4IBgICOgQDAgIDBBYcBhQJCg0XCh4JUv7QLlMuFgoKAw8YHwIMAQUAAAAC//n/rgNjAy4AKQAyAB9AHAwLAgBEAAIBAm8AAQABbwAAAGYwLywrGRcDBRQrJR4BDgIPAQYmPwEnBwYmPwE2PwE+AjsBFz4EFzIXFhcWDgIHExYyNjQmIgYUAh8GBBQGQA2bIBoKKIJqHB4MHxMIFg4WJBc0RwomdHiqUAgGBAIKOGBkJA4WQCwsQCzsMj44GCgGRAwgHG6EKAwcIE8xEC0dDhoGDjJ4WD4MBgQKUqyCahwBDBYuQC4uQAAAAAADAAD/rgNaAw4AKgA9AFEAYEBdOgEAA0s8OwMEAEkBBwQDR0oBB0QCAQEFAwUBA20AAwAFAwBrAAAEBQAEawkBBgAFAQYFYAgBBAcHBFQIAQQEB1gABwQHTD8+LCtIRj5RP1E0Mys9LD0fIhooCgUYKwEyFhcWFRQOASMiJy4BJyY3NTY3NjMyFjMyFhceARUUBgcUFxYXFhcWMjYDMj4CNC4CDgMHFBcHNxYTMh4CDgMnIicHNyY1ND4CAiYHXgMBEj4aIEo3UCopAQInDg8EDAULCAQFHCYBAxMmHzUHDixrR4JeODhego6AYDYBQyyHWGhWnHBEAkB0mFhsX+lMPEJymgEzMgUCBhIuHiMZUj48MAUyJgwCBg0LTAMMKgUDBSkjHhsENv7ZOFyEjIRcOgI2YIBIcVyCKzoDA0RuoKagbEgCNUviY3ZWmnQ+AAADAAAAAAOYAcwACAARABoAOkA3CAQHAgYFAAEBAFQIBAcCBgUAAAFYBQMCAQABTBMSCgkBABcWEhoTGg4NCREKEQUEAAgBCAkFFCsTMhYUBiImNDYhMhYUBiImNDYhMhYUBiImNDZuLkBAXEBAAYwuQEJYQkABjC5AQFxAQAHMQFpCQlpAQFpCQlpAQFpCQlpAAAAAA//8/5ADmgMsAAgAEwApAGJAXwwBAwIjIhgXBAUHAkcABwYFBgcFbQAFBAYFBGsIAQAJAQIDAAJgAAMABgcDBmAKAQQBAQRUCgEEBAFYAAEEAUwVFAoJAQAmJCAeGxkUKRUpEA4JEwoTBQQACAEICwUUKwE2ABIABAACABciBhUGFjMyNjU0AzI2NycGIyI/ATYjIgYHFzYzMg8BBgHGvgEQBv72/oT+7gYBDPIqLgIiICYutB5sNBIwGA4KKhowHnY4EDQWDAwkGgMqAv74/oT+7gYBCgF8ARKWMBocICwgOv2uNDQYJCagYDouGiIimGgAAAEAAP/5A+gCwwAfACRAIRkIAgADAUcAAgMCbwADAANvAAABAG8AAQFmFTU1JAQFGCsBERQHBiMiLwEVFAYjISImNRE0NjMhMhYdATc2MzIXFgPoFgcHDwrhXkL+d0NeXkMBiUJe4QoPBwcWAo79oBcJAwrhXENeXkMBiENeXkNc4QoCCgAAAAACAAAAAAOPAq0ACgAVAC1AKgQBAAMAbwcBAwIDbwYBAgEBAlQGAQICAVgFAQECAUwSERMREhETEAgFHCsTIREUBic1MjYnIwEhERQGJzUyNicjEgFPxItchAHfAi4BT8SLXIQB3wKt/rKMxAFvgl4BTv6yjMQBb4JeAAAAA//4/4QD6ANCAA4AHgAmAENAQCUkIyEgCAYEAgFHAgEARQEBAAIAbwUBAgQCbwYBBAMDBFIGAQQEA1gAAwQDTB8fEA8fJh8mGBUPHhAdIhAHBRYrASMnByMiBh0BAyY3JTYXEzIWFREUBiMhIiY1ETQ2MwE1Jw8BJwcVA1hkfNa0NExsCiACqCQO0BAWFhD9LBAWFhACnEimgopcAgaWlk40oAEoJg74CiL+jBgQ/igQGBgQAdgQGP48oqA8hKrWVgAAAAL/9//iA9sDEgAXACAAJkAjAAIBAm8DAQEAAAFUAwEBAQBYAAABAEwZGB0cGCAZIC8EBRUrAR4BBgcGJgYHBh4BBw4CIyImNz4BNyQDMjY0JiIGFBYDWUg6EhoQTFQmHhIyAgJEuHy60goIwHgBIkgeLCw+LCwCbjB8VAYEHAgqLjpIDhpKSsqQduoiVP2KLEAqKkAsAAAAA//7/2gCvwNSAAYAFwAyADpANxINAgQFAwACAQACRwADAAUEAwVgAAQAAgAEAl4AAAEBAFIAAAABWAABAAFMMjEmJRcRIhEGBRgrFzUhFQYnBjchNC4CNz4BIBYXFg4DAQYWBhYGHwEWHwIWFzM2PwE2PwE+AicmINEBGkZIRs7+8khUQAYIrAFSqgoEKEBCMP6GBAgEDgIJCwILDh9YGFIYWBkVBBENBgYCEP46bmhoKgICzkiIWoZIeKyseDxqVlRsAbQEIAgeBg8TBA8TLHpaXnYjHQcdFhYiEsQAAAADAAD/1wOPAuUAGQAfACUAJkAjJCMhIB4dGxoIAQABRw0BAUQDAQABAG8CAQEBZhEaERUEBRgrAT4ENxEiDgIPAScuAycRMh4CFwURFhcRJgERBgcRNgHQBRRKXKJeX6JeRgwODQlKXKJgXqBgRg3+v6xrbgH0qG5sAnUFDiYgFgH9YhgeJgoKDAgkIhQCAp4YHiQLC/4+DjkBwTr+TAHCDjr+PzkAAAABAAAAAAOlApgAFQAdQBoPAQABAUcAAgECbwABAAFvAAAAZhQXFAMFFysBFAcBBiInASY0PwE2Mh8BATYyHwEWA6UQ/iAQLBD+6g8PTBAsEKQBbhAsEEwQAhYWEP4gDw8BFhAsEEwQEKUBbxAQTA8AAwAA/3AE4gNNABsALQA9AJ5ACg4BAwFGDwkCAURLsBhQWEAyCgEABwYGAGUABAAHAAQHYAAGAAgFBghhCwEFAAMJBQNgAAkBAQlUAAkJAVgCAQEJAUwbQDMKAQAHBgcABm0ABAAHAAQHYAAGAAgFBghhCwEFAAMJBQNgAAkBAQlUAAkJAVgCAQEJAUxZQB8dHAEAPDk0MSglIiAcLR0tGRYREAwKCAYAGwEbDAUUKwEyFhcRFAYHIxUnISImNwc1IiYnETQ2MyEyFhUBMzU0NjchNTQmJyEiBhcRFBYFETQmIyEiBhcRFBY3ITI2BEZBWgFcQDWc/mBBXAGdQVoBXEACcUFc/PLRTDYBUyAV/Y8VIAEeA/QeFv2pIDABIBUCcRUgArBaQv6UQVoBnJxcQJycXEEBa0FcXEH+YOo2TAEzFh4BIBX+lRYeaQFsFSAwH/6uFSABHgADAAD/aQTCA1EADwAfACwAMEAtAAUEAgQFAm0AAgJuAAEAAAMBAGAAAwQEA1QAAwMEWAAEAwRMMzQ1NTUzBgUaKwEVFAYHISImPQE0NjMhMhYDERQGIyEiJjURNDYzITIWBTQmIyEiBhQWMyEyNgTBGBP7lREaGhEEaxIaLBoS++0SGhoSBBMSGv7QJhz+eRsmJhsBhxsoAyaDEhgBGhGDERoa/r79nxEaGhECYRIaGqobJiY2JiYAAQAAAAAB9AKSAAsABrMKBQEtKwEWFAcBBiY1ETQ2FwHmDg7+VBgiIhgBeAoeCv72EBQeAgIeFBAAAAAAAgAAAAACEgK8AAgAEQAjQCAFAgQDAAEAbwMBAQFmCgkBAA4NCREKEQUEAAgBCAYFFCsBMhURFCI1ETQhMhURFCI1ETQBuFq0/vxatAK8QP3GQkICOkBA/cZCQgI6QAAAAQAA/+cDtgIpABQAGUAWDQEAAQFHAgEBAAFvAAAAZhQXEgMFFysJAQYiJwEmND8BNjIXCQE2Mh8BFhQDq/5iCh4K/mILC10KHgoBKAEoCxwMXAsBj/5jCwsBnQseClwLC/7YASgLC1wLHAAAAQAAAAADtgJGABQAGUAWBQEAAgFHAAIAAm8BAQAAZhcUEgMFFyslBwYiJwkBBiIvASY0NwE2MhcBFhQDq1wLHgr+2P7YCxwLXQsLAZ4LHAsBngtrXAoKASn+1woKXAseCgGeCgr+YgscAAAAAQAAAAADEgHtAA8AGEAVAAEAAAFUAAEBAFgAAAEATDUzAgUWKwEVFAYnISImJzU0NjchMhYDEiAW/VoXHgEgFgKmFx4Bt2sWIAEeF2sXHgEgAAAAAgAAAAADjwKtAAYADQA/QDwLAQMCDAQCAQMDAQABA0cKAQJFAgEARAACBAEDAQIDXgABAAABUgABAQBWAAABAEoHBwcNBw0SFBAFBRcrJSEVJzcVISU1ITUXBzUDj/1i398CnvyDAp7f339vqKdw33BvpqhvAAAACAAA/5IDmAMqAA8AGwAnADcAQgBOAF0AaQCBQH4kIAYDAQJcMCYeGAoEBwMBTS4aEgIFBgBVPDYDBAVoR0U+OBQGBwQFRwADAQABAwBtCAEABgEABmsABgUBBgVrAAUEAQUEawAEBwEEB2sABwduAAIBAQJUAAICAVgJAQECAUwdHAEAZ2VXVkxLOzozMSMhHCcdJwAPAQ8KBRQrEyIHJic2NxYXBhUUFwYHJgcUFwYHJjU0NxYXBgEiByYnNjMyFwYHJhMmJzY1NCc2NxYzMjcWFwYXNjc2NwYHNjU0JicGByYnNjcWMzI3FgEWFRQHBgcmJyYnNj0BNgMWFxYVFAcGIyInNuAWFDAsNkpcPAYEPjYQbhQ8FEIyJi4IAVAcFjo4VE54bkxWGmqgggQOJjwaHg4YXigQdiYQOjIueAYClr5yWkQMRAYOHhaOAWCWBEBCGEAwZApkGg4SAg5WbDo2bgH4CjRMSiwmLBAQBhAwOARiIhpydmqCbmA+MhgBMA4qHB4+DiQa/jQYWBQKGBwsLhQIbIQOlg4uBA6SVjAyCiRMYLAkSpCCAg5iAdKIzBYsEgY4BJJ2FBYKKv3sCggSIlBAKgygAAAAAAQAAP+9A2sC/wAIABEAIgB1AHlAdmIBCAddVAIACG9COjUqJQYGARwBBQYERx8BBUQACAcABwhlDQEECQEHCAQHXgwCCwMAAwEBBgABYA4KAgYFBQZUDgoCBgYFWAAFBgVMIyMUEgoJAQAjdSN1ZGNXVk5NPDsbGRIiFCIODQkRChEFBAAIAQgPBRQrASIGFBYyNjQmMyIGFBYyNjQmEyEiBhURFBYzIScfAhE0JgMmJzY3Nj8BBgcGBwYnJicmLwEXFhcWFwcmJyYnJi8BNDc2NzY/ATY3Nj8BFwYHBg8BNzY3NjM2FxYXJyYnJic3FxYXFh8BFhcWFxYVBwYHBgcGAbMSGBkjGRmGEhgZIxkZuf3RIzIyIwHZFjUyWjLEDg4YFA4LBxQcIB01Nx4fDw8RBwoOEhgcIBsVEg0JBwkIDQkMCRseFhURBCEdFBAMGTIsAwUrKUU4Cw8TGyAGERUWHhsJDAkNCAkHCQ0SFRsBoRsmGxsmGxsmGxsmGwFeMyP9zSQyTTIuUALsIzP94BEQBw0JDAkNDAwGCQoFDQUJCgkLCQ0HIgEKCA0KCwouMSYnGxkTFAsJAwEFCg4KDAkMFwMBBQQJHwkLCQ4KBwEDCQsUExkbJyYxLgoLCg0ICgAAAAABAAD/nwOPAx0ADwAdQBoLAgIARQIBAAEAbwABAWYBAAYEAA8BDwMFFCslMjcOASMiADU0NjcGFRQWAsJpZCrwm7z+9LqQOPSyOJG6AQy9mvArZGms8gAACQAA/54DjwMdAAgAEgAXACAAJQAvADgAQQBKAHxAeREBAAUGBQAGbQABBwgHAQhtAAMAAgQDAmAQAQQPAQUABAVgDhICBhMNAgcBBgdgDAEIAAkKCAlgAAoLCwpUAAoKC1gACwoLTDo5GRgBAEhHREM+PTlBOkE0My4tKiglJCMiHRwYIBkgFxYVFBEQDAsFBAAIAQgUBRQrATIWDgEuAjY3FAYuATQ2NzIWBTQyFCIHMhYOASIuATYTNDIUIgU0NjMyFg4BLgElJjQ+ARYOASYTIi4BNjIWFAYDBiIuAT4BFgYB0VyEAoC8gASIkiIsIiIVGCL+eG9vOBciAh4yHgEgUG9vARciFRgiAiAuIAEnECAuIgQaNosYIAEiLiAgXxAwHgIiLCQGAj6EuIQCgLyAqhgiAh40GgMghzdvpyAwICAwIP6xN284FiIiLCQCIGAQLiACJCokBgETIDAgIDAgAScQIDAgAiQsAAL//f+xA18DCwAkADEAMEAtHhUMAwQCAAFHAAUBAQACBQBgAwECBAQCVAMBAgIEWAAEAgRMFRcUHBQZBgUaKyU0LwE3NjQvASYiDwEnJiIPAQYUHwEHBhQfARYyPwEXFjI/ATY3FA4BIi4CPgEyHgECgQplZQoKMwoeCmVlCx4KMgsLZWULCzIKHgtlZQoeCjMK2HLG6MhuBnq89Lp+4A4LZWULHQsyCwtlZQsLMgsdC2VlCx0LMgsLZWULCzILjXXEdHTE6sR0dMQAAAEAAP9rA44DUQAFABlAFgUBAUUCAQBEAAEAAW8AAABmEhACBRYrEyEDASUTQgEJTAKP/utUAQv+YAJcAgGIAAAEAAAAAAPIAkkAFQAnAEcAZgDZS7AJUFi1LwEAAgFHG0uwClBYtS8BAAUBRxu1LwEAAgFHWVlLsAlQWEAoDAsJAwEIAQMHAQNgAAcABgIHBl4FAQIAAAJUBQECAgBYCgQCAAIATBtLsApQWEAzAAsBAwELA20MCQIBCAEDBwEDYAAHAAYCBwZeAAIFAAJUAAUAAAVSAAUFAFgKBAIABQBMG0AoDAsJAwEIAQMHAQNgAAcABgIHBl4FAQIAAAJUBQECAgBYCgQCAAIATFlZQBxmZFtZUlBFQUA/Pj08Ozo4NzMnJSMhFRMhDQUVKxMVMzI2Nz4BNzYnJicmJyYnLgIrARcWFxYXFhQHDgMrAS8BMzI3BgcGBwYdARcWFxYXFjsBNS8BNTc1IzUzNSMiBwYHBgUWHwEeARceATMyNjc2EjU0Jg8CDgEnJgI1NCYrARhSREIVDgwCAgECAQIDAwkOIzo0V6cJAwMBAQEBBhEXEiMCASMhuAgCAwEBEgkICRUSM2FKSlpdl2Q4DxYIBwEfBg4jERMOChcIESYHBWgcES0oEhkCBEkdES4BYuYUGxIoJiJHQhcdDgwNFxgJXQgHChkVexUaFBEHlpU8Cg0PKiJjwhEJAwQBAU4DAmwET2xPAQEEA10WN4NCLw4LDR0TDgGFBgIBAQKbSEsHDQEYAwECAAABAAAAAAFBAn0ADgAKtwAAAGYUAQUVKwEUDwEGIiY1ETQ+AR8BFgFBCvoLHBYWHAv6CgFeDgv6CxYOAfQPFAIM+goAAAEAAAAAAWcCfAANABdAFAABAAEBRwABAAFvAAAAZhcTAgUWKwERFAYiLwEmND8BNjIWAWUUIAn6Cgr6CxwYAlj+DA4WC/oLHAv6CxYAAAAAAf/x/54C7wMeACoABrMYBwEtKzc+ATcWFzY3HgQXPgEnHgQOAQc2AicWBgc2Ji8BBgcOARYXLgEHClAEJwaUBgoeVj48BA8IDQ80PDQKHHReQE5zCiosBwYJCgwwGhoIGodc7im0OEhJuPQGFkRQcD4kViUMNmBmhniGNYEBKlArxDQ/ThQRRkYmPmI4TJwAAgAA//kD6ANSACcAPwBMQEkoAQEGEQECATcuAgQCIQEFBARHAAYBBm8ABAIFAgQFbQAFAwIFA2sAAQACBAECYAADAAADVAADAwBYAAADAEw6GyU1NiUzBwUbKwEVFAYjISImNRE0NjchMhYdARQGIyEiBgcRFBYXITI2PQE0NjsBMhYTERQOAS8BAQYiLwEmNDcBJyY0NjMhMhYDEl5D/jBDXl5DAYkHCgoH/nclNAE2JAHQJTQKCCQICtYWHAti/pQFEARABgYBbGILFg4BHQ8UAUyyQ15eQwHQQl4BCggkCAo0Jf4wJTQBNiSyCAoKAdr+4w8UAgxi/pQGBkAFDgYBbGILHBYWAAAAAAgAAP/EA1kDCwBTAFoAXwBkAGkAbgBzAHgAakBnJB4bFQQEAWUNAgMCagEHBkcBBQcERwAEAQIBBAJtAAIDAQIDawADBgEDBmsABgcBBgdrAAcFAQcFawAFBW4IAQABAQBUCAEAAAFYAAEAAUwBAHNycXBGRDg3MTAsKx0cAFMBUwkFFCsBMh4BFRQGBwYmPQE0Jz4EJzQnNicmBg8BJiIHLgIHBhcGFRQeAxcGBw4BIiYnLgEvASIGHgEfAR4BHwEeAjYzNxUUFxQGJy4BNTQ+AQM2JyYHBhYXNiYGFhc2JgYWFzYmBhYXNiYGFjc0BhQ2NyYGFjYBrXTGcqSBDw4dIDI4IhoCLBUZEDwVFTRuNQgeQA8ZFCwYIjgwIRUGDBomIg4LIAwLDAgCCAMEDBgGBgciKCYMDQEQDoGkdMKUAgUGAgEKFAQLBwoUBgoKChwEDQkNJQERBBEmExMgARICEgMLdMR1jOArAw4KdjYZAw4eLEgwQzAzPwUWDg0PDwYSGgY/MzBDL0guHBACFCYFBhgXEhYDAQQKBgMDBh4ODRUaCAIDMhwCCg4DK+CMdcR0/ZgEAwECBAYPAwsGDBUEDgcOFAQNCgwJBgUMBgQHAQ0BCwcDDgYAAAAAAf/5/7EDGALDABQAGEAVDgMCAAEBRwABAAFvAAAAZjgnAgUWKwEWBwERFAcGIyIvASY1EQEmNjMhMgMPCRH+7RYHBw8Kjwr+7RITGALKFwKtFhH+7f5iFwoDC48LDgEPARMRLAAAAAAFAAD/agPoA1IAHwAiACUAMwA8AHBAbSMBAAYdAQkAJyACBwUDRwADAAYAAwZeDAEAAAkFAAleAAUABwQFB2AABAAKCAQKYAAIAAILCAJgDQELAQELUg0BCwsBWAABCwFMNDQBADQ8NDw7OTY1MC8uLCkoJSQiIRoXDgwJBgAfAR4OBRQrATIWFxEUBgchIiYnNSEiJicRNDY/AT4BOwEyFhcVNjMPATMBBzMXNzUjFRQGByMRITU0NgERIxUUBicjEQOyFx4BIBb96RceAf7RFx4BFhDkDzYW6BceASYhR6en/punp22w1h4X6QEeFgIm1x4X6AJ8IBb9WhceASAWoCAWAXcWNg/kEBYgFrcXd6cBfafCsOnpFh4B/puPFjb+TgKD6BYgAf6aAAAGAAD/1APpAucACAARACEAKgA6AEoAX0BcRDw7AwoLNCwCCAkbEwIEBQNHAAsACgYLCl4ABwAGAwcGYAAJAAgCCQhgAAMAAgEDAmAAAQUAAVQABQAEAAUEXgABAQBYAAABAExIRkA/ODYlExUXFhMUExIMBR0rNxQGLgE0PgEWNRQGIiY0NjIWARUUBichIiY9ATQ2NyEyFgEUBiImNDYyFgEVFAYjISImPQE0NjMhMhYDFRQGByEiJj0BNDYzITIW1j5aPj5aPj5aPj5aPgMSCgj9WggKCggCpgcM/O0+Wj4+Wj4DEgoI/VoICgoIAqYHDAEKCP1aCAoKCAKmBwxALEACPFw8AkDyLT4+Wj4+/utrBwwBCghrBwoBDAIALT4+Wj4+/utsBwoKB2wHCgoBFmsHCgEMBmsICgoABgAA/2oD6QNNAB8APQBNAF0AbQB9AhdAN1pZVQMUD3duAg4UbwENDjABBwhnLyoDChJHHAIDBT8dDgMLBAYBAQIFAQABCUdfAQoXEwIDAkZLsAxQWEBjAA8UD28VAQoSEQkKZQAEAwsDBGUAAgsBAwJlABQODRRUFhACDhMBDQgODV4ACAAHEggHYAASABEJEhFgAAkABgUJBl8AAwQFA1QMAQUACwIFC14AAQAAAVQAAQEAWAAAAQBMG0uwJVBYQGQADxQPbxUBChIRCQplAAQDCwMEZQACCwELAgFtABQODRRUFhACDhMBDQgODV4ACAAHEggHYAASABEJEhFgAAkABgUJBl8AAwQFA1QMAQUACwIFC14AAQAAAVQAAQEAWAAAAQBMG0uwKlBYQGUADxQPbxUBChIREgoRbQAEAwsDBGUAAgsBCwIBbQAUDg0UVBYQAg4TAQ0IDg1eAAgABxIIB2AAEgARCRIRYAAJAAYFCQZfAAMEBQNUDAEFAAsCBQteAAEAAAFUAAEBAFgAAAEATBtAZgAPFA9vFQEKEhESChFtAAQDCwMEC20AAgsBCwIBbQAUDg0UVBYQAg4TAQ0IDg1eAAgABxIIB2AAEgARCRIRYAAJAAYFCQZfAAMEBQNUDAEFAAsCBQteAAEAAAFUAAEBAFgAAAEATFlZWUAsTk4gIHt5c3JraWNhTl1OXVxbUlFQT0tJQ0IgPSA9PDskGxYREhgTIyIXBR0rFxQGByInNxYzMjY1NAcnNj8BNjc1IgYnFSM1MxUHHgETFSMmNTQ+Azc0JgciByc+ATMyFhUUDgIHMzUFFRQGJyEiJj0BNDYzITIWARUjNTM1NDc1IwYHJzczFQUVFAYjISImPQE0NjMhMhYDFRQGByEiJj0BNDYzITIW1T4sPCQfHCAQGDsOBA4YCgoJJAk7ujUcIgHKBBwiKBYDEg0ZFC8NNiAoOCYuJgFHA00KCP1aCAoKCAKmBwz87bs8AQEFFyhMOwNOCgj9WggKCggCpgcMAQoI/VoICgoIAqYHDDYtMgElMRkQECMEHwYSHw0IAQIBHlUxQQYqAUJZFAodLh4YGA0OEAEgIRwgLigcLhoeDyKyawcMAQoIawgKDAHwODhDLRcHChQqR+HYbAcKCgdsBwoKARZrBwoBDAZrCAoKAAIAAP+xA1kDCwBcAGwBWkuwCVBYQBk0EAIFAREBAAUuLQIEAGZeAgoJBEc5AQFFG0uwClBYQBk0EAIFAhEBAAUuLQIEAGZeAgoJBEc5AQFFG0AZNBACBQERAQAFLi0CBABmXgIKCQRHOQEBRVlZS7AJUFhALgAJCAoICWUACgpuAAUAAQVUBgICAQcDCwMABAEAYAAECAgEVAAEBAhYAAgECEwbS7AKUFhAMwAJCAoICWUACgpuAAECAAFUAAUAAgVUBgECBwMLAwAEAgBgAAQICARUAAQECFgACAQITBtLsBJQWEAuAAkICggJZQAKCm4ABQABBVQGAgIBBwMLAwAEAQBgAAQICARUAAQECFgACAQITBtALwAJCAoICQptAAoKbgAFAAEFVAYCAgEHAwsDAAQBAGAABAgIBFQABAQIWAAIBAhMWVlZQB0BAGpoYmBTUUA/ODUzMSAeFBIPBwYDAFwBXAwFFCsTJi8BNjMyFxYzMjc2NzI3BxcGIyIHBhUfARYXFhcWMzI3Njc2NzY3NjU0LgEvASYnJg8BJzczFxY3FxYVFAcGBwYHBh0BFBcWFxYHBgcGBw4BIyIuAScmPQE0JyYBNTQmIyEiBh0BFBYzITI2GxUEAgcPIh1KEy8uQREfEQEBISQhCwcBCAMZFCIxMTswHxgbChQJDAQIBAIDChMYOAgBL3IrQwoDAhkWKQMIAQUIAwwIDxUpKnlRXYRDDQkJDgL6Cgj8ywgKCggDNQgKAtYBATEBAwQCAgEBCCkFDgdCoJ1FKyETGhAKEhQQHyApVyw4UDEhJQwUAQECMAYCCAEWBwQNBwEGAwgPDwsGC9JtPSoaJCEfJTRUQy1XumkOFPzvJAgKCggkCAoKAAL////VAjwC5wAOAB0AI0AgAAEAAQFHAAMCA28AAgECbwABAAFvAAAAZhU0JhQEBRgrJRQPAQYiLwEmNDY3ITIWJxQGIyEiLgE/ATYyHwEWAjsK+gscC/oLFg4B9A4WARQP/gwPFAIM+goeCvoK8w8K+gsL+goeFAEWyA4WFhwL+gsL+goAAAADAAD/zANZAv8AAwAOACoASkBHIgEFAQFHBwkCAQgFCAEFbQYEAgAFAHAAAwACCAMCYAAIAQUIVAAICAVYAAUIBUwAACknISAcGxYUERANDAkGAAMAAxEKBRUrExEjETcUBisBIiY0NjIWAREjETQmIyIGBwYVESM2PQEnMxUjPgM3MhbDuMQ6LgEuODpcOAKLty4wIy4NBrgBAbgBCxgmPCJfdAH1/dcCKaspNjZSNjb+QP7DASg7QiYdERz+y9+KpRtQEhogEAF+AAAF//3/sQNfAwsAEwAcACUANgBDAEJAPx0UAgIDAUcACQAGAwkGYAUBAwQBAgEDAmAAAQAABwEAYAAHCAgHVAAHBwhYAAgHCExBQBcXFhMUExkZEgoFHSslDgEuAScmPgEWFx4BMjY3PgEeASUUBiImPgIWBRQGIi4BPgEWFzQuAiIOAh4DPgM3FA4BIi4CPgEyHgECeRVwjnIUBA4cGgQOTF5KDwQcGhD+5io6LAIoPiYBICo8KAIsOC6NOl6GjohcPAI4YISSgmI2SXLG6MhuBnq89Lp++kNUAlBFDhoJDBAsODgsDw4KGuUeKio8KAIsHB4qKjwoAiyrSYRgODhghJKEXjwENGZ8TXXEdHTE6sR0dMQAAAAADwAA//kEMAJ8AAsAFwAjAC8AOwBHAFMAXwBrAHcAgwCPAJ8AowCzAIxAiUgBAgMBRwAeABsFHhteGhcVDwsFBRYUDgoEBAMFBGAZEQ0JBAMYEAwIBAIBAwJhEwcCARIGAgAcAQBgHwEcHR0cUh8BHBwdWAAdHB1MoKCyr6qnoKOgo6Khn5yamJWSj4yJhoOAfXp3dHFua2hlYl9cWVZSUE1KR0RBPjs4MzMzMzMzMzMyIAUdKzcVFCsBIj0BNDsBMjcVFCsBIj0BNDsBMicVFCsBIj0BNDsBMgEVFCMhIj0BNDMhMiUVFCsBIj0BNDsBMicVFCsBIj0BNDsBMhcVFCsBIj0BNDsBMicVFCsBIj0BNDsBMhcVFCsBIj0BNDsBMhcVFCsBIj0BNDsBMgEVFCsBIj0BNDsBMhcVFCsBIj0BNDsBMhcVFCsBIj0BNDsBNTQ7ATITESERAREUBiMhIiY1ETQ2MyEyFtYJNQkJNQlICX0JCX0JSAk1CQk1CQI8Cf4eCQkB4gn+mwk2CQk2CUgJNQkJNQnWCDYJCTYIRwk1CQk1CdYJNQkJNQnXCTYJCTYJ/uIJNgkJNgmPCTYJCTYJjwl9CQk+CTYJR/xfA+goH/xfHSoqHQOhHirGNQkJNQmGNQkJNQmGNgkJNgn+2TUJCTUJhjUJCTUJhjYJCTYJmDUJCTUJhjYJCTYJmDUJCTUJmDUJCTUJARU2CQk2CQk2CQk2CQnECQk1CYYJ/lMB9P4MAfT+DB0qKh0B9B4qKgAAAAMAAP+5BBYCugAUACQAOQAeQBsuEQIAAQFHAwEBAAFvAgEAAGY1NCgnFxIEBRYrJQcGIicBJjQ3ATYyHwEWFA8BFxYUAQMOAS8BLgE3Ez4BHwEeAQkBBiIvASY0PwEnJjQ/ATYyFwEWFAFYHAUOBv78BgYBBAUQBBwGBtvbBgFE0AIOBiIIBgHRAgwHIwcIAWz+/AYOBhwFBdvbBQUcBg4GAQQFRRwFBQEFBQ4GAQQGBhwFEATc2wYOAk79LwcIAwkDDAgC0AgGAQoCDv6P/vsFBRwGDgbb3AUOBhwGBv78BRAAAAIAAP+xAssDCwAGACEAKEAlBwEAAgMBAQACRwABAAFwAAIAAAJUAAICAFYAAAIASjweEQMFFysBESMRNjc2ExEUDgYiLwEuBTURNDYzITIWAl/6QzSDayQ6SkJGHg8QBhgPRkBONiYWDgKDDhYBOgFl/YYjKWcCD/5TMF5KRC4oEAcECwcqLEZIYC8BrQ4WFgAAAAAC//3/sQNfAwsAFAAhAChAJQUBAQABRwADAAABAwBgAAECAgFUAAEBAlgAAgECTBUUFxsEBRgrJTc2NC8BNzY0LwEmIg8BBhQfARYyARQOASIuAj4BMh4BAfs5CwurqwsLOQoeCv0LC/0LHAFpcsboyG4Gerz0un5IOQoeCqurCxwMOQoK/goeCv0LASF1xHR0xOrEdHTEAAL//f+xA18DCwAUACEAKEAlDQEBAAFHAAMAAAEDAGAAAQICAVQAAQECWAACAQJMFRQcFgQFGCslNzY0LwEmIg8BBhQfAQcGFB8BFjIBFA4BIi4CPgEyHgEBkP4KCv4KHgo5CwurqwsLOQscAdRyxujIbgZ6vPS6fkj9CxwL/goKOQseCqurCxwLOQsBIXXEdHTE6sR0dMQABQAA/5YDEgMzAAoAFQApAEIAZAAiQB9WPzwgAAUBRQABAAABVAABAQBYAAABAEw+PTIxAgUUKwEWBicuATY3Nh4BFy4BBw4BFx4BPgETLgEvASYHDgIHHgEfARY/AT4BEw4DBw4BJicuAycmJz8BFiA3HgEGEwYDDgIHBicmJy4CLwIuASc+Az8BNjc2FxYXFhQBxwRAHxUQDhYUKh4+CG43IyoBA1JmRH8LKAwoopoYGiILEDQPMX97Mg8yMQQKBBwTMHRsOxkoLiQLDhEDCnwBPnwMAghlDy8DGBgTjMiLUQgMCAEGHwYOBQIQEiIIG0Zp06ZWIgkBcyMsEwkuLgkLCCAKPEAZD0QmM0gJVgFhDxQCBxobBAYSDxAUAgYQDwcCFP3ODjgmKAwbGgIJBQoUHhM2bQkFU1MDFB4CE17+8BEcEghGFQ8/BhAYByqtImInDhoQEgMKGgoVMRkrCyIAAAAEAAD/agOhAwsAAwAHAAsADwAxQC4PDAcEBAFFCgkCAQQARAMBAQABbwUCBAMAAGYICAAADg0ICwgLBgUAAwADBgUUKwERJREBESERARElEQERIREBff6DAX3+gwOh/gUB+/4FASH+lDUBNwGe/pEBO/6W/klGAXEB6v5FAXUAAAP//f+xA18DCwAIABUAIgA8QDkAAQIAAgEAbQAAAwIAA2sABQYBAgEFAmAAAwQEA1QAAwMEWAAEAwRMCgkgHxoZEA8JFQoVExIHBRYrARQGIi4BNjIWJyIOAh4BMj4BLgIBFA4BIi4CPgEyHgECO1J4UgJWdFaQU4xQAlSIqoZWBE6OAVtyxujIbgZ6vPS6fgFeO1RUdlRU9VKMpIxSUoykjFL+0HXEdHTE6sR0dMQAAgAA/2oDjQNBABUANgBMQEktAQUECwEGBTYXAQAEAgMDRwAEBQRvAAIDAQMCAW0ABQAGBwUGXgAHAAMCBwNgAAEAAAFUAAEBAFgAAAEATCERFiciJiwjCAUcKyUXDgEjIi4BNTQ2NxcOARUUFhcyPgElFwcGIyInAyEiJicDJjc+ARcyFgcUBicXMxUjFzMyHwECOzkhqGpXlFZ0YAlEUpRmR3ZCAS0gjwcJFgqF/vgNFAI2AQUHMB4lNgE6JhTs4wn+Fwl/vHJkfFaUV2WoIUkefEtnkgFKeg9ARwQTAQsSDQGzCg4cJAE0JSc2BKFIRxP+AAMAAP9qBC8DUgAMACYAMABVQFIMAQIARQIBAAEAbwABAwFvCQcFAwMEA28MCggGBAQACw0EC14PAQ0ODg1UDwENDQ5WAA4NDkooJywrJzAoLyYkISAdGxoZERERERESEjISEAUdKwEFFSMUBichIiYnIzUXMxEzETMRMxEzETMRMxEzMhYHFSE1NDYXMwUyFh0BITU0NjcCGAIXRxYQ/KwQFgFHj49Hj0ePSI8hDxgB/F8YDyEDehAW+9EWEQNS1kgOFgEUD0iP/lMBrf5TAa3+UwGt/lMUDyQkDhYBaxYOR0cPFAEAAAAB////sQNIAwsAIwA2QDMSAQMCEwEAAwJHAAIAAwACA2AAAAAFBAAFXgAEAQEEVAAEBAFYAAEEAUwVJSMnJRAGBRorASEWFRQOASMiLgM+AjMyFwcmIyIOARQeATMyPgM3IwGtAZQHZrx5WJ50QgJGcKJWp3h1RGZIekhIekgwUjQoEAXzAZslInm+bERyoK6gckRxcENKepZ6ShwmNiwVAAAAABQAAP9qAxIDUgAPAB8ALwA/AE8AXwBvAH8AjwCfAK8AvwDPAN8A7wD/AQ8BHwEvAT8CC0FGAAMAAQADAAABOQE4ATEA6QDhAJkAkQAZABEACQACAAMBKQEoASEA2QDRAIkAgQApACEACQAEAAUBGQERAMkAwQB5AHEAOQAxAAgABgAHAQkBCAEBALkAsQBpAGEASQBBAAkACAAJAPkA+ADxAFkAUQAFABQACgCpAKEAAgAVAAsACwABAAEAFQAIAEdLsAlQWEBgHwELFBUVC2UoAQAmHBIDAwIAA2AnHRMDAiQaEAMFBAIFYCUbEQMEIhgOAwcGBAdgIxkPAwYgFgwDCQgGCWAeAQoUCApUIRcNAwgAFAsIFGAAFQEBFVQAFRUBWQABFQFNG0BhHwELFBUUCxVtKAEAJhwSAwMCAANgJx0TAwIkGhADBQQCBWAlGxEDBCIYDgMHBgQHYCMZDwMGIBYMAwkIBglgHgEKFAgKVCEXDQMIABQLCBRgABUBARVUABUVAVkAARUBTVlBVwABAAABPQE7ATUBMwEtASsBJQEjAR0BGwEVARMBDQELAQUBAwD9APsA9QDzAO0A6wDlAOMA3QDbANUA0wDNAMsAxQDDAL0AuwC1ALMArQCrAKUAowCdAJsAlQCTAI0AiwCFAIMAfQB7AHUAcwBtAGsAZQBjAF0AWwBVAFMATQBLAEUAQwA9ADsANQAzAC0AKwAlACMAHQAbABUAEwAJAAcAAAAPAAEADwApAAUAFCsBMhYXERQGByEiJicRNDY3FxUUFjsBMjY9ATQmKwEiBh0BFBY7ATI2PQE0JisBIgYdARQWOwEyNj0BNCYrASIGHQEUFjsBMjY9ATQmKwEiBgc1NCYrASIGHQEUFjsBMjY9ATQmKwEiBh0BFBY7ATI2PQE0JisBIgYdARQWOwEyNj0BNCYrASIGHQEUFjsBMjY9ATQmKwEiBh0BFBY7ATI2ATU0JisBIgYdARQWOwEyNhE1NCYrASIGHQEUFjsBMjY9ATQmKwEiBh0BFBY7ATI2PQE0JisBIgYdARQWOwEyNj0BNCYrASIGHQEUFjsBMjYTNTQmKwEiBgcVFBY7ATI2PQE0JisBIgYHFRQWOwEyNj0BNCYrASIGBxUUFjsBMjY9ATQmKwEiBgcVFBY7ATI2PQE0JisBIgYHFRQWOwEyNgLuDxQBFg79Ng8UARYO+goIIwgKCggjCAoKCCMICgoIIwgKCggjCAoKCCMICgoIIwgKCggjCApICggjCAoKCCMICgoIIwgKCggjCAoKCCMICgoIIwgKCggjCAoKCCMICgoIIwgKCggjCAoBHgoIsggKCgiyCAoKCCQHCgoHJAgKCggkBwoKByQICgoIJAcKCgckCAoKCCQHCgoHJAgKjwoIJAcKAQwGJAgKCggkBwoBDAYkCAoKCCQHCgEMBiQICgoIJAcKAQwGJAgKCggkBwoBDAYkCAoDUhYO/GAPFAEWDgOgDxQBoSMICgoIIwgKCpcjCAoKCCMICgqWJAgKCggkBwoKliQICgoIJAgKCrskCAoKCCQICgqXJAgKCggkCAoKlyQHCgoHJAgKCpcjCAoKCCMICgqXIwgKCggjCAoK/T1rCAoKCGsICgoBJiQICgoIJAgKCpckBwoKByQICgqXIwgKCggjCAoKlyMICgoIIwgKCv3MJAgKCggkCAoKlyQICgoIJAgKCpckBwoKByQICgqXIwgKCggjCAoKlyMICgoIIwgKCgAAAAQAAP9qA1sDUgAOAB0ALAA9AHJAbzkMAwMHBiohAgEAGxICBQQDRwsBACkBBBoBAgNGCwEGBwZvAAcAB28IAQAAAQQAAWAKAQQABQIEBWAJAQIDAwJUCQECAgNYAAMCA0wuLR8eEA8BADY1LT0uPSYlHiwfLBcWDx0QHQgHAA4BDgwFFCsBMjY3FRQOASIuASc1HgETMjY3FRQOASIuASc1HgE3MjY3FRQOAi4BJzUeARMyHgEHFRQOASIuASc1ND4BAa2E5kJyyOTKbgNC5oWE5kJyyOTKbgNC5oWE5kJyyOTKbgNC5oV0xHYCcsjkym4DdMQBpTAvXyZCJiZCJl8vMP5UMC9fJ0ImJkInXy8w1jAvXyZCJgIqPihfLzACgyZCJ0cnQiYmQidHJ0ImAAAG//7/agPqA1IAEAAZACEAKgAzADsAckBvGBMCAwIXFAIHAzk4NR8eGwYGByglAgUGKSQCBAUFRwgBAAkBAgMAAmAAAwAHBgMHYAsBBgAFBAYFYAoBBAEBBFQKAQQEAVgAAQQBTCwrIyISEQEAMC8rMywzJyYiKiMqFhURGRIZCQgAEAEQDAUUKwEyHgMOAiIuAj4DFyIHFzYyFzcmATcmNDcnBhQBMjcnBiInBxY3MjYuAQ4CFiUXNjQnBxYUAfRmuIhMBFSAwMTAgFQETIi4ZmpfbC5eLm1g/hxsEBBsMwGtamBtLl4ubF9qWX4CerZ4BoQBY2wzM2wQA1JQhLzIvIRQUIS8yLyEUEczbBAQbDP9imwuXi5tYNT+vTNsEBBsM9d+sIAEeLh2dWxf1GBtLl4AAAEAAP+xA8UDCwB+AE5AS1lUNAMGBRcBAgEIAQACA0cIAQQJBwIFBgQFYAAGAAECBgFgCgECAAACVAoBAgIAWAMBAAIATHp5cG9rZWBfWFVPTkpEdBY9YAsFGCsFIiYiBiMiJjc0PgI3Nj0BNCcmIyEiDwEUFx4BMhYXFAYHIiYiBiMiJjU0PgI3NjUnETc2JjQvAS4BJy4BBiY3NDY3MhYyNjMyFhUUBiIGBwYVFxYzITI3Nj0BNCcuAjU0NjcyFjI2MzIWFRQGIgYHBhUTFBceATIWFxQGA6sZYjJiGQ0QARIaIAkSAQcV/ogWBwEVCSIeFAEMDxpoMV4YDQ4SFh4JEgEBAQICBAIIBQgiGBYBDA4aaDBgFg4OEhocChQBBw8Bhg4HARMKLhwODhhkL2AYDg4UGCIHFAETCSAcEgEMTwQEGA0SEAIGBgtD2gwFAwPgTwwGBBASDhgBBAQYDREQBAQHDUMfAcYPDQ4cChQKEAIFBAIQEg4YAQQEGg0REAQFDE7EAgIGDLJODAYCDBYOGAEEBBoNERAEBQ1N/fJCDAYEEhAOGAAFAAD/agPoA1IAEAAUACUALwA5AGxAaTMpAgcIIQEFAh0VDQwEAAUDRwQBBQFGBgwDCwQBBwIHAQJtAAIFBwIFawAFAAcFAGsEAQAAbgoBCAcHCFQKAQgIB1YJAQcIB0oREQAANzUyMS0rKCckIh8eGxkRFBEUExIAEAAPNw0FFSsBERQGBxEUBgchIiYnERM2MyERIxEBERQGByEiJicRIiYnETMyFyUVIzU0NjsBMhYFFSM1NDY7ATIWAYkWDhQQ/uMPFAGLBA0Bn44COxYO/uMPFAEPFAHtDQT+PsUKCKEICgF3xQoIoQgKAp/+VA8UAf6/DxQBFg4BHQHoDP54AYj+DP7jDxQBFg4BQRYOAawMrX19CAoKCH19CAoKAAACAAD/sQR3AwsABQALADRAMQsKCQMDAQFHAAEDAW8AAwIDbwQBAgAAAlIEAQICAFYAAAIASgAACAcABQAFEREFBRYrBRUhETMRARMhERMBBHf7iUcDWo78YPoBQQdIA1r87gI7/gwBQgFB/r8AAAAAAQAA/7ECygNTAEoARUBCIwEFAhMBAQMCRxwBAUQAAgQFBAIFbQAFAwQFA2sAAAAEAgAEYAADAQEDVAADAwFYAAEDAUxFRDs5MS8pJyglBgUWKxE0PgMXMh4BFRQOAyciJicHDgUPAScmNTQ2PwEmNTQ2NzIWFRQOARYzMj4ENzQmIyIGFRQeAhUUBiMnLgMqSmBuOliYXhQwQGA6JkoRDwoIDhASIhIHBQkYGR0SOi0iJjABMiQfNCQaEAYBemNvlg4QDhANCR0sGAwCBTxqUDoeAUqOWTZmYEYuAiQfPykYOBYwKBwDBlgRM4BhcSQ6L1ABLiIlikcuHDA6QDwaYGyQbxkuGhoEDzIBCSw+OgAEAAD/twPoAwUAEgAVABwAKAAhQB4nISAcFhUUExEOCgABAUcAAQABbwAAAGYkIxQCBRUrAREUBgciJyUuATURNDY3MhcFFhcBJQERFA4BLwEBFAAHAxM2MzIXBRYBTQ4NCgn+/QwQDAoIEAEeASQBKv7WAncQGg32ASv+4hjatQkUCAYBLgICZ/1xDhIBBIMFGg0CfAwOAQiPAjn+HJUBRf2zDhACCHsCLQL+MCgBYQEmEAOXAQAABf/+/5ID6gMqAAUACAAOABQAGgAhQB4UCAEDAEQEAQIBAm8DAQEAAW8AAABmEhcSExYFBRkrEwkBLgE3JSEDARMhEzYyARcWBgcJASETNjIXOgG6/hwKCAQBOgFwuP7Zb/7+bwQcAuU4BAgK/hwBuv7+bwQcBQHI/coBXwcYDKz9ygOM/qoBVgz+nqwMGAf+oQI2AVYMDAACAAD/aAPoA1QAFgAnACJAHxQQCgMAAgFHAAIAAm8AAAEAbwABAWYkIxwbEhEDBRQrJRM2JgcFDgEWHwElNhcWDwIyPwEXFgEUDgMuAjQ+Ah4DAphSBRYS/h4QDAgOfAEeDAYEB+cJDQw8fSQBWlCEvMi8hFBQhLzIvIRQeQGCGRYIuQYQDgQmtAgFAwXSfw06XRQBD2a4iEwEVIDAxMCAVARMiLgAAAABAAAAAQAAaz0qo18PPPUACwPoAAAAANtrMr0AAAAA22syvf/j/zoE4gOBAAAACAACAAAAAAAAAAEAAANS/2oAAATi/+P/4wTiAAEAAAAAAAAAAAAAAAAAAABwA+gAAALKAAAD6f/+A+j//wNZAAADWQAAA6AAAAOgAAADEQAAA6AAAAI7AAACOwAAA6AAAAOgAAADqgAAA+gAAAPoAAADEQAAAjv//wNZAAACygAAAsoAAANZAAADoAAAA+gAAAMQAAADLQAAA1n//QQC/+MDhP/+A6AAAAOgAAADLgAAA+j/+APn//4DEQAAA+gAAAPoAAACggAAA6D//wPoAAAEL///AjsAAAPoAAADWQAAA5gAAAMR//8DoAAAA60AAAPoAAADEQAAAjsAAANc//kDWQAAA5gAAAOY//wD6AAAA6AAAAPo//gD1P/3Arz/+wOgAAAD6AAABOIAAATBAAAB9AAAAhIAAAPoAAAD6AAAAxEAAAOgAAADmAAAA/0AAAOgAAADoAAAA1n//QPoAAAD6AAAAWUAAAFlAAAC7P/xA+gAAANZAAADEf/5A+gAAAPoAAAD6AAAA1kAAAI7//8DWQAAA1n//QQvAAAELwAAAsoAAANZ//0DWf/9AxEAAAOgAAADWf/9A6AAAAR2AAADWf//A1kAAANZAAAD6P/+A+gAAAPoAAAEdgAAAsoAAAPoAAAD6P/+A+gAAAAAAAAARACsAZoCJALmA1YDtAP+BGYEjgTIBSoFrgZyBtAHEAdYB34H5AgYCE4IpgkOCVoJwApiCrQLDgtcDDwMnA1mDdwOPg74D8gQLhB2EMYRaBIsEmoTCBPiFDgUwBWwFkgXPhfsGGIYwhlqGbQaLhpyGrAbEhteG84cIhxaHQYdYh2AHbAd5h4cHkYegh9oIFoghiE8IaIhwiLEIuYjDiNWI9wkyiT+JZQmMifqKTQpeCneKmorjCv+LEgslCzgLZIt0i4qLqQvGC9qMf4yljMwNAQ0lDTMNVQ1sDX8Nk8AAAABAAAAcAFAABQAAAAAAAIAUgBiAHMAAAESC3AAAAAAAAAAEgDeAAEAAAAAAAAANQAAAAEAAAAAAAEACAA1AAEAAAAAAAIABwA9AAEAAAAAAAMACABEAAEAAAAAAAQACABMAAEAAAAAAAUACwBUAAEAAAAAAAYACABfAAEAAAAAAAoAKwBnAAEAAAAAAAsAEwCSAAMAAQQJAAAAagClAAMAAQQJAAEAEAEPAAMAAQQJAAIADgEfAAMAAQQJAAMAEAEtAAMAAQQJAAQAEAE9AAMAAQQJAAUAFgFNAAMAAQQJAAYAEAFjAAMAAQQJAAoAVgFzAAMAAQQJAAsAJgHJQ29weXJpZ2h0IChDKSAyMDIwIGJ5IG9yaWdpbmFsIGF1dGhvcnMgQCBmb250ZWxsby5jb21mb250ZWxsb1JlZ3VsYXJmb250ZWxsb2ZvbnRlbGxvVmVyc2lvbiAxLjBmb250ZWxsb0dlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAEMAbwBwAHkAcgBpAGcAaAB0ACAAKABDACkAIAAyADAAMgAwACAAYgB5ACAAbwByAGkAZwBpAG4AYQBsACAAYQB1AHQAaABvAHIAcwAgAEAAIABmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQBmAG8AbgB0AGUAbABsAG8AUgBlAGcAdQBsAGEAcgBmAG8AbgB0AGUAbABsAG8AZgBvAG4AdABlAGwAbABvAFYAZQByAHMAaQBvAG4AIAAxAC4AMABmAG8AbgB0AGUAbABsAG8ARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAAR1c2VyBmZvbGRlcgRsaXN0BWxvZ2luA2NvZwd0d2l0dGVyC2FydGljbGUtYWx0BmNhbmNlbARob21lCGRvd24tZGlyCGZhY2Vib29rCGFzdGVyaXNrBnVwbG9hZAlzdG9wd2F0Y2gGZXhwb3J0BWhlYXJ0BHBsdXMGdXAtZGlyBG1lbnUJbGVmdC1vcGVuCnJpZ2h0LW9wZW4FaW5ib3gGd3JlbmNoB2NvbW1lbnQNc3RhY2tvdmVyZmxvdwhxdWVzdGlvbgpvay1jaXJjbGVkB3dhcm5pbmcEbWFpbARsaW5rB2tleS1pbnYFdHJhc2gIZG93bmxvYWQHZ2xhc3NlcwZxcmNvZGUHc2h1ZmZsZQNleWUEbG9jawZzZWFyY2gEYmVsbAV1c2Vycwhsb2NhdGlvbglicmllZmNhc2UJaW5zdGFncmFtBWNsb2NrBXBob25lCGNhbGVuZGFyBXByaW50BGVkaXQEYm9sZAZpdGFsaWMGcm9ja2V0CHdoYXRzYXBwBWRvdC0zDGluZm8tY2lyY2xlZAh2aWRlb2NhbQtxdW90ZS1yaWdodAdwaWN0dXJlB3BhbGV0dGUEbGFtcAlib29rLW9wZW4Cb2sIY2hhdC1hbHQHYXJjaGl2ZQRwbGF5BXBhdXNlCWRvd24tb3Blbgd1cC1vcGVuBW1pbnVzCGV4Y2hhbmdlB25ldHdvcmsHZGlzY29yZAhtb29uLWludgdzdW4taW52DmNhbmNlbC1jaXJjbGVkCWxpZ2h0bmluZwNkZXYJcmlnaHQtZGlyCGxlZnQtZGlyBGZpcmUIbGluay1leHQOZ2l0aHViLWNpcmNsZWQGZmlsdGVyBGRvY3MLbGlzdC1idWxsZXQNbGlzdC1udW1iZXJlZAl1bmRlcmxpbmUEc29ydAhsaW5rZWRpbgVzbWlsZQhrZXlib2FyZARjb2RlBnNoaWVsZBJhbmdsZS1jaXJjbGVkLWxlZnQTYW5nbGUtY2lyY2xlZC1yaWdodAliaXRidWNrZXQHd2luZG93cwtkb3QtY2lyY2xlZAp3aGVlbGNoYWlyBGJhbmsGZ29vZ2xlD2J1aWxkaW5nLWZpbGxlZAhkYXRhYmFzZQhsaWZlYnVveQZoZWFkZXIKYmlub2N1bGFycwpjaGFydC1hcmVhCXBpbnRlcmVzdAZtZWRpdW0GZ2l0bGFiCHRlbGVncmFtAAAAAQAB//8ADwAAAAAAAAAAAAAAAAAAAAAAGAAYABgAGAOB/zoDgf86sAAsILAAVVhFWSAgS7gADlFLsAZTWliwNBuwKFlgZiCKVViwAiVhuQgACABjYyNiGyEhsABZsABDI0SyAAEAQ2BCLbABLLAgYGYtsAIsIGQgsMBQsAQmWrIoAQpDRWNFUltYISMhG4pYILBQUFghsEBZGyCwOFBYIbA4WVkgsQEKQ0VjRWFksChQWCGxAQpDRWNFILAwUFghsDBZGyCwwFBYIGYgiophILAKUFhgGyCwIFBYIbAKYBsgsDZQWCGwNmAbYFlZWRuwAStZ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) format('truetype')}[class*=" icon-"]:before,[class^=icon-]:before{font-family:fontello;font-style:normal;font-weight:400;speak:never;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em}.icon-user:before{content:'\e800'}.icon-folder:before{content:'\e801'}.icon-list:before{content:'\e802'}.icon-login:before{content:'\e803'}.icon-cog:before{content:'\e804'}.icon-twitter:before{content:'\e805'}.icon-article-alt:before{content:'\e806'}.icon-cancel:before{content:'\e807'}.icon-home:before{content:'\e808'}.icon-down-dir:before{content:'\e809'}.icon-facebook:before{content:'\e80a'}.icon-asterisk:before{content:'\e80b'}.icon-upload:before{content:'\e80c'}.icon-stopwatch:before{content:'\e80d'}.icon-export:before{content:'\e80e'}.icon-heart:before{content:'\e80f'}.icon-plus:before{content:'\e810'}.icon-up-dir:before{content:'\e811'}.icon-menu:before{content:'\e812'}.icon-left-open:before{content:'\e813'}.icon-right-open:before{content:'\e814'}.icon-inbox:before{content:'\e815'}.icon-wrench:before{content:'\e816'}.icon-comment:before{content:'\e817'}.icon-stackoverflow:before{content:'\e818'}.icon-question:before{content:'\e819'}.icon-ok-circled:before{content:'\e81a'}.icon-warning:before{content:'\e81b'}.icon-mail:before{content:'\e81c'}.icon-link:before{content:'\e81d'}.icon-key-inv:before{content:'\e81e'}.icon-trash:before{content:'\e81f'}.icon-download:before{content:'\e820'}.icon-glasses:before{content:'\e821'}.icon-qrcode:before{content:'\e822'}.icon-shuffle:before{content:'\e823'}.icon-eye:before{content:'\e824'}.icon-lock:before{content:'\e825'}.icon-search:before{content:'\e826'}.icon-bell:before{content:'\e827'}.icon-users:before{content:'\e828'}.icon-location:before{content:'\e829'}.icon-briefcase:before{content:'\e82a'}.icon-instagram:before{content:'\e82b'}.icon-clock:before{content:'\e82c'}.icon-phone:before{content:'\e82d'}.icon-calendar:before{content:'\e82e'}.icon-print:before{content:'\e82f'}.icon-edit:before{content:'\e830'}.icon-bold:before{content:'\e831'}.icon-italic:before{content:'\e832'}.icon-rocket:before{content:'\e833'}.icon-whatsapp:before{content:'\e834'}.icon-dot-3:before{content:'\e835'}.icon-info-circled:before{content:'\e836'}.icon-videocam:before{content:'\e837'}.icon-quote-right:before{content:'\e838'}.icon-picture:before{content:'\e839'}.icon-palette:before{content:'\e83a'}.icon-lamp:before{content:'\e83b'}.icon-book-open:before{content:'\e83c'}.icon-ok:before{content:'\e83d'}.icon-chat-alt:before{content:'\e83e'}.icon-archive:before{content:'\e83f'}.icon-play:before{content:'\e840'}.icon-pause:before{content:'\e841'}.icon-down-open:before{content:'\e842'}.icon-up-open:before{content:'\e843'}.icon-minus:before{content:'\e844'}.icon-exchange:before{content:'\e845'}.icon-network:before{content:'\e846'}.icon-discord:before{content:'\e847'}.icon-moon-inv:before{content:'\e848'}.icon-sun-inv:before{content:'\e849'}.icon-cancel-circled:before{content:'\e84a'}.icon-lightning:before{content:'\e84b'}.icon-dev:before{content:'\e84c'}.icon-right-dir:before{content:'\e84d'}.icon-left-dir:before{content:'\e84e'}.icon-fire:before{content:'\e84f'}.icon-link-ext:before{content:'\f08e'}.icon-github-circled:before{content:'\f09b'}.icon-filter:before{content:'\f0b0'}.icon-docs:before{content:'\f0c5'}.icon-list-bullet:before{content:'\f0ca'}.icon-list-numbered:before{content:'\f0cb'}.icon-underline:before{content:'\f0cd'}.icon-sort:before{content:'\f0dc'}.icon-linkedin:before{content:'\f0e1'}.icon-smile:before{content:'\f118'}.icon-keyboard:before{content:'\f11c'}.icon-code:before{content:'\f121'}.icon-shield:before{content:'\f132'}.icon-angle-circled-left:before{content:'\f137'}.icon-angle-circled-right:before{content:'\f138'}.icon-bitbucket:before{content:'\f171'}.icon-windows:before{content:'\f17a'}.icon-dot-circled:before{content:'\f192'}.icon-wheelchair:before{content:'\f193'}.icon-bank:before{content:'\f19c'}.icon-google:before{content:'\f1a0'}.icon-building-filled:before{content:'\f1ad'}.icon-database:before{content:'\f1c0'}.icon-lifebuoy:before{content:'\f1cd'}.icon-header:before{content:'\f1dc'}.icon-binoculars:before{content:'\f1e5'}.icon-chart-area:before{content:'\f1fe'}.icon-pinterest:before{content:'\f231'}.icon-medium:before{content:'\f23a'}.icon-gitlab:before{content:'\f296'}.icon-telegram:before{content:'\f2c6'}.datalist-polyfill{list-style:none;display:none;background:#fff;box-shadow:0 2px 2px #999;position:absolute;left:0;top:0;margin:0;padding:0;max-height:300px;overflow-y:auto}.datalist-polyfill:empty{display:none!important}.datalist-polyfill>li{padding:3px;font:13px "Lucida Grande",Sans-Serif}.datalist-polyfill__active{background:#3875d7;color:#fff}date-input-polyfill{z-index:1000!important;max-width:320px!important;width:320px!important}date-input-polyfill .monthSelect-wrapper,date-input-polyfill .yearSelect-wrapper{height:50px;line-height:50px;padding:0;width:40%!important;margin-bottom:10px!important}date-input-polyfill .monthSelect-wrapper select,date-input-polyfill .yearSelect-wrapper select{padding:0 12px;height:50px;line-height:50px;box-sizing:border-box}date-input-polyfill .yearSelect-wrapper{width:35%!important}date-input-polyfill table{width:100%!important;max-width:100%!important;padding:0 12px 12px 12px!important;box-sizing:border-box;margin:0}date-input-polyfill table td:first-child,date-input-polyfill table td:last-child,date-input-polyfill table th:first-child,date-input-polyfill table th:last-child{width:32px!important;padding:4px!important}date-input-polyfill select{margin-bottom:10px}date-input-polyfill button{width:25%!important;height:50px!important;line-height:50px!important;margin-bottom:10px!important;background:inherit;position:relative;color:inherit;padding:inherit;box-sizing:inherit;border-radius:inherit;font-size:inherit;box-shadow:none;border:none;border-bottom:none!important}::placeholder{color:var(--config-color-placeholder);text-align:left}::-webkit-input-placeholder{text-align:left}input:-moz-placeholder{text-align:left}form.inline{display:inline-block}input,textarea{background:var(--config-color-background-input)}input[type=file],input[type=file]::-webkit-file-upload-button{cursor:pointer}.button,button{display:inline-block;background:var(--config-color-focus);border-radius:26px;border:none;color:var(--config-color-background-fade);height:52px;line-height:52px;padding:0 25px;cursor:pointer;font-size:16px;box-sizing:border-box;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.button:focus,.button:hover,button:focus,button:hover{background:var(--config-color-focus-hover)}.button.fly,button.fly{position:fixed;z-index:2;bottom:30px;right:30px}@media only screen and (max-width:550px){.button.fly,button.fly{right:15px}}.button.fill,button.fill{display:block;width:100%;text-align:center;padding:0 10px!important}.button.fill-aligned,button.fill-aligned{display:block;width:100%;text-align:left;padding:0 20px!important}.button.icon,button.icon{padding-right:30px!important}.button.icon-reduce,button.icon-reduce{padding-left:15px!important}.button.reverse,button.reverse{background:0 0;height:50px;line-height:48px;padding:0 23px;color:var(--config-color-focus);border:solid 2px var(--config-color-focus)}.button.reverse:focus,.button.reverse:hover,button.reverse:focus,button.reverse:hover{color:var(--config-color-focus-hover);border-color:var(--config-color-focus-hover)}.button.small,button.small{padding:0 15px;height:40px;line-height:36px;font-size:13px}.button.tick,button.tick{background:var(--config-color-fade-light);color:var(--config-color-dark);border-radius:20px;padding:0 10px;line-height:30px;height:30px;font-size:12px;display:inline-block}.button.tick.selected,button.tick.selected{background:var(--config-color-dark);color:var(--config-color-fade)}.button.round,button.round{width:52px;padding:0}.button.round.small,button.round.small{font-size:12px;width:30px;height:30px;line-height:30px}.button.white,button.white{background:#fff;color:var(--config-color-focus)}.button.white.reverse,button.white.reverse{color:#fff;background:0 0;border:solid 2px #fff}.button.trans,button.trans{background:0 0!important}.button.trans.reverse,button.trans.reverse{background:0 0!important}.button.success,button.success{background:var(--config-color-success)}.button.success.reverse,button.success.reverse{color:var(--config-color-success);background:#fff;border:solid 2px var(--config-color-success)}.button.danger,button.danger{background:var(--config-color-danger);color:#fff}.button.danger.reverse,button.danger.reverse{color:var(--config-color-danger);background:var(--config-color-background-fade);border:solid 2px var(--config-color-danger)}.button.dark,button.dark{background:var(--config-color-dark);color:var(--config-color-background-fade)}.button.dark.reverse,button.dark.reverse{color:var(--config-color-dark);background:var(--config-color-background-fade);border:solid 2px var(--config-color-dark)}.button .disabled,.button.disabled,.button:disabled,button .disabled,button.disabled,button:disabled{color:var(--config-color-normal);background:var(--config-color-background-dark);opacity:.6;cursor:default}.button.link,button.link{background:0 0;border-radius:0;color:var(--config-color-link);height:auto;line-height:normal;padding:0;padding-right:0!important}.button.link:focus,button.link:focus{box-shadow:inherit}.button.strip,button.strip{background:0 0;height:auto;line-height:16px;color:inherit;padding:0 5px}.button.facebook,button.facebook{color:#fff!important;background:#4070b4!important}.button.twitter,button.twitter{color:#fff!important;background:#56c2ea!important}.button.linkedin,button.linkedin{color:#fff!important;background:#0076b5!important}.button.github,button.github{color:#fff!important;background:#7e7c7c!important}.button:focus,button:focus{outline:0}label{margin-bottom:15px;display:block;line-height:normal}label.inline{display:inline}.input,input[type=date],input[type=datetime-local],input[type=email],input[type=file],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{-webkit-appearance:none;-moz-appearance:none;-webkit-transform:translateZ(0);box-sizing:content-box;color:#313131;height:40px;line-height:40px;border:solid 1px var(--config-color-fade-light);border-radius:10px;padding:5px 15px;font-size:16px;display:block;width:calc(100% - 32px);margin-bottom:30px}.input[type=file],input[type=date][type=file],input[type=datetime-local][type=file],input[type=email][type=file],input[type=file][type=file],input[type=number][type=file],input[type=password][type=file],input[type=search][type=file],input[type=tel][type=file],input[type=text][type=file],input[type=url][type=file],select[type=file],textarea[type=file]{line-height:0;padding:15px;height:auto}.input:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=file]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{outline:0;border-color:#b3d7fd}.input:disabled,input[type=date]:disabled,input[type=datetime-local]:disabled,input[type=email]:disabled,input[type=file]:disabled,input[type=number]:disabled,input[type=password]:disabled,input[type=search]:disabled,input[type=tel]:disabled,input[type=text]:disabled,input[type=url]:disabled,select:disabled,textarea:disabled{color:var(--config-color-normal);background:var(--config-color-fade-super);opacity:1!important}.input.strip,input[type=date].strip,input[type=datetime-local].strip,input[type=email].strip,input[type=file].strip,input[type=number].strip,input[type=password].strip,input[type=search].strip,input[type=tel].strip,input[type=text].strip,input[type=url].strip,select.strip,textarea.strip{border:none;border-radius:0;padding:5px 0;width:100%;background-color:transparent;background-position:right 2px top 50%;border-bottom:solid 1px var(--config-color-fade-light);color:var(--config-color-placeholder)}.input.strip:focus,input[type=date].strip:focus,input[type=datetime-local].strip:focus,input[type=email].strip:focus,input[type=file].strip:focus,input[type=number].strip:focus,input[type=password].strip:focus,input[type=search].strip:focus,input[type=tel].strip:focus,input[type=text].strip:focus,input[type=url].strip:focus,select.strip:focus,textarea.strip:focus{border-color:#b3d7fd}.input:-webkit-autofill::first-line,input[type=date]:-webkit-autofill::first-line,input[type=datetime-local]:-webkit-autofill::first-line,input[type=email]:-webkit-autofill::first-line,input[type=file]:-webkit-autofill::first-line,input[type=number]:-webkit-autofill::first-line,input[type=password]:-webkit-autofill::first-line,input[type=search]:-webkit-autofill::first-line,input[type=tel]:-webkit-autofill::first-line,input[type=text]:-webkit-autofill::first-line,input[type=url]:-webkit-autofill::first-line,select:-webkit-autofill::first-line,textarea:-webkit-autofill::first-line{font-weight:300;font-size:16px}input[type=email],input[type=url]{direction:ltr}input[type=email]::placeholder,input[type=url]::placeholder{text-align:left;direction:ltr}select{background:0 0;-webkit-appearance:none;background-image:var(--config-console-nav-switch-arrow);background-position:right 15px top 50%;background-repeat:no-repeat;background-color:var(--config-color-background-input);width:calc(100% - 62px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:45px}select:-webkit-autofill{background-image:url("data:image/svg+xml;utf8,")!important;background-position:100% 50%!important;background-repeat:no-repeat!important}input[type=search],input[type=search].strip{background:0 0;-webkit-appearance:none;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAdZJREFUWIXt1s2LjWEYBvDfnDMzFpNIamZIFrMiJYMyFmKhZKfOwoiFr2LFn2BByG6WVrKwMcjWxgoLIlKIUk6RrzAjZWZ8LO731FlwvB+PUbjq6X0X7/VeV/d9P9fz8IdRL8Hpw3x8w0xaOz9GNxq4gJeZcGs1cRab0fU7xLfgMSYzoT3YgNXYhIO4iM+4iTWphGs4jikcFSXvhEGczr4/UFW8C2N4jXUFudvwCYeqGNgnSr6yJH8rpkWLCqMfE9hdUryFE3iC3qLEk7ij+kT34Q32FiHV8Qr7K4q3cArXihCGxd5elMjARnzBvE4f1dreV+AtnicycC/7/7K8BhaIvqXCO3zFwrwGZtCT0EAtW9N5DTSxWGR/CizNns/yEgbFEK5NZGCnaEPHE7e9Ai9wA6OJDIzistgJubFdxHB/RfFVYgCHixJruI5x5dNwDm6J47sUhkTvjpUw0Y1zeOrXR3hHjOA9zmBuTs4Arog4/yhuUZWwHPdFMh7280BZgiP4ILJ/UuymqRQmejPxphiquzgvKnMJDzOxB9glZqiRiecykbfHdawX98EhcdxO4BGu4nYm2EJDzEKPSMIdYrBnFYUq8d/EP2di1gey3cS4ErflvxffASbhcakIINaMAAAAAElFTkSuQmCC);background-color:var(--config-color-background-input);background-position:left 15px top 50%;background-repeat:no-repeat;background-size:20px 20px;width:calc(100% - 60px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:45px}select[multiple]{min-height:75px;padding:5px 10px!important;padding-right:50px!important}select[multiple] option{padding:10px 4px;border-bottom:solid 1px #f1f1f1}select[multiple] option:last-child{border-bottom:none}textarea{min-height:75px;resize:vertical;line-height:32px;padding:5px 15px}textarea.tall{min-height:180px}fieldset{border:none;margin:0;padding:0}.counter{font-size:13px;text-align:right;color:var(--config-color-fade);margin-top:-20px;margin-bottom:20px}.file-preview{background:var(--config-color-background-input) url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAIElEQVQoU2NkYGAwZsAEZ9GFGIeIQix+wfQgyDODXSEAcUwGCrDSHgkAAAAASUVORK5CYII=)!important;border:solid 1px #e2e2e2;box-shadow:inset 0 0 3px #a0a0a0;border-radius:8px;width:calc(100% - 2px);max-height:180px;visibility:visible!important}.video-preview{padding-top:56%;position:relative;border-radius:10px;background:#e7e7e7;overflow:hidden;margin:0}.video-preview iframe{position:absolute;top:0;width:100%;height:100%;border:none}.map-preview{padding-top:50%;position:relative;margin-bottom:10px;border-radius:10px;background:#e7e7e7;overflow:hidden;box-shadow:0 0 30px rgba(218,218,218,.5)}.map-preview iframe{position:absolute;top:0;width:100%;height:100%;border:none}.tooltip{position:relative}.tooltip.large:hover:after{white-space:normal;width:280px}.tooltip.small:hover:after{white-space:normal;width:180px}.tooltip:hover:after{white-space:nowrap;background:var(--config-color-tooltip-background);border-radius:5px;bottom:26px;color:var(--config-color-tooltip-text);content:attr(data-tooltip);padding:5px 15px;position:absolute;font-size:13px;line-height:20px;z-index:98;left:20%;margin-left:-30px;word-break:break-word}.tooltip:hover:before{border:solid;border-color:var(--config-color-tooltip-background) transparent;border-width:6px 6px 0 6px;bottom:20px;content:"";position:absolute;z-index:99;left:5px}.tooltip.down:hover:after{top:26px;bottom:inherit}.tooltip.down:hover:before{top:20px;border-width:0 6px 6px 6px;bottom:inherit}.tag{display:inline-block;background:var(--config-color-fade-light);color:var(--config-color-fade);border-radius:12px;line-height:24px;padding:0 8px;font-size:12px;box-shadow:none!important;border:none;height:auto;width:auto;white-space:nowrap;text-overflow:ellipsis}.tag:hover{border:none}.tag.green{background:var(--config-color-success);color:#fff}.tag.red{background:var(--config-color-danger);color:#fff}.tag.yellow{background:#ffe28b;color:#494949}.tag.focus{background:var(--config-color-focus);color:#fff}.tag.dark{background:var(--config-color-dark);color:#e7e7e7}.tag.blue{background:var(--config-color-info);color:#fff}.tag.link{background:var(--config-color-link);color:#fff}input[type=checkbox],input[type=radio]{width:26px;height:16px;position:relative;-webkit-appearance:none;border-radius:0;border:none;background:0 0;vertical-align:middle;margin:0}input[type=checkbox]:after,input[type=radio]:after{content:"";display:block;width:20px;height:20px;background:var(--config-color-background-fade);top:-5px;border-radius:50%;position:absolute;border:solid 3px var(--config-color-focus);vertical-align:middle}input[type=checkbox]:checked:after,input[type=radio]:checked:after{text-align:center;font-family:fontello;content:'\e83d';font-size:16px;line-height:20px;color:var(--config-color-background-fade);background:var(--config-color-focus)}input[type=checkbox][type=radio]:checked:after,input[type=radio][type=radio]:checked:after{content:'';display:block;width:10px;height:10px;border-radius:50%;background:var(--config-color-background-fade);border:solid 8px var(--config-color-focus)}input[type=checkbox]:focus,input[type=radio]:focus{outline:0}input[type=checkbox]:focus:after,input[type=checkbox]:hover:after,input[type=radio]:focus:after,input[type=radio]:hover:after{outline:0;border-color:#000}input[type=checkbox]:checked:focus:after,input[type=checkbox]:checked:hover:after,input[type=radio]:checked:focus:after,input[type=radio]:checked:hover:after{border-color:var(--config-color-focus)}.input-copy{position:relative}.input-copy input,.input-copy textarea{padding-right:65px;width:calc(100% - 82px);resize:none}.input-copy .copy{position:absolute;top:0;right:0;border-left:solid 1px var(--config-color-fade-light);height:calc(100% - 2px);width:50px;line-height:50px;text-align:center;background:var(--config-color-background-focus);margin:1px;border-radius:0 10px 10px 0}.paging{color:var(--config-color-fade);padding:5px 15px;font-size:12px}.paging form{display:inline-block}.paging button:disabled{color:var(--config-color-background-fade);opacity:.6}.blue-snap iframe{-webkit-appearance:none;-moz-appearance:none;-webkit-transform:translateZ(0);box-sizing:content-box;color:#313131;height:40px;line-height:40px;border:solid 1px var(--config-color-fade-light);border-radius:10px;padding:5px 15px;font-size:16px;display:block;width:calc(100% - 32px);margin-bottom:30px;float:none!important;height:40px!important;width:calc(100% - 32px)!important;border:solid 1px #e2e2e2!important;background:0 0!important;position:static!important}.blue-snap iframe[type=file]{line-height:0;padding:15px;height:auto}.blue-snap iframe:focus{outline:0;border-color:#b3d7fd}.blue-snap iframe:disabled{color:var(--config-color-normal);background:var(--config-color-fade-super);opacity:1!important}.blue-snap iframe.strip{border:none;border-radius:0;padding:5px 0;width:100%;background-color:transparent;background-position:right 2px top 50%;border-bottom:solid 1px var(--config-color-fade-light);color:var(--config-color-placeholder)}.blue-snap iframe.strip:focus{border-color:#b3d7fd}.blue-snap iframe:-webkit-autofill::first-line{font-weight:300;font-size:16px}.blue-snap .error{font-size:12px;margin-top:-25px;color:var(--config-color-danger);height:40px;padding-left:2px}.pell{height:auto;padding-bottom:0;margin-bottom:0;padding-top:0;background:var(--config-color-background-input);line-height:normal!important;position:relative}.pell.hide{padding:0!important;height:1px;min-height:1px;max-height:1px;border:none;box-shadow:none;margin-bottom:20px;opacity:0}.pell [contenteditable=true]:empty:before{content:attr(placeholder);display:block;color:var(--config-color-placeholder)}.pell .pell-actionbar{border-bottom:solid 1px var(--config-color-fade-light);margin:0 -15px 15px -15px;padding:10px 15px;position:sticky;top:70px;background:var(--config-color-background-input);border-radius:10px 10px 0 0}.pell .pell-content{min-height:100px;display:block;padding:10px;margin:-10px;cursor:text}.pell .pell-content:focus{outline:0}.pell button{background:inherit;color:inherit;margin:0;padding:0;padding-right:15px;height:40px;line-height:40px;box-shadow:none;cursor:pointer;font-size:13px;border-radius:0}.pell button.pell-button-selected,.pell button:focus,.pell button:hover{color:var(--config-color-link)}.pell h1,.pell h2,.pell h3,.pell h4,.pell h5,.pell h6{text-align:inherit;margin-bottom:30px}.pell b,.pell strong{font-weight:700}.pell ol,.pell ul{margin:0 0 20px 0}.pell ol li,.pell ul li{display:list-item!important;list-style:inherit;list-style-position:inside!important;margin:0 20px 2px 20px}.pell ol li p,.pell ul li p{margin:0;display:inline}.pell ol li{list-style:decimal}.pell ol li::before{content:'';display:none}label.switch{line-height:42px}.switch,input[type=checkbox].button.switch,input[type=checkbox].switch{width:52px;height:32px;line-height:32px;border-radius:21px;background:var(--config-color-fade);display:inline-block;margin:0;padding:5px;padding-left:5px;padding-right:30px}.switch.on,.switch:checked,input[type=checkbox].button.switch.on,input[type=checkbox].button.switch:checked,input[type=checkbox].switch.on,input[type=checkbox].switch:checked{background-color:var(--config-color-success);padding-left:25px;padding-right:5px}.switch.on:focus,.switch.on:hover,.switch:checked:focus,.switch:checked:hover,input[type=checkbox].button.switch.on:focus,input[type=checkbox].button.switch.on:hover,input[type=checkbox].button.switch:checked:focus,input[type=checkbox].button.switch:checked:hover,input[type=checkbox].switch.on:focus,input[type=checkbox].switch.on:hover,input[type=checkbox].switch:checked:focus,input[type=checkbox].switch:checked:hover{background:var(--config-color-success)}.switch:focus,.switch:hover,input[type=checkbox].button.switch:focus,input[type=checkbox].button.switch:hover,input[type=checkbox].switch:focus,input[type=checkbox].switch:hover{background:var(--config-color-fade)}.switch:focus:after,.switch:hover:after,input[type=checkbox].button.switch:focus:after,input[type=checkbox].button.switch:hover:after,input[type=checkbox].switch:focus:after,input[type=checkbox].switch:hover:after{background:#fff}.switch:after,input[type=checkbox].button.switch:after,input[type=checkbox].switch:after{content:"";display:block;width:22px;height:22px;background:#fff;border-radius:50%;border:none;position:static;top:0}.password-meter{margin:-41px 10px 30px 10px;height:2px;background:0 0;max-width:100%;z-index:2;position:relative}.password-meter.weak{background:var(--config-color-danger)}.password-meter.medium{background:var(--config-color-success)}.password-meter.strong{background:var(--config-color-success)}.color-input:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.color-input .color-preview{width:53px;height:53px;float:left;margin-right:10px;background:#000;border-radius:10px;box-shadow:inset 0 0 3px #a0a0a0;position:relative}.color-input .color-preview input{opacity:0;position:absolute;top:0;bottom:0;left:0;right:0;width:100%;height:100%;cursor:pointer}.color-input input{text-transform:uppercase;float:left;width:calc(100% - 95px)}.grecaptcha-badge{box-shadow:none!important;border-radius:10px!important;overflow:hidden!important;background:#4d92df!important;bottom:25px}.grecaptcha-badge:hover{width:256px!important}.back{font-size:15px;line-height:24px;height:24px;margin-left:-15px;margin-top:-25px;margin-bottom:20px}.back span{font-weight:inherit!important}@media only screen and (max-width:550px){.back{margin-left:-5px}}hr{height:1px;background:var(--config-border-color)!important;border:none}hr.fade{opacity:.7}.upload{position:relative}.upload:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.upload input{position:absolute;top:0;left:0;opacity:0;cursor:pointer}.upload.single .preview{height:0;position:relative;padding-top:100%;width:100%;margin-bottom:15px!important}.upload.single .preview li{position:absolute;top:0;width:calc(100% - 20px);height:calc(100% - 20px);margin-right:0!important;margin-bottom:0!important}.upload .button{float:left;margin-right:10px!important}.upload .button.disabled,.upload .button.disabled:hover{background:0 0;color:inherit;border-color:inherit}.upload .count{float:left;line-height:52px}.upload .progress{background:var(--config-color-success);height:6px;border-radius:3px;margin-bottom:15px!important}.upload .preview:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.upload .preview li{float:left;margin-right:20px!important;margin-bottom:15px!important;background:var(--config-color-background-fade-super);width:150px;height:150px;line-height:148px;text-align:center;border-radius:20px;overflow:hidden;position:relative;cursor:pointer;border:solid 1px var(--config-color-background-dark)}.upload .preview li:hover:before{background:var(--config-color-focus)}.upload .preview li:before{content:'\e807';font-family:fontello;font-size:12px;position:absolute;width:20px;height:20px;display:block;top:8px;right:8px;text-align:center;line-height:20px;vertical-align:middle;border-radius:50%;background:#484848;color:#fff;z-index:1}.upload .preview li img{vertical-align:middle;max-height:150px;max-width:150px;-webkit-filter:drop-shadow(0 0 6px rgba(0, 0, 0, .3));filter:drop-shadow(0 0 1px rgba(0, 0, 0, .3))}.upload.wide .preview li{height:0;width:100%;position:relative;padding-top:30.547%;background:#e7e7e7;border-radius:10px;overflow:hidden;border:solid 1px #f9f9f9;margin:0}.upload.wide .preview li img{border-radius:10px;position:absolute;top:0;width:100%;display:block;opacity:1;max-width:inherit;max-height:inherit}ol{list-style:none;counter-reset:x-counter;padding:0}ol li{counter-increment:x-counter;line-height:30px;margin-bottom:30px;margin-left:45px}ol li::before{display:inline-block;content:counter(x-counter);color:var(--config-color-background-fade);background:var(--config-color-focus);border:solid 2px var(--config-color-focus);margin-right:15px;margin-left:-45px;width:26px;height:26px;border-radius:50%;text-align:center;line-height:26px}.required{color:var(--config-color-danger);font-size:8px;position:relative;top:-8px}.drop-list{position:relative;outline:0}.drop-list.open ul{display:block}.drop-list ul{position:relative;background:var(--config-color-background-fade);border-radius:10px;box-shadow:0 0 3px rgba(0,0,0,.05);padding:30px;display:block;border-bottom:none;box-shadow:0 0 6px rgba(0,0,0,.1);display:none;position:absolute;bottom:calc(100% + 10px);z-index:2;padding:0;left:-10px;max-width:280px;min-width:240px}.drop-list ul.padding-tiny{padding:5px}.drop-list ul.padding-xs{padding:10px}.drop-list ul.padding-small{padding:15px}.drop-list ul.y-scroll{overflow-y:auto}.drop-list ul.danger{background:var(--config-color-danger);color:#fff}.drop-list ul.danger .box{color:var(--config-color-normal);background:var(--config-color-background-fade)}.drop-list ul.danger>.button,.drop-list ul.danger>button{background:#fff;color:var(--config-color-danger)}.drop-list ul.note{background:var(--config-note-background)}.drop-list ul.focus{background:var(--config-color-focus);color:var(--config-color-background-fade)}.drop-list ul.focus .button,.drop-list ul.focus button{background:var(--config-color-background-fade);color:var(--config-color-focus)}.drop-list ul.line{background:0 0;border:solid 1px var(--config-color-background-dark);box-shadow:none}.drop-list ul.warning{background:var(--config-color-warning);color:#2d2d2d}.drop-list ul.warning .button,.drop-list ul.warning button{background:rgba(45,45,45,.8);color:var(--config-color-success)}.drop-list ul .tabs{border-bottom:solid 1px var(--config-border-color);margin:0 -30px;padding:0 30px!important}.drop-list ul>footer{margin:0 -30px -30px -30px;padding:15px 30px;background:var(--config-color-background-fade);border:solid 1px var(--config-border-color);border-radius:0 0 10px 10px}.drop-list ul hr{height:1px;background:var(--config-console-background);border:none;margin:30px -30px}.drop-list ul .label{position:absolute;top:10px;z-index:2;right:10px}.drop-list ul.fade-bottom{position:relative;overflow:hidden}.drop-list ul.fade-bottom:after{content:"";position:absolute;display:block;bottom:15px;width:100%;background:#000;background:linear-gradient(180deg,rgba(0,0,0,0) 0,var(--config-color-background-fade) 80%);height:100px;margin:0 -15px}.drop-list ul .header{position:static;height:40px;padding:20px 30px 20px 30px;margin-bottom:30px;margin:-30px -30px 20px -30px;background:var(--config-color-background-fade);border-bottom:solid 1px #efefef}.drop-list ul ul.numbers>li{position:relative;margin-left:30px;margin-right:50px}.drop-list ul ul.numbers>li hr{margin-left:-60px;margin-right:-80px}.drop-list ul ul.numbers>li .settings{position:absolute;top:3px;right:-50px}.drop-list ul ul.numbers>li::after{display:block;width:25px;height:25px;line-height:25px;font-size:13px;font-weight:500;border-radius:50%;background:var(--config-color-focus);color:var(--config-color-background);counter-increment:section;content:counter(section);text-align:center;position:absolute;top:3px;left:-45px}.drop-list ul .scroll{margin:0 -30px;overflow-y:scroll}.drop-list ul .scroll table{width:100%;margin:0}.drop-list ul ul.sortable{counter-reset:section}.drop-list ul ul.sortable>li [data-move-down].round,.drop-list ul ul.sortable>li [data-move-up].round,.drop-list ul ul.sortable>li [data-remove].round{background:var(--config-color-focus);color:var(--config-color-background-fade);width:25px;height:25px;line-height:25px;display:inline-block;text-align:center;padding:0;margin-right:5px}.drop-list ul ul.sortable>li [data-move-down].round:disabled,.drop-list ul ul.sortable>li [data-move-up].round:disabled,.drop-list ul ul.sortable>li [data-remove].round:disabled{display:none}.drop-list ul ul.sortable>li:first-child [data-move-up]{display:none}.drop-list ul ul.sortable>li:first-child [data-move-up]:disabled{display:inline-block;background:var(--config-color-background)}.drop-list ul ul.sortable>li:last-child [data-move-down]{display:none}.drop-list ul ul.sortable>li:last-child [data-move-down]:disabled{display:inline-block;background:var(--config-color-background)}.drop-list ul .toggle{position:relative;border-top:1px solid var(--config-console-background);border-bottom:1px solid var(--config-console-background);margin:0 -30px;padding:30px 30px 0 30px;height:65px;overflow:hidden}.drop-list ul .toggle.list{border-bottom:none}.drop-list ul .toggle.sorts button.ls-ui-open{width:calc(100% - 100px)}.drop-list ul .toggle button.ls-ui-open{right:0;position:absolute;top:0;width:100%;height:95px;background:0 0;opacity:.5;border-radius:0}.drop-list ul .toggle .icon-minus,.drop-list ul .toggle .icon-up-open{display:none}.drop-list ul .toggle .content{display:none}.drop-list ul .toggle.open{height:auto}.drop-list ul .toggle.open .icon-minus,.drop-list ul .toggle.open .icon-up-open{display:block}.drop-list ul .toggle.open .icon-down-open,.drop-list ul .toggle.open .icon-plus{display:none}.drop-list ul .toggle.open .content{display:block}.drop-list ul .list li{border-bottom:solid 2px var(--config-border-color);margin:0 -30px 30px -30px;padding:0 30px 30px 30px}.drop-list ul .list li:last-child{padding-bottom:0;margin-bottom:0;border-bottom:none}@media only screen and (max-width:550px){.drop-list ul .list li .actions{float:none}}.drop-list ul .list li .avatar{display:block}.drop-list ul .list li .avatar.inline{display:inline-block}.drop-list ul.new{text-align:center}.drop-list ul.new i{font-size:80px;line-height:80px;font-family:Poppins,sans-serif;font-style:normal;font-weight:300}.drop-list ul.new b{margin-top:20px;display:block}.drop-list ul .info{margin:0 -30px;padding:20px 30px;background:var(--config-modal-note-background);color:var(--config-modal-note-color);border-top:solid 1px var(--config-modal-note-border);border-bottom:solid 1px var(--config-modal-note-border)}.drop-list ul .info hr{background:var(--config-modal-note-border)!important}.drop-list ul .table-wrap{margin:0 -30px;overflow-y:scroll}.drop-list ul .table-wrap table{margin:0}.drop-list ul:before{border:solid;border-color:var(--config-color-background-fade) transparent;border-width:8px 8px 0 8px;bottom:-8px;content:"";position:absolute;z-index:99;left:30px}.drop-list ul.arrow-end:before{right:30px;left:unset}.drop-list ul li{border-bottom:solid 1px var(--config-color-fade-super);margin:0;padding:0}.drop-list ul li:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.drop-list ul li:first-child{border-radius:10px 10px 0 0}.drop-list ul li:last-child{border-radius:0 0 10px 10px}.drop-list ul li:hover{background:var(--config-color-fade-super)}.drop-list ul li:first-child:hover,.drop-list ul li:last-child:hover{border-color:transparent}.drop-list ul li .link,.drop-list ul li a,.drop-list ul li button.link{display:block;vertical-align:middle;height:auto;line-height:30px;display:inline-block;padding:10px 15px!important;color:inherit;font-size:14px;border:none;cursor:pointer;width:calc(100% - 30px);text-align:left;box-sizing:content-box}.drop-list ul li.disabled .link:hover,.drop-list ul li.disabled a:hover{background:0 0}.drop-list ul li .avatar{width:30px;height:30px;margin-right:10px;float:left}.drop-list ul li:last-child{border-bottom:none}.drop-list.bottom ul{bottom:auto;margin-top:-2px}.drop-list.bottom ul:before{bottom:auto;top:-8px;border-width:0 8px 8px 8px}.drop-list.end ul{right:-10px;left:auto}.disabled{opacity:.2;cursor:default}.disabled .button,.disabled .link,.disabled a,.disabled button{cursor:default!important}.disabled .button:hover,.disabled .link:hover,.disabled a:hover,.disabled button:hover{background:0 0}.tags{-webkit-appearance:none;-moz-appearance:none;-webkit-transform:translateZ(0);box-sizing:content-box;color:#313131;height:40px;line-height:40px;border:solid 1px var(--config-color-fade-light);border-radius:10px;padding:5px 15px;font-size:16px;display:block;width:calc(100% - 32px);margin-bottom:30px;background:var(--config-color-background-input);min-height:42px;height:auto;cursor:text}.tags[type=file]{line-height:0;padding:15px;height:auto}.tags:focus{outline:0;border-color:#b3d7fd}.tags:disabled{color:var(--config-color-normal);background:var(--config-color-fade-super);opacity:1!important}.tags.strip{border:none;border-radius:0;padding:5px 0;width:100%;background-color:transparent;background-position:right 2px top 50%;border-bottom:solid 1px var(--config-color-fade-light);color:var(--config-color-placeholder)}.tags.strip:focus{border-color:#b3d7fd}.tags:-webkit-autofill::first-line{font-weight:300;font-size:16px}.tags .add{display:inline-block!important;border:none;padding:0;width:auto;margin:0;max-width:100%;min-width:200px}.tags ul.tags-list{display:inline;white-space:pre-line}.tags ul.tags-list li{display:inline-block!important;margin-right:10px;font-size:16px;padding:5px 10px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tags ul.tags-list li::before{float:right;content:'\e807';font-family:fontello;font-style:normal;display:inline-block;text-align:center;line-height:16px;width:16px;height:16px;font-size:12px;background:#000;color:#fff;border-radius:50%;margin-top:4px;margin-bottom:4px;margin-left:6px;margin-right:0}.switch-theme{background:var(--config-switch-background);border-radius:19px;height:26px;width:44px;margin:9px 0}.switch-theme button{padding:3px;display:block;background:0 0;height:26px;width:100%}.switch-theme i{background:var(--config-color-background-fade);border-radius:50%;height:18px;width:18px;line-height:18px;font-size:12px;padding:0;margin:0;color:var(--config-color-fade)}.switch-theme i.force-light{float:right}.switch-theme i.force-dark{float:left}.dot{width:20px;height:20px;background:var(--config-color-fade);border-radius:50%;display:inline-block;vertical-align:middle;margin:0!important;padding:0!important}.dot.danger{background:var(--config-color-danger)!important}.dot.success{background:var(--config-color-success)!important}.dot.warning{background:var(--config-color-warning)!important}.dot.info{background:var(--config-color-info)!important}.console{width:100%;padding:0;overscroll-behavior:none}.console body{position:relative;width:calc(100% - 320px);padding-top:70px;padding-bottom:0;padding-right:50px;padding-left:270px;margin:0;color:var(--config-color-normal);background:var(--config-console-background)}.console body .project-only{display:none!important}.console body.show-nav .project-only{display:inline-block!important}.console body.hide-nav{padding-left:50px;width:calc(100% - 100px)}.console body.hide-nav header{width:calc(100% - 50px)}.console body.hide-nav header .logo{display:inline-block}.console body.hide-nav .console-back{display:block}.console body.hide-nav .console-index{display:none}.console body.hide-nav .account{display:none}.console body.index .console-back{display:none}.console body.index .console-index{display:block}.console body.index .account{display:block}.console body .console-index{display:block}.console body .console-back{display:none}.console main{min-height:480px}.console header{position:fixed;top:0;width:calc(100% - 280px);height:40px;line-height:40px;padding:15px 30px;background:var(--config-color-background-fade);box-shadow:0 0 2px rgba(0,0,0,.1);margin:0 -50px;z-index:2;font-size:14px}.console header .logo{display:none;border:none}.console header .logo:hover{border:none;opacity:.8}.console header .logo img{height:26px;margin:7px 0}.console header .setup-new{width:40px;height:40px;line-height:40px}.console header .list{width:240px}.console header .list select{height:40px;line-height:40px;padding-top:0;padding-bottom:0;border:none;border-radius:26px;background-color:var(--config-console-nav-switch-background);color:var(--config-console-nav-switch-color)}.console header .account{margin-left:25px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.console header .switch-theme{margin:2px 0}.console header .avatar{height:40px;width:40px}.console header .account-button{background:0 0;position:absolute;width:100%;height:40px;border-radius:0;z-index:1}.console header .notifications{position:relative;font-size:20px}.console header .notifications a{color:#1b3445}.console header .notifications:after{position:absolute;content:"";display:block;background:var(--config-color-danger);width:8px;height:8px;border-radius:50%;top:3px;right:3px}.console header nav{background:#1b3445;background:linear-gradient(var(--config-console-nav-start),var(--config-console-nav-end));color:#788c99;position:fixed;height:100%;width:220px;top:0;left:0}.console header nav .logo{height:39px;padding:15px 20px;display:block}.console header nav .logo img{display:inline-block;margin-top:7px;margin-bottom:14px}.console header nav .logo svg g{fill:var(--config-color-focus)}.console header nav .icon{display:block;border:none;margin:18px 10px 50px 10px}.console header nav .icon img{display:block}.console header nav .icon:hover{border-bottom:none}.console header nav .icon:hover svg g{fill:var(--config-color-focus)}.console header nav .container{overflow:auto;height:calc(100% - 133px);width:100%}.console header nav .project-box{padding:20px;text-align:center;display:block;border:none;line-height:100px;height:100px}.console header nav .project-box img{max-height:80px;max-width:80%;display:inline-block;vertical-align:middle}.console header nav .project{display:block;padding:85px 25px 20px 25px;color:#788c99;position:relative;border:none;height:20px}.console header nav .project:hover{border-bottom:none}.console header nav .project .name{height:20px;line-height:20px;margin:0;padding:0;display:inline-block;max-width:100%}.console header nav .project .arrow{display:block;position:absolute;right:5px;top:10px;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #788c99;transform:rotate(225deg)}.console header nav .project img{position:absolute;bottom:40px;display:block;margin-bottom:10px;max-height:35px;max-width:40%}.console header nav .subtitle{padding:0 30px;display:block;font-size:12px;font-weight:300}.console header nav .links{margin-bottom:15px!important}.console header nav .links.top{border:none;padding-bottom:0;margin-bottom:5px!important}.console header nav .links.bottom{position:absolute;bottom:0;left:0;right:0;padding-bottom:0;border:none;margin-bottom:0!important;box-shadow:0 0 10px rgba(0,0,0,.1)}.console header nav .links.bottom a{border-top:solid 1px var(--config-console-nav-border);border-bottom:none}.console header nav .links .sub{display:inline-block;border:none;width:25px;height:25px;line-height:25px;border-radius:50%;padding:0;background:var(--config-color-focus);color:#fff;text-align:center;font-size:12px;margin:18px}.console header nav .links .sub i{width:auto;margin:0}.console header nav .links .sub:hover{border:none}.console header nav .links a{padding:8px 20px;border:none;display:block;color:#87a5b9;font-weight:400;border-left:solid 5px transparent;font-size:13px}.console header nav .links a i{margin-right:8px;width:22px;display:inline-block}.console header nav .links a.selected,.console header nav .links a:hover{color:#e4e4e4}.console header nav:after{content:'';display:block;position:absolute;background:#302839;height:100px;width:100%;bottom:-100px}.console>footer{width:calc(100% + 100px);margin:0 -50px;box-sizing:border-box;background:0 0;padding-right:30px;padding-left:30px}.console>footer ul{float:none;text-align:center}.console>footer ul li{float:none;display:inline-block}.console .projects{position:relative}.console .projects:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.console .projects li{float:left;margin-right:50px;margin-bottom:50px;width:270px}.console .projects li:nth-child(3n){margin-right:0}.console .dashboard{padding:20px;overflow:hidden;position:relative;z-index:1;margin-bottom:2px}.console .dashboard .chart{width:80%}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.console .dashboard .chart{width:100%}}.console .dashboard hr{margin:20px -25px;height:2px;background:var(--config-console-background)}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.console .dashboard hr{height:3px}}.console .dashboard footer{margin:-20px;padding:20px;background:#fcfeff;border:none;color:var(--config-color-link)}.console .dashboard .col{position:relative}.console .dashboard .col:last-child:after{display:none}.console .dashboard .col:after{content:"";display:block;width:2px;background:var(--config-console-background);position:absolute;top:-20px;bottom:-20px;right:24px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.console .dashboard .col:after{width:calc(100% + 40px);height:3px;position:static;margin:20px -20px}}.console .dashboard .value{color:var(--config-color-focus);vertical-align:bottom;line-height:45px}.console .dashboard .value.small{line-height:35px}.console .dashboard .value .sum{font-size:45px;line-height:45px;font-weight:700;vertical-align:bottom}.console .dashboard .value .sum.small{font-size:25px;line-height:25px}.console .dashboard .unit{font-weight:500;line-height:20px;vertical-align:bottom;font-size:16px;display:inline-block;margin-bottom:5px;margin-left:5px;color:var(--config-color-focus)}.console .dashboard .metric{color:var(--config-color-focus);font-weight:400;font-size:13px;line-height:16px}.console .dashboard .range{color:var(--config-color-fade);font-weight:400;font-size:14px;line-height:16px}.console .dashboard a{display:block;font-weight:400;font-size:14px;line-height:16px;padding:0;border:none}.console .chart-metric{width:19%}@media only screen and (min-width:551px) and (max-width:1198px),only screen and (max-width:550px){.console .chart-metric{width:100%}}.console .chart{width:100%;position:relative;height:0;padding-top:20px;padding-bottom:26%;margin-right:-2px;overflow:hidden;background-color:var(--config-color-background-fade);background-image:linear-gradient(transparent 1px,transparent 1px),linear-gradient(90deg,transparent 1px,transparent 1px),linear-gradient(var(--config-border-color) 1px,transparent 1px),linear-gradient(90deg,var(--config-border-color) 1px,transparent 1px);background-size:100px 100px,100px 100px,20px 20px,20px 20px;background-position:-2px -2px,-2px -2px,-1px -1px,-1px -1px;background-repeat:round;border:solid 1px var(--config-border-color);border-right:solid 1px transparent;border-bottom:solid 1px transparent}@media only screen and (min-width:551px) and (max-width:1198px),only screen and (max-width:550px){.console .chart{width:100%;padding-bottom:32%;float:none;margin-bottom:20px}}.console .chart canvas{position:absolute;bottom:0;display:block;height:100%;width:100%}.console .chart-notes{font-size:12px}.console .chart-notes li{line-height:20px;display:inline-block;margin-right:15px}.console .chart-notes li::before{display:inline-block;content:'';width:14px;height:14px;background:var(--config-color-normal);border-radius:50%;margin-right:8px;vertical-align:middle}.console .chart-notes li.blue,.console .chart-notes li:nth-child(1){color:#29b5d9}.console .chart-notes li.blue::before,.console .chart-notes li:nth-child(1)::before{background:#29b5d9}.console .chart-notes li.green,.console .chart-notes li:nth-child(2){color:#4eb55b}.console .chart-notes li.green::before,.console .chart-notes li:nth-child(2)::before{background:#4eb55b}.console .chart-notes li.orange,.console .chart-notes li:nth-child(3){color:#ec9323}.console .chart-notes li.orange::before,.console .chart-notes li:nth-child(3)::before{background:#ec9323}.console .chart-notes li.red,.console .chart-notes li:nth-child(4){color:#dc3232}.console .chart-notes li.red::before,.console .chart-notes li:nth-child(4)::before{background:#dc3232}.console .community a{padding:0 10px;display:inline-block}.console .link-list li{margin-bottom:15px}.console .link-list i{display:inline-block;width:30px;height:30px;line-height:30px;text-align:center;background:var(--config-color-fade);color:var(--config-color-fade-super);border-radius:50%;margin-right:15px}.console .link-list i.fade{background:0 0;color:var(--config-color-fade)}.console .provider{width:50px;height:50px;background:#f5f5f5;color:#868686;line-height:50px;text-align:center;font-size:25px;border-radius:50%}.console .provider.facebook{color:#fff;background:#3b5998}.console .provider.twitter{color:#fff;background:#55beff}.console .provider.telegram{color:#fff;background:#3ba9e1}.console .provider.github{color:#fff;background:#24292e}.console .provider.whatsapp{color:#fff;background:#25d366}.console .provider.linkedin{color:#fff;background:#1074af}.console .provider.microsoft{color:#fff;background:#137ad4}.console .provider.google{color:#fff;background:#4489f1}.console .provider.bitbucket{color:#fff;background:#2a88fb}.console .provider.gitlab{color:#faa238;background:#30353e}.console .provider.instagram{color:#fff;background:radial-gradient(circle at 30% 107%,#fdf497 0,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)}.console .premium{z-index:3;margin-top:320px}.console .premium .message{height:190px;overflow:hidden;position:absolute;top:-280px}.console .premium:after{content:'';position:absolute;top:0;left:-20px;right:-20px;bottom:-20px;background:var(--config-color-background);opacity:.7;z-index:300}.console .app-section{height:90px}.console .confirm{background:var(--config-color-link);color:#fff;border-radius:25px;padding:12px;line-height:28px;text-align:center}.console .confirm .action{font-weight:500;cursor:pointer}.console .platforms{overflow:hidden}.console .platforms .box{overflow:hidden}.console .platforms .box img{width:50px;margin:0 auto;margin-bottom:20px}.console .platforms .box .cover{margin:-30px -30px 30px -30px;padding:30px}.console .platforms .box .cover.android{background:#a4ca24}.console .platforms .box .cover.android h1{color:#fff;font-size:18px;margin-top:20px}.console .platforms .col{text-align:center;line-height:30px}.console .platforms a{display:block;margin:-20px;padding:20px}.console .platforms a:hover{background:#fbfeff}.console .platforms img{display:block;margin:0 30px;width:calc(100% - 60px);border-radius:50%;margin-bottom:20px}.console .document-nav{display:none;position:sticky;top:90px}@media only screen and (min-width:1380px){.console .document-nav{display:block}}.console .document-nav ul{position:absolute;width:200px;left:-260px}.console .document-nav ul li{margin-bottom:20px}.console .document-nav ul li .selected{font-weight:500}.console .scroll-to{display:none}@media only screen and (min-width:1199px){.console .logo .top{display:none!important}}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.console>header{width:calc(100% - 30px)!important;margin:0 -30px;padding:15px}.console>header nav{width:100%;height:70px;overflow:hidden}.console>header nav.close{background:0 0}.console>header nav.close .logo .nav{display:none!important}.console>header nav.open{height:100%}.console>header nav.open .logo .top{display:none!important}.console>header nav.open .bottom{display:block!important}.console>header nav.open button{color:#87a5b9}.console>header nav button{margin:9px;background:0 0;color:var(--config-color-normal)}.console>header nav button:focus,.console>header nav button:hover{background:0 0}.console>header nav .logo{display:block!important;position:absolute;top:0;left:50%;margin:auto;transform:translateX(-50%)}.console>header nav .bottom{display:none!important}.console>footer{width:auto;margin:50px -30px 0 -30px!important;padding:0 30px 30px 30px}.console body{height:"calc(100% - 70px)"!important;width:calc(100% - 60px)!important;padding:70px 30px 0 30px!important}.console .cover{padding:25px 30px;margin:0 -30px}}@media only screen and (max-width:550px){.console body{height:"calc(100% - 70px)"!important;width:calc(100% - 40px)!important;padding:70px 20px 0 20px!important}.console .cover{padding:20px 20px;margin:0 -20px}.console>header{margin:0 -20px}.console>header .list{width:175px;font-size:14px}.console>footer{margin:50px -20px 0 -20px!important;padding:0 20px 20px 20px}}.dev-feature{display:none}.prod-feature{display:none}.development .dev-feature{display:block;opacity:.6!important;outline:solid #ff0 3px;outline-offset:3px}.development .dev-feature.dev-inline{display:inline-block}.development .prod-feature{display:none}.production .dev-feature{display:none}.production .prod-feature{display:block}.search{opacity:1!important}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.search button{margin-top:20px}}html.home body{padding:0 50px;color:var(--config-color-normal)}html.home .logo a{display:block}html.home .logo a:hover{opacity:.8}html.home .logo img{max-height:35px;width:198px;margin:45px auto 25px auto}html.home footer{background:0 0;text-align:center}html.home main{min-height:400px}.alerts ul{width:100%;visibility:hidden;position:fixed;padding:0;right:0;left:0;color:var(--config-color-normal);z-index:1001;margin:0 auto;bottom:15px;max-width:560px}.alerts ul li{margin:10px 0 0 0;padding:0}.alerts ul li div.message{position:relative;padding:12px 35px;margin:0 auto;list-style:none;background:var(--config-color-background-dark);text-align:center;font-size:14px;border-radius:10px;line-height:16px;min-height:16px;box-shadow:0 0 10px rgba(0,0,0,.05);opacity:.95}.alerts ul li div.message a,.alerts ul li div.message span{font-weight:600}.alerts ul li div.message a{border-bottom:dotted 1px var(--config-color-normal)}.alerts ul li div.message i{cursor:pointer;position:absolute;font-size:14px;line-height:20px;top:9px;left:9px;color:var(--config-color-background-dark);background:var(--config-color-normal);width:22px;height:22px;border-radius:50%}.alerts ul li div.message.error{color:#fff!important;background:var(--config-color-danger)!important}.alerts ul li div.message.error a{color:#fff!important;border-bottom:dotted 1px #fff!important}.alerts ul li div.message.error i{color:var(--config-color-danger);background:#fff}.alerts ul li div.message.success{color:#fff!important;background:var(--config-color-success)!important}.alerts ul li div.message.success a{color:#fff;border-bottom:dotted 1px #fff}.alerts ul li div.message.success i{color:var(--config-color-success);background:#fff}.alerts ul li div.message.warning{color:var(--config-color-normal)!important;background:var(--config-color-warning)!important}.alerts ul li div.message.warning a{color:var(--config-color-normal)!important;border-bottom:dotted 1px var(--config-color-normal)!important}.alerts ul li div.message.warning i{color:#fff;background:var(--config-color-normal)!important}.alerts ul li div.message.open{display:block}.alerts ul li div.message.close{display:none}.alerts .cookie-alert{background:var(--config-color-focus-fade)!important;color:var(--config-color-focus)}.alerts .cookie-alert a{color:var(--config-color-focus);font-weight:400;border-bottom:dotted 1px var(--config-color-focus)!important}.alerts .cookie-alert i{color:var(--config-color-focus-fade)!important;background:var(--config-color-focus)!important}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.alerts ul{top:auto;bottom:0;max-width:100%;left:0}.alerts ul li{margin:5px 0 0 0}.alerts ul li div.message{border-radius:0}}.show-nav .alerts ul{left:220px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.show-nav .alerts ul{left:0}}article{overflow-wrap:break-word;word-wrap:break-word}article h1{font-size:36px}article h2{font-size:24px}article h3{font-size:20px}article h4{font-size:20px}article h5{font-size:18px}article h6{font-size:16px}article h1,article h2,article h3,article h4,article h5,article h6{margin-top:30px!important;margin-bottom:30px!important}article p{line-height:32px;font-size:16px}article .update{display:block;margin-top:50px!important}article table{width:100%;margin:0;margin-bottom:30px!important;border-radius:0;border-bottom:solid 1px var(--config-border-color)}article table thead td{font-weight:500;padding:5px 15px}article table td,article table th{padding:15px;height:auto}article table td:first-child,article table th:first-child{padding-left:10px}article table td:last-child,article table th:last-child{padding-right:10px}article table td p,article table th p{font-size:inherit;line-height:inherit}article table td p:last-child,article table th p:last-child{margin:0}.avatar-container{position:relative}.avatar-container .corner{position:absolute;bottom:-3px;right:-3px}.avatar{width:60px;height:60px;border-radius:50%;background:var(--config-color-background-focus);display:inline-block;overflow:hidden;box-shadow:0 0 6px rgba(0,0,0,.09);position:relative;z-index:1;opacity:1!important}.avatar:before{content:"";position:absolute;width:100%;height:100%;z-index:0;background:var(--config-color-background-focus)}.avatar.inline{display:inline-block;vertical-align:middle}.avatar.trans{background:0 0}.avatar .no-shadow{box-shadow:none}.avatar.xs{width:30px;height:30px}.avatar.xxs{width:20px;height:20px}.avatar.small{width:50px;height:50px}.avatar.big{width:100px;height:100px}.avatar.huge{width:150px;height:150px}.box{position:relative;background:var(--config-color-background-fade);border-radius:10px;box-shadow:0 0 3px rgba(0,0,0,.05);padding:30px;display:block;border-bottom:none}.box.padding-tiny{padding:5px}.box.padding-xs{padding:10px}.box.padding-small{padding:15px}.box.y-scroll{overflow-y:auto}.box.danger{background:var(--config-color-danger);color:#fff}.box.danger .box{color:var(--config-color-normal);background:var(--config-color-background-fade)}.box.danger>.button,.box.danger>button{background:#fff;color:var(--config-color-danger)}.box.note{background:var(--config-note-background)}.box.focus{background:var(--config-color-focus);color:var(--config-color-background-fade)}.box.focus .button,.box.focus button{background:var(--config-color-background-fade);color:var(--config-color-focus)}.box.line{background:0 0;border:solid 1px var(--config-color-background-dark);box-shadow:none}.box.warning{background:var(--config-color-warning);color:#2d2d2d}.box.warning .button,.box.warning button{background:rgba(45,45,45,.8);color:var(--config-color-success)}.box .tabs{border-bottom:solid 1px var(--config-border-color);margin:0 -30px;padding:0 30px!important}.box>footer{margin:0 -30px -30px -30px;padding:15px 30px;background:var(--config-color-background-fade);border:solid 1px var(--config-border-color);border-radius:0 0 10px 10px}.box hr{height:1px;background:var(--config-console-background);border:none;margin:30px -30px}.box .label{position:absolute;top:10px;z-index:2;right:10px}.box.fade-bottom{position:relative;overflow:hidden}.box.fade-bottom:after{content:"";position:absolute;display:block;bottom:15px;width:100%;background:#000;background:linear-gradient(180deg,rgba(0,0,0,0) 0,var(--config-color-background-fade) 80%);height:100px;margin:0 -15px}.box .header{position:static;height:40px;padding:20px 30px 20px 30px;margin-bottom:30px;margin:-30px -30px 20px -30px;background:var(--config-color-background-fade);border-bottom:solid 1px #efefef}.box ul.numbers>li{position:relative;margin-left:30px;margin-right:50px}.box ul.numbers>li hr{margin-left:-60px;margin-right:-80px}.box ul.numbers>li .settings{position:absolute;top:3px;right:-50px}.box ul.numbers>li::after{display:block;width:25px;height:25px;line-height:25px;font-size:13px;font-weight:500;border-radius:50%;background:var(--config-color-focus);color:var(--config-color-background);counter-increment:section;content:counter(section);text-align:center;position:absolute;top:3px;left:-45px}.box .scroll{margin:0 -30px;overflow-y:scroll}.box .scroll table{width:100%;margin:0}.box ul.sortable{counter-reset:section}.box ul.sortable>li [data-move-down].round,.box ul.sortable>li [data-move-up].round,.box ul.sortable>li [data-remove].round{background:var(--config-color-focus);color:var(--config-color-background-fade);width:25px;height:25px;line-height:25px;display:inline-block;text-align:center;padding:0;margin-right:5px}.box ul.sortable>li [data-move-down].round:disabled,.box ul.sortable>li [data-move-up].round:disabled,.box ul.sortable>li [data-remove].round:disabled{display:none}.box ul.sortable>li:first-child [data-move-up]{display:none}.box ul.sortable>li:first-child [data-move-up]:disabled{display:inline-block;background:var(--config-color-background)}.box ul.sortable>li:last-child [data-move-down]{display:none}.box ul.sortable>li:last-child [data-move-down]:disabled{display:inline-block;background:var(--config-color-background)}.box .toggle{position:relative;border-top:1px solid var(--config-console-background);border-bottom:1px solid var(--config-console-background);margin:0 -30px;padding:30px 30px 0 30px;height:65px;overflow:hidden}.box .toggle.list{border-bottom:none}.box .toggle.sorts button.ls-ui-open{width:calc(100% - 100px)}.box .toggle button.ls-ui-open{right:0;position:absolute;top:0;width:100%;height:95px;background:0 0;opacity:.5;border-radius:0}.box .toggle .icon-minus,.box .toggle .icon-up-open{display:none}.box .toggle .content{display:none}.box .toggle.open{height:auto}.box .toggle.open .icon-minus,.box .toggle.open .icon-up-open{display:block}.box .toggle.open .icon-down-open,.box .toggle.open .icon-plus{display:none}.box .toggle.open .content{display:block}.box .list li{border-bottom:solid 2px var(--config-border-color);margin:0 -30px 30px -30px;padding:0 30px 30px 30px}.box .list li:last-child{padding-bottom:0;margin-bottom:0;border-bottom:none}@media only screen and (max-width:550px){.box .list li .actions{float:none}}.box .list li .avatar{display:block}.box .list li .avatar.inline{display:inline-block}.box.new{text-align:center}.box.new i{font-size:80px;line-height:80px;font-family:Poppins,sans-serif;font-style:normal;font-weight:300}.box.new b{margin-top:20px;display:block}.box .info{margin:0 -30px;padding:20px 30px;background:var(--config-modal-note-background);color:var(--config-modal-note-color);border-top:solid 1px var(--config-modal-note-border);border-bottom:solid 1px var(--config-modal-note-border)}.box .info hr{background:var(--config-modal-note-border)!important}.box .table-wrap{margin:0 -30px;overflow-y:scroll}.box .table-wrap table{margin:0}a.box{border-right:none;border-left:none}a.box:hover{box-shadow:0 0 1px rgba(0,0,0,.2);opacity:.7}.box-asidex{padding-right:25px!important;padding-left:70px;right:0;background:#f9f9f9;border-radius:0 10px 10px 0;height:calc(100% - 30px);position:absolute;padding-top:30px}.box-asidex:after{content:"";display:block;position:absolute;height:100%;width:51px;background:#fff;top:0;bottom:0;left:-6px}.cover{background:var(--config-color-focus-fade);padding:30px 50px;margin:0 -50px;position:relative;border-bottom:solid 1px var(--config-border-fade)}.cover .title,.cover h1,.cover h2,.cover h3,.cover h4{color:var(--config-color-focus);font-weight:600;margin-bottom:50px!important;font-size:28px;line-height:42px}.cover .title span,.cover h1 span,.cover h2 span,.cover h3 span,.cover h4 span{font-weight:600}.cover i:before{margin:0!important}.cover p{color:var(--config-color-fade)}.cover .button{color:#fff}.cover .link,.cover a{color:var(--config-color-focus);border-left:none;border-right:none;cursor:pointer}.cover .link:hover,.cover a:hover{border-bottom-color:var(--config-color-focus)}.console .database .row .col{height:452px}.console .database .row .col:after{width:2px;right:20px}.console .database hr{margin:0 -20px;background:var(--config-color-background);height:1px}.console .database h3{font-size:13px;line-height:20px;height:20px;background-color:var(--config-color-fade-super);margin:-20px -20px 0 -20px;padding:10px 20px;border-bottom:solid 1px var(--config-color-background);font-weight:600}.console .database .empty{height:162px;font-size:12px;text-align:center;margin:50px 0}.console .database .empty h4{font-size:13px;font-weight:600;line-height:120px}.console .database .search{background-color:var(--config-color-fade-super);margin:0 -20px 0 -20px;padding:10px 15px}.console .database .search input{height:40px;background-color:#fff;border-radius:25px;padding-top:0;padding-bottom:0}.console .database .code{height:411px;background:var(--config-color-fade-super);margin:0 -20px -20px -20px;padding:20px;width:calc(100% - 10px)}.console .database .code .ide{overflow:scroll;height:451px;margin:-20px;box-shadow:none;border-radius:0}.console .database .paging{background:var(--config-color-fade-super);margin:0 -20px -20px -20px;padding:20px}.console .database .button{margin:0 -20px;padding:0 20px!important;text-align:inherit;color:var(--config-color-focus);width:100%;font-size:15px;line-height:55px;box-sizing:content-box}.console .database .button i{margin-right:8px}.console .database .button:hover{border:none;background:var(--config-color-focus-fade)}.console .database .items{margin:0 -20px;height:262px;overflow-x:hidden;overflow-y:scroll}.console .database .items form{opacity:0;position:relative}.console .database .items form button{position:absolute;top:0;bottom:0;left:0;right:0;width:100%;height:45px;border-radius:0;cursor:pointer}.console .database .items li{padding:0;margin:0 0;line-height:45px;font-size:15px;padding-left:50px;padding-right:30px;position:relative}.console .database .items li i{position:absolute;display:none;right:10px}.console .database .items li .name{display:inline-block;width:100%;height:28px}.console .database .items li.selected,.console .database .items li:hover{background:#f5f5f5}.console .database .items li.selected i,.console .database .items li:hover i{display:block}.console .database .items li:last-child{border-bottom:none}body>footer{color:var(--config-color-fade);line-height:40px;margin:0 -50px;padding:12px 50px;font-size:13px;width:100%;background:#f1f1f1;position:relative;margin-top:80px!important}body>footer:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}body>footer .logo img{height:22px;padding-top:12px}body>footer a{color:var(--config-color-fade);font-size:13px}body>footer a:hover{border-bottom-color:var(--config-color-fade)}body>footer ul:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}body>footer ul li{font-size:13px;float:left;margin-right:20px!important}body>footer .copyright{padding-left:2px}[data-ls-if]{display:none}[data-service]{opacity:0}.load-service-start{opacity:0}.load-service-end{opacity:1;transition:opacity .5s ease-out;-moz-transition:opacity .5s ease-out;-webkit-transition:opacity .5s ease-out;-o-transition:opacity .5s ease-out}.load-screen{z-index:100000;position:fixed;height:100%;width:100%;background-color:var(--config-color-background-focus);top:0;left:0}.load-screen.loaded{transition:opacity 1s ease-in-out,top 1s .7s;opacity:0;top:-100%}.load-screen .animation{position:absolute;top:45%;left:50%;transform:translate(-50%,-50%) translateZ(1px);width:140px;height:140px}.load-screen .animation div{box-sizing:border-box;display:block;position:absolute;width:124px;height:124px;margin:10px;border:10px solid var(--config-color-focus);border-radius:50%;animation:animation 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:var(--config-color-focus) transparent transparent transparent}.load-screen .animation div:nth-child(1){animation-delay:-.45s}.load-screen .animation div:nth-child(2){animation-delay:-.3s}.load-screen .animation div:nth-child(3){animation-delay:-.15s}@keyframes animation{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.load-screen img{position:absolute;height:20px;bottom:60px;left:50%;transform:translate(-50%,-50%)}.modal-open .modal-bg,.modal-open body .modal-bg{position:fixed;content:'';display:block;width:100%;height:100%;left:0;right:0;top:0;bottom:0;background:#0c0c0c;opacity:.75;z-index:5}.modal{overflow:auto;display:none;position:fixed;transform:translate3d(0,0,0);width:100%;max-height:90%;max-width:640px;background:var(--config-color-background-fade);z-index:1000;box-shadow:0 0 4px rgba(0,0,0,.25);padding:30px;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:10px;box-sizing:border-box;text-align:left;white-space:initial;line-height:normal}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.modal{width:calc(100% - 20px)}}.modal.full{max-width:none;max-height:none;height:100%;border-radius:0;padding:80px 120px}.modal.full h1{font-weight:700}.modal.padding-tiny{padding:5px}.modal.padding-xs{padding:10px}.modal.padding-small{padding:15px}.modal.height-tiny>form{height:100px}.modal.height-small>form{height:220px}.modal.width-small{max-width:400px}.modal.width-medium{max-width:500px}.modal.width-large{max-width:800px}.modal.open{display:block}.modalbutton.close{display:none}.modal.fill{height:95%;max-height:95%;max-width:75%}.modal h1,.modal h2{margin-bottom:25px;margin-top:0;font-size:20px;text-align:left}.modal h1,.modal h2,.modal h3,.modal h4,.modal h5,.modal h6{color:inherit!important;line-height:35px}.modal .main,.modal>form{position:relative;border-top:solid 1px var(--config-border-color);padding:30px 30px 0 30px;margin:0 -30px}.modal .main.strip,.modal>form.strip{border:none;padding:0;margin:0}.modal .separator{margin:20px -30px}.modal .bullets{padding-left:40px}.modal .bullets li{margin-bottom:30px!important}.modal .bullets li:before{position:absolute}.modal .info{margin:0 -30px;padding:20px 30px;background:var(--config-modal-note-background);color:var(--config-modal-note-color);border-top:solid 1px var(--config-modal-note-border);border-bottom:solid 1px var(--config-modal-note-border)}.modal .ide.strech{box-shadow:none;border-radius:0;margin:0 -30px}.modal .ide pre{overflow:auto}.modal button.close{width:30px;height:30px;line-height:30px;padding:0;margin:0;background:var(--config-color-normal);color:var(--config-color-background-fade);border-radius:50%}.modal .paging form{padding:0;margin:0;border-top:none}.modal.sticky-footer form footer{margin:-30px}.modal.sticky-footer footer{position:sticky;bottom:-30px;background:var(--config-color-background-fade-super);height:50px;z-index:1;padding:30px;box-shadow:0 0 1px rgba(0,0,0,.15)}.modal.sticky-footer footer form{display:inline-block}[data-views-current="0"] .scroll-to,[data-views-current="1"] .scroll-to{opacity:0!important}.scroll-to-bottom .scroll-to,.scroll-to-top .scroll-to{opacity:1}.scroll-to{opacity:0;display:block;width:40px;height:40px;line-height:40px;border-radius:50%;position:fixed;transform:translateZ(0);margin:30px;padding:0;bottom:0;font-size:18px;z-index:100000;transition:opacity .15s ease-in-out;right:0}.phases{list-style:none;margin:0;padding:0;position:relative}.phases li{display:none}.phases li li{display:block}.phases li.selected{display:block}.phases .number{display:none}.phases h2,.phases h3,.phases h4,.phases h5,.phases h6{margin:0 0 30px 0;text-align:inherit}.container{position:relative}.container .tabs{height:55px;line-height:55px;list-style:none;padding:0;margin-bottom:50px!important;margin-top:-55px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.container .tabs:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.container .tabs .selected{font-weight:400;color:var(--config-color-focus);position:relative;opacity:1}.container .tabs .selected:after{content:"";display:block;height:2px;background:var(--config-color-focus);width:calc(100% + 6px);margin:0 -3px;position:absolute;bottom:0;border-radius:2px}.container .tabs .number{display:none}.container .tabs li{float:left;margin-right:50px;color:var(--config-color-focus);opacity:.9;cursor:pointer}.container .tabs li:focus{outline:0}@media only screen and (max-width:550px){.container .tabs li{margin-right:25px}}.container .icon{display:none}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.container .tabs{width:auto;overflow-x:scroll;overflow-y:hidden;white-space:nowrap}.container .tabs li{display:inline-block;float:none}}.ide{background-color:var(--config-prism-background);overflow:hidden;position:relative;z-index:1;box-shadow:0 2px 4px 0 rgba(50,50,93,.3);border-radius:10px;margin-bottom:30px}.ide *{font-family:'Source Code Pro',monospace}.ide[data-lang]::after{content:attr(data-lang-label);display:inline-block;background:#fff;color:#000;position:absolute;top:15px;padding:5px 10px;border-radius:15px;font-size:10px;right:10px;opacity:.95}.ide[data-lang=bash]::after{background:var(--config-language-bash);color:var(--config-language-bash-contrast)}.ide[data-lang=javascript]::after{background:var(--config-language-javascript);color:var(--config-language-javascript-contrast)}.ide[data-lang=web]::after{background:var(--config-language-web);color:var(--config-language-web-contrast)}.ide[data-lang=html]::after{background:var(--config-language-html);color:var(--config-language-html-contrast)}.ide[data-lang=php]::after{background:var(--config-language-php);color:var(--config-language-php-contrast)}.ide[data-lang=nodejs]::after{background:var(--config-language-nodejs);color:var(--config-language-nodejs-contrast)}.ide[data-lang=ruby]::after{background:var(--config-language-ruby);color:var(--config-language-ruby-contrast)}.ide[data-lang=python]::after{background:var(--config-language-python);color:var(--config-language-python-contrast)}.ide[data-lang=go]::after{background:var(--config-language-go);color:var(--config-language-go-contrast)}.ide[data-lang=dart]::after{background:var(--config-language-dart);color:var(--config-language-dart-contrast)}.ide[data-lang=flutter]::after{background:var(--config-language-flutter);color:var(--config-language-flutter-contrast)}.ide[data-lang=android]::after{background:var(--config-language-android);color:var(--config-language-android-contrast)}.ide[data-lang=kotlin]::after{background:var(--config-language-kotlin);color:var(--config-language-kotlin-contrast)}.ide[data-lang=java]::after{background:var(--config-language-java);color:var(--config-language-java-contrast)}.ide[data-lang=yaml]::after{background:var(--config-language-yaml);color:var(--config-language-yaml-contrast)}.ide .tag{color:inherit!important;background:0 0!important;padding:inherit!important;font-size:inherit!important;line-height:14px}.ide .copy{cursor:pointer;content:attr(data-lang);display:inline-block;background:#fff;color:#000;position:absolute;transform:translateX(-50%);bottom:-20px;padding:5px 10px;border-radius:15px;font-size:10px;font-style:normal;left:50%;opacity:0;transition:bottom .3s,opacity .3s;line-height:normal;font-family:Poppins,sans-serif}.ide .copy::before{padding-right:5px}.ide:hover .copy{transition:bottom .3s,opacity .3s;opacity:.9;bottom:16px}.ide pre{-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;color:#e6ebf1;font-weight:400;line-height:20px;font-size:13px;margin:0;padding:20px;padding-left:60px}.ide.light{box-shadow:0 2px 4px 0 rgba(50,50,93,.1);background-color:#fff}.ide.light pre{color:#414770}.ide.light .token.cdata,.ide.light .token.comment,.ide.light .token.doctype,.ide.light .token.prolog{color:#91a2b0}.ide.light .token.attr-name,.ide.light .token.builtin,.ide.light .token.char,.ide.light .token.inserted,.ide.light .token.selector,.ide.light .token.string{color:#149570}.ide.light .token.punctuation{color:#414770}.ide.light .language-css .token.string,.ide.light .style .token.string,.ide.light .token.entity,.ide.light .token.operator,.ide.light .token.url,.ide.light .token.variable{color:#414770}.ide.light .line-numbers .line-numbers-rows{background:#f2feef}.ide.light .line-numbers-rows>span:before{color:#5dc79e}.ide.light .token.keyword{color:#6772e4;font-weight:500}code[class*=language-],pre[class*=language-]{text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4}pre[class*=language-]{overflow:auto}:not(pre)>code[class*=language-]{padding:.1em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#6b7c93}.token.punctuation{color:#f8f8f2}.namespace{opacity:.7}.token.constant,.token.deleted,.token.property,.token.symbol,.token.tag{color:#f92672}.token.boolean,.token.number{color:#f79a59}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#3ecf8e}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.class-name,.token.function{color:#45b2e8}.token.keyword{color:#7795f8}.token.important,.token.regex{color:#fd971f}.token.italic{font-style:italic}.token.entity{cursor:help}pre[class*=language-].line-numbers{position:relative;padding-left:60px;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{background:var(--config-prism-numbers);position:absolute;pointer-events:none;top:-20px;bottom:-21px;padding:20px 0;font-size:100%;left:-60px;width:40px;letter-spacing:-1px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{padding-right:5px;pointer-events:none;display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#636365;display:block;padding-right:.8em;text-align:right}html{padding:0;margin:0;direction:ltr}body{margin:0;background:var(--config-console-background) no-repeat fixed;min-width:300px}ul{padding:0;margin:0}ul li{margin:0;list-style:none} \ No newline at end of file diff --git a/public/dist/styles/default-rtl.css b/public/dist/styles/default-rtl.css index daabf76a72..6ff91dea0c 100644 --- a/public/dist/styles/default-rtl.css +++ b/public/dist/styles/default-rtl.css @@ -1 +1 @@ -.pull-start{float:right}.pull-end{float:left}img[src=""]{visibility:hidden;display:inline-block}:root{--config-width:910px;--config-width-xxl:1000px;--config-width-xl:910px;--config-width-large:700px;--config-width-medium:550px;--config-width-small:320px;--config-color-link:#1e849e;--config-color-background:#eceff1;--config-color-background-dark:#dfe2e4;--config-color-background-fade:#ffffff;--config-color-background-fade-super:#fdfdfd;--config-color-background-focus:#f5f5f5;--config-color-background-input:#ffffff;--config-color-placeholder:#868686;--config-color-tooltip-text:#dce8f5;--config-color-tooltip-background:#333333;--config-color-focus:#f02e65;--config-color-focus-fade:#fef8fa;--config-color-focus-hover:#ff729b;--config-color-focus-glow:#fce5ec;--config-color-focus-dark:#c52653;--config-color-normal:#40404c;--config-color-dark:#313131;--config-color-fade:#8f8f8f;--config-color-fade-light:#e2e2e2;--config-color-fade-super:#f1f3f5;--config-color-danger:#f53d3d;--config-color-success:#1bbf61;--config-color-warning:#fffbdd;--config-color-info:#386fd2;--config-border-color:#f3f3f3;--config-border-fade:#e0e3e4;--config-border-radius:10px;--config-prism-background:#373738;--config-prism-numbers:#39393c;--config-note-background:#f1fbff;--config-note-border:#5bceff;--config-warning-background:#fdf7d9;--config-warning-border:#f8e380;--config-social-twitter:#1da1f2;--config-social-github:#000000;--config-social-discord:#7189dc;--config-social-facebook:#4070b4;--config-language-bash:#2b2626;--config-language-bash-contrast:#fff;--config-language-javascript:#fff054;--config-language-javascript-contrast:#333232;--config-language-web:#fff054;--config-language-web-contrast:#333232;--config-language-html:#ff895b;--config-language-html-contrast:#ffffff;--config-language-yaml:#ca3333;--config-language-yaml-contrast:#ffffff;--config-language-php:#6182bb;--config-language-php-contrast:#ffffff;--config-language-nodejs:#8cc500;--config-language-nodejs-contrast:#ffffff;--config-language-ruby:#fc3f48;--config-language-ruby-contrast:#ffffff;--config-language-python:#3873a2;--config-language-python-contrast:#ffffff;--config-language-go:#00add8;--config-language-go-contrast:#ffffff;--config-language-dart:#035698;--config-language-dart-contrast:#ffffff;--config-language-flutter:#035698;--config-language-flutter-contrast:#ffffff;--config-language-android:#a4c439;--config-language-android-contrast:#ffffff;--config-language-kotlin:#766DB2;--config-language-kotlin-contrast:#ffffff;--config-language-java:#0074bd;--config-language-java-contrast:#ffffff;--config-modal-note-background:#f5fbff;--config-modal-note-border:#eaf2f7;--config-modal-note-color:#3b5d73;--config-switch-background:#e2e2e2;--config-console-background:#eceff1;--config-console-nav-start:#143650;--config-console-nav-end:#302839;--config-console-nav-border:#2a253a;--config-console-nav-switch-background:#ececec;--config-console-nav-switch-color:#868686;--config-console-nav-switch-arrow:url("data:image/svg+xml;utf8,")}:root .theme-dark{--config-color-background:#061F2F;--config-color-background-dark:#262d50;--config-color-background-fade:#1c223a;--config-color-background-fade-super:#1a1f35;--config-color-background-focus:#1a1f35;--config-color-background-input:#dce8f5;--config-color-tooltip-text:#061F2F;--config-color-tooltip-background:#dce8f5;--config-color-link:#4caedb;--config-color-placeholder:#9ea1af;--config-color-focus:#c7d8eb;--config-color-focus-fade:#1e233e;--config-color-focus-hover:#d3deea;--config-color-focus-glow:#d3deea;--config-color-focus-dark:#657586;--config-color-normal:#c7d8eb;--config-color-dark:#c7d8eb;--config-color-fade:#bec3e0;--config-color-fade-light:#181818;--config-color-fade-super:#262D50;--config-color-danger:#d84a4a;--config-color-success:#34b86d;--config-color-warning:#e0d56d;--config-color-info:#386fd2;--config-border-color:#262D50;--config-border-fade:#19203a;--config-prism-background:#1F253F;--config-prism-numbers:#1F253F;--config-note-background:#171e33;--config-note-border:#262D50;--config-warning-background:#1F253F;--config-warning-border:#262D50;--config-social-twitter:var(--config-color-normal);--config-social-github:var(--config-color-normal);--config-social-discord:var(--config-color-normal);--config-social-facebook:var(--config-color-normal);--config-language-bash:var(--config-color-normal);--config-language-bash-contrast:var(--config-color-background);--config-language-javascript:var(--config-color-normal);--config-language-javascript-contrast:var(--config-color-background);--config-language-web:var(--config-color-normal);--config-language-web-contrast:var(--config-color-background);--config-language-yaml:var(--config-color-normal);--config-language-yaml-contrast:var(--config-color-background);--config-language-html:var(--config-color-normal);--config-language-html-contrast:var(--config-color-background);--config-language-php:var(--config-color-normal);--config-language-php-contrast:var(--config-color-background);--config-language-nodejs:var(--config-color-normal);--config-language-nodejs-contrast:var(--config-color-background);--config-language-ruby:var(--config-color-normal);--config-language-ruby-contrast:var(--config-color-background);--config-language-python:var(--config-color-normal);--config-language-python-contrast:var(--config-color-background);--config-language-go:var(--config-color-normal);--config-language-go-contrast:var(--config-color-background);--config-language-dart:var(--config-color-normal);--config-language-dart-contrast:var(--config-color-background);--config-language-flutter:var(--config-color-normal);--config-language-flutter-contrast:var(--config-color-background);--config-modal-note-background:#15192b;--config-modal-note-border:#161b31;--config-modal-note-color:var(--config-color-normal);--config-switch-background:var(--config-color-normal);--config-console-background:#20263f;--config-console-nav-start:#1c2139;--config-console-nav-end:#151929;--config-console-nav-border:#171b30;--config-console-nav-switch-background:var(--config-color-focus);--config-console-nav-switch-color:var(--config-color-background);--config-console-nav-switch-arrow:url("data:image/svg+xml;utf8,")}.theme-light .force-light{display:block!important}.theme-dark .force-dark{display:block!important}.force-dark{display:none!important}.force-light{display:none!important}@font-face{font-family:Poppins;font-style:normal;font-weight:100;src:url(/fonts/poppins-v9-latin-100.eot);src:local('Poppins Thin'),local('Poppins-Thin'),url(/fonts/poppins-v9-latin-100.eot?#iefix) format('embedded-opentype'),url(/fonts/poppins-v9-latin-100.woff2) format('woff2'),url(/fonts/poppins-v9-latin-100.woff) format('woff'),url(/fonts/poppins-v9-latin-100.ttf) format('truetype'),url(/fonts/poppins-v9-latin-100.svg#Poppins) format('svg')}@font-face{font-family:Poppins;font-style:normal;font-weight:300;src:url(/fonts/poppins-v9-latin-300.eot);src:local('Poppins Light'),local('Poppins-Light'),url(/fonts/poppins-v9-latin-300.eot?#iefix) format('embedded-opentype'),url(/fonts/poppins-v9-latin-300.woff2) format('woff2'),url(/fonts/poppins-v9-latin-300.woff) format('woff'),url(/fonts/poppins-v9-latin-300.ttf) format('truetype'),url(/fonts/poppins-v9-latin-300.svg#Poppins) format('svg')}@font-face{font-family:Poppins;font-style:normal;font-weight:400;src:url(/fonts/poppins-v9-latin-regular.eot);src:local('Poppins Regular'),local('Poppins-Regular'),url(/fonts/poppins-v9-latin-regular.eot?#iefix) format('embedded-opentype'),url(/fonts/poppins-v9-latin-regular.woff2) format('woff2'),url(/fonts/poppins-v9-latin-regular.woff) format('woff'),url(/fonts/poppins-v9-latin-regular.ttf) format('truetype'),url(/fonts/poppins-v9-latin-regular.svg#Poppins) format('svg')}@font-face{font-family:Poppins;font-style:normal;font-weight:500;src:url(/fonts/poppins-v9-latin-500.eot);src:local('Poppins Medium'),local('Poppins-Medium'),url(/fonts/poppins-v9-latin-500.eot?#iefix) format('embedded-opentype'),url(/fonts/poppins-v9-latin-500.woff2) format('woff2'),url(/fonts/poppins-v9-latin-500.woff) format('woff'),url(/fonts/poppins-v9-latin-500.ttf) format('truetype'),url(/fonts/poppins-v9-latin-500.svg#Poppins) format('svg')}@font-face{font-family:Poppins;font-style:normal;font-weight:600;src:url(/fonts/poppins-v9-latin-600.eot);src:local('Poppins SemiBold'),local('Poppins-SemiBold'),url(/fonts/poppins-v9-latin-600.eot?#iefix) format('embedded-opentype'),url(/fonts/poppins-v9-latin-600.woff2) format('woff2'),url(/fonts/poppins-v9-latin-600.woff) format('woff'),url(/fonts/poppins-v9-latin-600.ttf) format('truetype'),url(/fonts/poppins-v9-latin-600.svg#Poppins) format('svg')}@font-face{font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url(/fonts/source-code-pro-v11-latin-regular.eot);src:local('Source Code Pro Regular'),local('SourceCodePro-Regular'),url(/fonts/source-code-pro-v11-latin-regular.eot?#iefix) format('embedded-opentype'),url(/fonts/source-code-pro-v11-latin-regular.woff2) format('woff2'),url(/fonts/source-code-pro-v11-latin-regular.woff) format('woff'),url(/fonts/source-code-pro-v11-latin-regular.ttf) format('truetype'),url(/fonts/source-code-pro-v11-latin-regular.svg#SourceCodePro) format('svg')}.padding{padding:30px}.padding-top{padding-top:30px!important}.padding-top-large{padding-top:50px!important}.padding-top-xl{padding-top:80px!important}.padding-bottom{padding-bottom:30px!important}.padding-bottom-large{padding-bottom:50px!important}.padding-bottom-xl{padding-bottom:80px!important}.margin-end{margin-left:20px!important}.margin-start{margin-right:20px!important}.margin-end-small{margin-left:10px!important}.margin-start-small{margin-right:10px!important}.margin-end-large{margin-left:50px!important}.margin-start-large{margin-right:50px!important}.margin-end-no{margin-left:0!important}.margin-start-no{margin-right:0!important}.margin-end-negative{margin-left:-30px!important}.margin-start-negative{margin-right:-30px!important}.margin-end-negative-small{margin-left:-15px!important}.margin-start-negative-small{margin-right:-15px!important}.margin-end-negative-tiny{margin-left:-5px!important}.margin-start-negative-tiny{margin-right:-5px!important}.margin-top{margin-top:30px!important}.margin-bottom{margin-bottom:30px!important}.margin-top-no{margin-top:0!important}.margin-bottom-no{margin-bottom:0!important}.margin-top-xxl{margin-top:140px!important}.margin-top-xl{margin-top:80px!important}.margin-top-large{margin-top:50px!important}.margin-top-small{margin-top:15px!important}.margin-top-tiny{margin-top:5px!important}.margin-top-negative{margin-top:-30px!important}.margin-top-negative-tiny{margin-top:-5px!important}.margin-top-negative-small{margin-top:-15px!important}.margin-top-negative-large{margin-top:-50px!important}.margin-top-negative-xl{margin-top:-80px!important}.margin-top-negative-xxl{margin-top:-100px!important}.margin-top-negative-xxxl{margin-top:-150px!important}.margin-bottom-xxl{margin-bottom:140px!important}.margin-bottom-xl{margin-bottom:80px!important}.margin-bottom-large{margin-bottom:50px!important}.margin-bottom-small{margin-bottom:15px!important}.margin-bottom-tiny{margin-bottom:5px!important}.margin-bottom-negative{margin-bottom:-30px!important}.margin-bottom-negative-tiny{margin-bottom:-5px!important}.margin-bottom-negative-small{margin-bottom:-15px!important}.margin-bottom-negative-large{margin-bottom:-50px!important}.margin-bottom-negative-xl{margin-bottom:-80px!important}.margin-bottom-negative-xl{margin-bottom:-100px!important}.force-left,.ide{direction:ltr;text-align:left}.force-right{direction:rtl;text-align:right}.pull-left{float:left}.pull-right{float:right}.ratio-wide{height:0;overflow:hidden;padding-top:56%;position:relative;width:100%}.ratio-wide>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-square{height:0;overflow:hidden;padding-top:56%;position:relative;width:100%}.ratio-square>*{position:absolute;top:0;left:0;width:100%;height:100%}.clear:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.phones-only{display:none}@media only screen and (max-width:550px){.phones-only{display:inherit!important}}.tablets-only{display:none}@media only screen and (min-width:551px) and (max-width:1198px){.tablets-only{display:inherit!important}}.desktops-only{display:none}@media only screen and (min-width:1199px){.desktops-only{display:inherit!important}}.phones-only-inline{display:none}@media only screen and (max-width:550px){.phones-only-inline{display:inline-block!important}}.tablets-only-inline{display:none}@media only screen and (min-width:551px) and (max-width:1198px){.tablets-only-inline{display:inline-block!important}}.desktops-only-inline{display:none}@media only screen and (min-width:1199px){.desktops-only-inline{display:inline-block!important}}*{font-family:Poppins,sans-serif;-webkit-font-smoothing:antialiased;font-weight:300}h1,h2,h3,h4,h5,h6{margin:0}h4,h5,h6{font-weight:400}.link,a{color:var(--config-color-link);text-decoration:none;border-left:2px solid transparent;border-right:2px solid transparent;transition:.2s;cursor:pointer}.link.disabled,a.disabled{opacity:.5}.link.tag:hover,a.tag:hover{opacity:.9}.link.danger,a.danger{color:var(--config-color-danger)}.link.link-animation-enabled,a.link-animation-enabled{display:inline-block}.link.link-animation-enabled:hover,a.link-animation-enabled:hover{transform:translateY(-2px)}.link-return-animation--start>i{display:inline-block;transition:.2s}.link-return-animation--start:hover>i{transform:translateX(2px)}.link-return-animation--end>i{display:inline-block;transition:.2s}.link-return-animation--end:hover>i{transform:translateX(-2px)}b,strong{font-weight:500}p{margin:0 0 20px 0;line-height:26px}small{font-size:16px;color:var(--config-color-fade)}.text-size-small{font-size:13px}.text-size-xs{font-size:10px}.text-size-normal{font-size:16px}.text-height-large{height:30px;line-height:30px}.text-height-small{line-height:13px}.text-one-liner{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.text-bold{font-weight:400!important}.text-bold-large{font-weight:500!important}.text-bold-xl{font-weight:600!important}.text-danger{color:var(--config-color-danger)!important}.text-success{color:var(--config-color-success)!important}.text-upper{text-transform:uppercase}.text-warning{color:var(--config-color-warning)}.text-focus{color:var(--config-color-focus)}.text-fade{color:var(--config-color-fade)}.text-green{color:var(--config-color-success)}.text-red{color:var(--config-color-danger)}.text-info{color:var(--config-color-info)}.text-yellow{color:#ffe28b}.text-disclaimer{font-size:11px;color:var(--config-color-fade)}.text-fade-extra{color:var(--config-color-fade);opacity:.5}.text-line-high-large{line-height:30px}.text-line-high-xl{line-height:40px}.text-sign{margin:5px 0;font-size:25px;width:25px;height:25px;line-height:25px;display:inline-block}.text-align-center{text-align:center}.text-align-start{text-align:right}.text-align-end{text-align:left}.text-align-left{text-align:left}.text-align-right{text-align:right}.text-dir-ltr{direction:ltr;display:inline-block}.text-dir-rtl{direction:rtl;display:inline-block}.icon-dot-3:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-o-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}i[class*=' icon-']:before,i[class^=icon-]:before{display:inline;line-height:unset}table{width:calc(100% + 60px);border-collapse:collapse;margin:-30px;border-radius:10px;overflow:hidden;position:relative;table-layout:fixed}table.y-scroll{overflow-y:auto}table thead{box-shadow:0 0 2px rgba(0,0,0,.25);border-bottom:solid 1px var(--config-color-fade-super);font-size:14px}table.small{font-size:14px}table.open-end tbody tr:last-child{border-bottom:none;font-weight:700;background:#f7fbf7}table.full tbody td,table.full tbody th{vertical-align:top;white-space:normal;overflow:auto;line-height:24px;padding-top:20px;padding-bottom:20px;height:auto}table .avatar{width:30px;height:30px}table tr{border-bottom:solid 1px var(--config-color-fade-super)}table tr:last-child{border-bottom:none}table tr:nth-child(even){background:var(--config-color-background-fade-super)}table tr.selected{background:var(--config-note-background)}table tr.selected td,table tr.selected td span{font-weight:500}table th{text-align:right;font-weight:400}table th i{color:var(--config-color-fade);font-size:10px;display:inline-block;vertical-align:top;line-height:16px;padding:0 3px}table td,table th{height:65px;padding:0 15px;line-height:50px}table td:first-child,table th:first-child{padding-right:30px}table td:last-child,table th:last-child{padding-left:30px}table td,table th{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){table.vertical{border-top:solid 1px var(--config-color-fade-super);display:block;overflow:hidden;padding-top:12px}table.vertical .hide{display:none}table.vertical tbody,table.vertical td,table.vertical th,table.vertical thead,table.vertical tr{width:100%;display:block}table.vertical th,table.vertical tr{padding-top:12px;padding-bottom:12px}table.vertical th:first-child,table.vertical tr:first-child{padding-top:0}table.vertical td,table.vertical th{padding:5px 20px!important;text-overflow:ellipsis;white-space:normal;height:40px;line-height:40px;width:calc(100% - 40px)}table.vertical td:first-child,table.vertical td:last-child,table.vertical th:first-child,table.vertical th:last-child{padding:0 10px}table.vertical td:last-child,table.vertical th:last-child{padding-bottom:0}table.vertical td p,table.vertical th p{display:inline-block;width:calc(100% - 40px)}table.vertical td:not([data-title=""]):before{content:attr(data-title);margin-right:4px;font-weight:400}table.vertical thead{display:none}}.zone{max-width:var(--config-width-xl);margin:0 auto 40px auto}.zone.xxxl{max-width:calc(1400px - 100px)}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.zone.xxxl{max-width:100%}}.zone.xxl{max-width:var(--config-width-xxl)}.zone.xl{max-width:var(--config-width-xl)}.zone.large{max-width:var(--config-width-large)}.zone.medium{max-width:var(--config-width-medium)}.zone.small{max-width:var(--config-width-small)}.row{position:relative;margin:0 -50px;padding-right:50px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.row{margin:0 -30px;padding-right:30px}}.row.force-ltr>.col{float:left}.row.force-rtl>.col{float:right}.row.force-reverse>.col{float:left}.row.wide{margin:0 -100px;padding-right:100px}.row.wide>.span-1{width:calc(8.33333333% * 1 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-2{width:calc(8.33333333% * 2 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-3{width:calc(8.33333333% * 3 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-4{width:calc(8.33333333% * 4 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-5{width:calc(8.33333333% * 5 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-6{width:calc(8.33333333% * 6 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-7{width:calc(8.33333333% * 7 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-8{width:calc(8.33333333% * 8 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-9{width:calc(8.33333333% * 9 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-10{width:calc(8.33333333% * 10 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-11{width:calc(8.33333333% * 11 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-12{width:calc(8.33333333% * 12 - 100px);box-sizing:content-box;padding-left:100px}.row.thin{margin:0 -20px;padding-right:20px}.row.thin>.span-1{width:calc(8.33333333% * 1 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-2{width:calc(8.33333333% * 2 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-3{width:calc(8.33333333% * 3 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-4{width:calc(8.33333333% * 4 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-5{width:calc(8.33333333% * 5 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-6{width:calc(8.33333333% * 6 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-7{width:calc(8.33333333% * 7 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-8{width:calc(8.33333333% * 8 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-9{width:calc(8.33333333% * 9 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-10{width:calc(8.33333333% * 10 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-11{width:calc(8.33333333% * 11 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-12{width:calc(8.33333333% * 12 - 20px);box-sizing:content-box;padding-left:20px}.row.modalize{margin:0 -30px;padding-right:30px}.row.modalize>.span-1{width:calc(8.33333333% * 1 - 30px);box-sizing:content-box;padding-left:30px}.row.modalize>.span-2{width:calc(8.33333333% * 2 - 30px);box-sizing:content-box;padding-left:30px}.row.modalize>.span-3{width:calc(8.33333333% * 3 - 30px);box-sizing:content-box;padding-left:30px}.row.modalize>.span-4{width:calc(8.33333333% * 4 - 30px);box-sizing:content-box;padding-left:30px}.row.modalize>.span-5{width:calc(8.33333333% * 5 - 30px);box-sizing:content-box;padding-left:30px}.row.modalize>.span-6{width:calc(8.33333333% * 6 - 30px);box-sizing:content-box;padding-left:30px}.row.modalize>.span-7{width:calc(8.33333333% * 7 - 30px);box-sizing:content-box;padding-left:30px}.row.modalize>.span-8{width:calc(8.33333333% * 8 - 30px);box-sizing:content-box;padding-left:30px}.row.modalize>.span-9{width:calc(8.33333333% * 9 - 30px);box-sizing:content-box;padding-left:30px}.row.modalize>.span-10{width:calc(8.33333333% * 10 - 30px);box-sizing:content-box;padding-left:30px}.row.modalize>.span-11{width:calc(8.33333333% * 11 - 30px);box-sizing:content-box;padding-left:30px}.row.modalize>.span-12{width:calc(8.33333333% * 12 - 30px);box-sizing:content-box;padding-left:30px}.row:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.row .col{float:right;box-sizing:border-box}.row .col.sticky-top{position:sticky;top:90px}.row .col.sticky-bottom{position:sticky;bottom:0}.row .span-1{width:calc(8.33333333% * 1 - 40px);box-sizing:content-box;padding-left:40px}.row .span-2{width:calc(8.33333333% * 2 - 40px);box-sizing:content-box;padding-left:40px}.row .span-3{width:calc(8.33333333% * 3 - 40px);box-sizing:content-box;padding-left:40px}.row .span-4{width:calc(8.33333333% * 4 - 40px);box-sizing:content-box;padding-left:40px}.row .span-5{width:calc(8.33333333% * 5 - 40px);box-sizing:content-box;padding-left:40px}.row .span-6{width:calc(8.33333333% * 6 - 40px);box-sizing:content-box;padding-left:40px}.row .span-7{width:calc(8.33333333% * 7 - 40px);box-sizing:content-box;padding-left:40px}.row .span-8{width:calc(8.33333333% * 8 - 40px);box-sizing:content-box;padding-left:40px}.row .span-9{width:calc(8.33333333% * 9 - 40px);box-sizing:content-box;padding-left:40px}.row .span-10{width:calc(8.33333333% * 10 - 40px);box-sizing:content-box;padding-left:40px}.row .span-11{width:calc(8.33333333% * 11 - 40px);box-sizing:content-box;padding-left:40px}.row .span-12{width:calc(8.33333333% * 12 - 40px);box-sizing:content-box;padding-left:40px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.row.responsive{width:100%;padding:0;margin:0}.row.responsive>.span-1,.row.responsive>.span-10,.row.responsive>.span-11,.row.responsive>.span-12,.row.responsive>.span-2,.row.responsive>.span-3,.row.responsive>.span-4,.row.responsive>.span-5,.row.responsive>.span-6,.row.responsive>.span-7,.row.responsive>.span-8,.row.responsive>.span-9{width:calc(8.33333333% * 12 - 0px)!important;box-sizing:content-box!important;padding-left:0!important;width:100%!important}}.tiles{position:relative}.tiles:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.tiles>*{margin-left:50px!important;float:right;width:calc(33.3333% - 33.3333px)}.tiles>* .photo-title{width:calc(100% + 30px);height:15px;margin:-15px -15px 10px -15px;border-radius:10px 10px 0 0;background:var(--config-color-fade-super);border-bottom:solid 1px var(--config-color-fade-super)}.tiles>:nth-child(3n){margin-left:0!important}@media only screen and (min-width:551px) and (max-width:1198px){.tiles>li{width:calc(50% - 25px)}.tiles>li:nth-child(3n){margin-left:50px!important}.tiles>li:nth-child(2n){margin-left:0!important}}@media only screen and (max-width:550px){.tiles>li{width:100%;margin-left:0!important}}@font-face{font-family:fontello;src:url(data:application/octet-stream;base64,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) format('woff'),url(data:application/octet-stream;base64,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AADoMAAA6DAAAAAxAADoMQAA6DEAAAAyAADoMgAA6DIAAAAzAADoMwAA6DMAAAA0AADoNAAA6DQAAAA1AADoNQAA6DUAAAA2AADoNgAA6DYAAAA3AADoNwAA6DcAAAA4AADoOAAA6DgAAAA5AADoOQAA6DkAAAA6AADoOgAA6DoAAAA7AADoOwAA6DsAAAA8AADoPAAA6DwAAAA9AADoPQAA6D0AAAA+AADoPgAA6D4AAAA/AADoPwAA6D8AAABAAADoQAAA6EAAAABBAADoQQAA6EEAAABCAADoQgAA6EIAAABDAADoQwAA6EMAAABEAADoRAAA6EQAAABFAADoRQAA6EUAAABGAADoRgAA6EYAAABHAADoRwAA6EcAAABIAADoSAAA6EgAAABJAADoSQAA6EkAAABKAADoSgAA6EoAAABLAADoSwAA6EsAAABMAADoTAAA6EwAAABNAADoTQAA6E0AAABOAADoTgAA6E4AAABPAADoTwAA6E8AAABQAADwjgAA8I4AAABRAADwmwAA8JsAAABSAADwsAAA8LAAAABTAADwxQAA8MUAAABUAADwygAA8MoAAABVAADwywAA8MsAAABWAADwzQAA8M0AAABXAADw3AAA8NwAAABYAADw4QAA8OEAAABZAADxGAAA8RgAAABaAADxHAAA8RwAAABbAADxIQAA8SEAAABcAADxMgAA8TIAAABdAADxNwAA8TcAAABeAADxOAAA8TgAAABfAADxcQAA8XEAAABgAADxegAA8XoAAABhAADxkgAA8ZIAAABiAADxkwAA8ZMAAABjAADxnAAA8ZwAAABkAADxoAAA8aAAAABlAADxrQAA8a0AAABmAADxwAAA8cAAAABnAADxzQAA8c0AAABoAADx3AAA8dwAAABpAADx5QAA8eUAAABqAADx/gAA8f4AAABrAADyMQAA8jEAAABsAADyOgAA8joAAABtAADylgAA8pYAAABuAADyxgAA8sYAAABvAAIAAP+xAsoDDAAVAB4AJUAiAAUBBW8DAQEEAW8ABAIEbwACAAJvAAAAZhMXEREXMgYFGislFAYjISImNTQ+AxcWMjcyHgMDFAYiLgE2HgECykYx/iQxRgoYKj4tScpKKkImHAiPfLR6BIKshEU8WFg8MFRWPCgBSEgmPlRWAcBYfn6wgAJ8AAAC//7/zgPq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eSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAEMAbwBwAHkAcgBpAGcAaAB0ACAAKABDACkAIAAyADAAMgAwACAAYgB5ACAAbwByAGkAZwBpAG4AYQBsACAAYQB1AHQAaABvAHIAcwAgAEAAIABmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQBmAG8AbgB0AGUAbABsAG8AUgBlAGcAdQBsAGEAcgBmAG8AbgB0AGUAbABsAG8AZgBvAG4AdABlAGwAbABvAFYAZQByAHMAaQBvAG4AIAAxAC4AMABmAG8AbgB0AGUAbABsAG8ARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAAR1c2VyBmZvbGRlcgRsaXN0BWxvZ2luA2NvZwd0d2l0dGVyC2FydGljbGUtYWx0BmNhbmNlbARob21lCGRvd24tZGlyCGZhY2Vib29rCGFzdGVyaXNrBnVwbG9hZAlzdG9wd2F0Y2gGZXhwb3J0BWhlYXJ0BHBsdXMGdXAtZGlyBG1lbnUJbGVmdC1vcGVuCnJpZ2h0LW9wZW4FaW5ib3gGd3JlbmNoB2NvbW1lbnQNc3RhY2tvdmVyZmxvdwhxdWVzdGlvbgpvay1jaXJjbGVkB3dhcm5pbmcEbWFpbARsaW5rB2tleS1pbnYFdHJhc2gIZG93bmxvYWQHZ2xhc3NlcwZxcmNvZGUHc2h1ZmZsZQNleWUEbG9jawZzZWFyY2gEYmVsbAV1c2Vycwhsb2NhdGlvbglicmllZmNhc2UJaW5zdGFncmFtBWNsb2NrBXBob25lCGNhbGVuZGFyBXByaW50BGVkaXQEYm9sZAZpdGFsaWMGcm9ja2V0CHdoYXRzYXBwBWRvdC0zDGluZm8tY2lyY2xlZAh2aWRlb2NhbQtxdW90ZS1yaWdodAdwaWN0dXJlB3BhbGV0dGUEbGFtcAlib29rLW9wZW4Cb2sIY2hhdC1hbHQHYXJjaGl2ZQRwbGF5BXBhdXNlCWRvd24tb3Blbgd1cC1vcGVuBW1pbnVzCGV4Y2hhbmdlB25ldHdvcmsHZGlzY29yZAhtb29uLWludgdzdW4taW52DmNhbmNlbC1jaXJjbGVkCWxpZ2h0bmluZwNkZXYJcmlnaHQtZGlyCGxlZnQtZGlyBGZpcmUIbGluay1leHQOZ2l0aHViLWNpcmNsZWQGZmlsdGVyBGRvY3MLbGlzdC1idWxsZXQNbGlzdC1udW1iZXJlZAl1bmRlcmxpbmUEc29ydAhsaW5rZWRpbgVzbWlsZQhrZXlib2FyZARjb2RlBnNoaWVsZBJhbmdsZS1jaXJjbGVkLWxlZnQTYW5nbGUtY2lyY2xlZC1yaWdodAliaXRidWNrZXQHd2luZG93cwtkb3QtY2lyY2xlZAp3aGVlbGNoYWlyBGJhbmsGZ29vZ2xlD2J1aWxkaW5nLWZpbGxlZAhkYXRhYmFzZQhsaWZlYnVveQZoZWFkZXIKYmlub2N1bGFycwpjaGFydC1hcmVhCXBpbnRlcmVzdAZtZWRpdW0GZ2l0bGFiCHRlbGVncmFtAAAAAQAB//8ADwAAAAAAAAAAAAAAAAAAAAAAGAAYABgAGAOB/zoDgf86sAAsILAAVVhFWSAgS7gADlFLsAZTWliwNBuwKFlgZiCKVViwAiVhuQgACABjYyNiGyEhsABZsABDI0SyAAEAQ2BCLbABLLAgYGYtsAIsIGQgsMBQsAQmWrIoAQpDRWNFUltYISMhG4pYILBQUFghsEBZGyCwOFBYIbA4WVkgsQEKQ0VjRWFksChQWCGxAQpDRWNFILAwUFghsDBZGyCwwFBYIGYgiophILAKUFhgGyCwIFBYIbAKYBsgsDZQWCGwNmAbYFlZWRuwAStZ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) format('truetype')}[class*=" icon-"]:before,[class^=icon-]:before{font-family:fontello;font-style:normal;font-weight:400;speak:never;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em}.icon-user:before{content:'\e800'}.icon-folder:before{content:'\e801'}.icon-list:before{content:'\e802'}.icon-login:before{content:'\e803'}.icon-cog:before{content:'\e804'}.icon-twitter:before{content:'\e805'}.icon-article-alt:before{content:'\e806'}.icon-cancel:before{content:'\e807'}.icon-home:before{content:'\e808'}.icon-down-dir:before{content:'\e809'}.icon-facebook:before{content:'\e80a'}.icon-asterisk:before{content:'\e80b'}.icon-upload:before{content:'\e80c'}.icon-stopwatch:before{content:'\e80d'}.icon-export:before{content:'\e80e'}.icon-heart:before{content:'\e80f'}.icon-plus:before{content:'\e810'}.icon-up-dir:before{content:'\e811'}.icon-menu:before{content:'\e812'}.icon-left-open:before{content:'\e813'}.icon-right-open:before{content:'\e814'}.icon-inbox:before{content:'\e815'}.icon-wrench:before{content:'\e816'}.icon-comment:before{content:'\e817'}.icon-stackoverflow:before{content:'\e818'}.icon-question:before{content:'\e819'}.icon-ok-circled:before{content:'\e81a'}.icon-warning:before{content:'\e81b'}.icon-mail:before{content:'\e81c'}.icon-link:before{content:'\e81d'}.icon-key-inv:before{content:'\e81e'}.icon-trash:before{content:'\e81f'}.icon-download:before{content:'\e820'}.icon-glasses:before{content:'\e821'}.icon-qrcode:before{content:'\e822'}.icon-shuffle:before{content:'\e823'}.icon-eye:before{content:'\e824'}.icon-lock:before{content:'\e825'}.icon-search:before{content:'\e826'}.icon-bell:before{content:'\e827'}.icon-users:before{content:'\e828'}.icon-location:before{content:'\e829'}.icon-briefcase:before{content:'\e82a'}.icon-instagram:before{content:'\e82b'}.icon-clock:before{content:'\e82c'}.icon-phone:before{content:'\e82d'}.icon-calendar:before{content:'\e82e'}.icon-print:before{content:'\e82f'}.icon-edit:before{content:'\e830'}.icon-bold:before{content:'\e831'}.icon-italic:before{content:'\e832'}.icon-rocket:before{content:'\e833'}.icon-whatsapp:before{content:'\e834'}.icon-dot-3:before{content:'\e835'}.icon-info-circled:before{content:'\e836'}.icon-videocam:before{content:'\e837'}.icon-quote-right:before{content:'\e838'}.icon-picture:before{content:'\e839'}.icon-palette:before{content:'\e83a'}.icon-lamp:before{content:'\e83b'}.icon-book-open:before{content:'\e83c'}.icon-ok:before{content:'\e83d'}.icon-chat-alt:before{content:'\e83e'}.icon-archive:before{content:'\e83f'}.icon-play:before{content:'\e840'}.icon-pause:before{content:'\e841'}.icon-down-open:before{content:'\e842'}.icon-up-open:before{content:'\e843'}.icon-minus:before{content:'\e844'}.icon-exchange:before{content:'\e845'}.icon-network:before{content:'\e846'}.icon-discord:before{content:'\e847'}.icon-moon-inv:before{content:'\e848'}.icon-sun-inv:before{content:'\e849'}.icon-cancel-circled:before{content:'\e84a'}.icon-lightning:before{content:'\e84b'}.icon-dev:before{content:'\e84c'}.icon-right-dir:before{content:'\e84d'}.icon-left-dir:before{content:'\e84e'}.icon-fire:before{content:'\e84f'}.icon-link-ext:before{content:'\f08e'}.icon-github-circled:before{content:'\f09b'}.icon-filter:before{content:'\f0b0'}.icon-docs:before{content:'\f0c5'}.icon-list-bullet:before{content:'\f0ca'}.icon-list-numbered:before{content:'\f0cb'}.icon-underline:before{content:'\f0cd'}.icon-sort:before{content:'\f0dc'}.icon-linkedin:before{content:'\f0e1'}.icon-smile:before{content:'\f118'}.icon-keyboard:before{content:'\f11c'}.icon-code:before{content:'\f121'}.icon-shield:before{content:'\f132'}.icon-angle-circled-left:before{content:'\f137'}.icon-angle-circled-right:before{content:'\f138'}.icon-bitbucket:before{content:'\f171'}.icon-windows:before{content:'\f17a'}.icon-dot-circled:before{content:'\f192'}.icon-wheelchair:before{content:'\f193'}.icon-bank:before{content:'\f19c'}.icon-google:before{content:'\f1a0'}.icon-building-filled:before{content:'\f1ad'}.icon-database:before{content:'\f1c0'}.icon-lifebuoy:before{content:'\f1cd'}.icon-header:before{content:'\f1dc'}.icon-binoculars:before{content:'\f1e5'}.icon-chart-area:before{content:'\f1fe'}.icon-pinterest:before{content:'\f231'}.icon-medium:before{content:'\f23a'}.icon-gitlab:before{content:'\f296'}.icon-telegram:before{content:'\f2c6'}.datalist-polyfill{list-style:none;display:none;background:#fff;box-shadow:0 2px 2px #999;position:absolute;left:0;top:0;margin:0;padding:0;max-height:300px;overflow-y:auto}.datalist-polyfill:empty{display:none!important}.datalist-polyfill>li{padding:3px;font:13px "Lucida Grande",Sans-Serif}.datalist-polyfill__active{background:#3875d7;color:#fff}date-input-polyfill{z-index:1000!important;max-width:320px!important;width:320px!important}date-input-polyfill .monthSelect-wrapper,date-input-polyfill .yearSelect-wrapper{height:50px;line-height:50px;padding:0;width:40%!important;margin-bottom:10px!important}date-input-polyfill .monthSelect-wrapper select,date-input-polyfill .yearSelect-wrapper select{padding:0 12px;height:50px;line-height:50px;box-sizing:border-box}date-input-polyfill .yearSelect-wrapper{width:35%!important}date-input-polyfill table{width:100%!important;max-width:100%!important;padding:0 12px 12px 12px!important;box-sizing:border-box;margin:0}date-input-polyfill table td:first-child,date-input-polyfill table td:last-child,date-input-polyfill table th:first-child,date-input-polyfill table th:last-child{width:32px!important;padding:4px!important}date-input-polyfill select{margin-bottom:10px}date-input-polyfill button{width:25%!important;height:50px!important;line-height:50px!important;margin-bottom:10px!important;background:inherit;position:relative;color:inherit;padding:inherit;box-sizing:inherit;border-radius:inherit;font-size:inherit;box-shadow:none;border:none;border-bottom:none!important}::placeholder{color:var(--config-color-placeholder);text-align:right}::-webkit-input-placeholder{text-align:right}input:-moz-placeholder{text-align:right}form.inline{display:inline-block}input,textarea{background:var(--config-color-background-input)}input[type=file],input[type=file]::-webkit-file-upload-button{cursor:pointer}.button,button{display:inline-block;background:var(--config-color-focus);border-radius:26px;border:none;color:var(--config-color-background-fade);height:52px;line-height:52px;padding:0 25px;cursor:pointer;font-size:16px;box-sizing:border-box;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.button:focus,.button:hover,button:focus,button:hover{background:var(--config-color-focus-hover)}.button.fly,button.fly{position:fixed;z-index:2;bottom:30px;left:30px}@media only screen and (max-width:550px){.button.fly,button.fly{left:15px}}.button.fill,button.fill{display:block;width:100%;text-align:center;padding:0 10px!important}.button.fill-aligned,button.fill-aligned{display:block;width:100%;text-align:right;padding:0 20px!important}.button.icon,button.icon{padding-left:30px!important}.button.icon-reduce,button.icon-reduce{padding-right:15px!important}.button.reverse,button.reverse{background:0 0;height:50px;line-height:48px;padding:0 23px;color:var(--config-color-focus);border:solid 2px var(--config-color-focus)}.button.reverse:focus,.button.reverse:hover,button.reverse:focus,button.reverse:hover{color:var(--config-color-focus-hover);border-color:var(--config-color-focus-hover)}.button.small,button.small{padding:0 15px;height:40px;line-height:36px;font-size:13px}.button.tick,button.tick{background:var(--config-color-fade-light);color:var(--config-color-dark);border-radius:20px;padding:0 10px;line-height:30px;height:30px;font-size:12px;display:inline-block}.button.tick.selected,button.tick.selected{background:var(--config-color-dark);color:var(--config-color-fade)}.button.round,button.round{width:52px;padding:0}.button.round.small,button.round.small{font-size:12px;width:30px;height:30px;line-height:30px}.button.white,button.white{background:#fff;color:var(--config-color-focus)}.button.white.reverse,button.white.reverse{color:#fff;background:0 0;border:solid 2px #fff}.button.trans,button.trans{background:0 0!important}.button.trans.reverse,button.trans.reverse{background:0 0!important}.button.success,button.success{background:var(--config-color-success)}.button.success.reverse,button.success.reverse{color:var(--config-color-success);background:#fff;border:solid 2px var(--config-color-success)}.button.danger,button.danger{background:var(--config-color-danger);color:#fff}.button.danger.reverse,button.danger.reverse{color:var(--config-color-danger);background:var(--config-color-background-fade);border:solid 2px var(--config-color-danger)}.button.dark,button.dark{background:var(--config-color-dark);color:var(--config-color-background-fade)}.button.dark.reverse,button.dark.reverse{color:var(--config-color-dark);background:var(--config-color-background-fade);border:solid 2px var(--config-color-dark)}.button .disabled,.button.disabled,.button:disabled,button .disabled,button.disabled,button:disabled{color:var(--config-color-normal);background:var(--config-color-background-dark);opacity:.6;cursor:default}.button.link,button.link{background:0 0;border-radius:0;color:var(--config-color-link);height:auto;line-height:normal;padding:0;padding-left:0!important}.button.link:focus,button.link:focus{box-shadow:inherit}.button.strip,button.strip{background:0 0;height:auto;line-height:16px;color:inherit;padding:0 5px}.button.facebook,button.facebook{color:#fff!important;background:#4070b4!important}.button.twitter,button.twitter{color:#fff!important;background:#56c2ea!important}.button.linkedin,button.linkedin{color:#fff!important;background:#0076b5!important}.button.github,button.github{color:#fff!important;background:#7e7c7c!important}.button:focus,button:focus{outline:0}label{margin-bottom:15px;display:block;line-height:normal}label.inline{display:inline}.input,input[type=date],input[type=datetime-local],input[type=email],input[type=file],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{-webkit-appearance:none;-moz-appearance:none;-webkit-transform:translateZ(0);box-sizing:content-box;color:#313131;height:40px;line-height:40px;border:solid 1px var(--config-color-fade-light);border-radius:10px;padding:5px 15px;font-size:16px;display:block;width:calc(100% - 32px);margin-bottom:30px}.input[type=file],input[type=date][type=file],input[type=datetime-local][type=file],input[type=email][type=file],input[type=file][type=file],input[type=number][type=file],input[type=password][type=file],input[type=search][type=file],input[type=tel][type=file],input[type=text][type=file],input[type=url][type=file],select[type=file],textarea[type=file]{line-height:0;padding:15px;height:auto}.input:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=file]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{outline:0;border-color:#b3d7fd}.input:disabled,input[type=date]:disabled,input[type=datetime-local]:disabled,input[type=email]:disabled,input[type=file]:disabled,input[type=number]:disabled,input[type=password]:disabled,input[type=search]:disabled,input[type=tel]:disabled,input[type=text]:disabled,input[type=url]:disabled,select:disabled,textarea:disabled{color:var(--config-color-normal);background:var(--config-color-fade-super);opacity:1!important}.input.strip,input[type=date].strip,input[type=datetime-local].strip,input[type=email].strip,input[type=file].strip,input[type=number].strip,input[type=password].strip,input[type=search].strip,input[type=tel].strip,input[type=text].strip,input[type=url].strip,select.strip,textarea.strip{border:none;border-radius:0;padding:5px 0;width:100%;background-color:transparent;background-position:left 2px top 50%;border-bottom:solid 1px var(--config-color-fade-light);color:var(--config-color-placeholder)}.input.strip:focus,input[type=date].strip:focus,input[type=datetime-local].strip:focus,input[type=email].strip:focus,input[type=file].strip:focus,input[type=number].strip:focus,input[type=password].strip:focus,input[type=search].strip:focus,input[type=tel].strip:focus,input[type=text].strip:focus,input[type=url].strip:focus,select.strip:focus,textarea.strip:focus{border-color:#b3d7fd}.input:-webkit-autofill::first-line,input[type=date]:-webkit-autofill::first-line,input[type=datetime-local]:-webkit-autofill::first-line,input[type=email]:-webkit-autofill::first-line,input[type=file]:-webkit-autofill::first-line,input[type=number]:-webkit-autofill::first-line,input[type=password]:-webkit-autofill::first-line,input[type=search]:-webkit-autofill::first-line,input[type=tel]:-webkit-autofill::first-line,input[type=text]:-webkit-autofill::first-line,input[type=url]:-webkit-autofill::first-line,select:-webkit-autofill::first-line,textarea:-webkit-autofill::first-line{font-weight:300;font-size:16px}input[type=email],input[type=url]{direction:ltr}input[type=email]::placeholder,input[type=url]::placeholder{text-align:left;direction:ltr}select{background:0 0;-webkit-appearance:none;background-image:var(--config-console-nav-switch-arrow);background-position:left 15px top 50%;background-repeat:no-repeat;background-color:var(--config-color-background-input);width:calc(100% - 62px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:45px}select:-webkit-autofill{background-image:url("data:image/svg+xml;utf8,")!important;background-position:100% 50%!important;background-repeat:no-repeat!important}input[type=search],input[type=search].strip{background:0 0;-webkit-appearance:none;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAdZJREFUWIXt1s2LjWEYBvDfnDMzFpNIamZIFrMiJYMyFmKhZKfOwoiFr2LFn2BByG6WVrKwMcjWxgoLIlKIUk6RrzAjZWZ8LO731FlwvB+PUbjq6X0X7/VeV/d9P9fz8IdRL8Hpw3x8w0xaOz9GNxq4gJeZcGs1cRab0fU7xLfgMSYzoT3YgNXYhIO4iM+4iTWphGs4jikcFSXvhEGczr4/UFW8C2N4jXUFudvwCYeqGNgnSr6yJH8rpkWLCqMfE9hdUryFE3iC3qLEk7ij+kT34Q32FiHV8Qr7K4q3cArXihCGxd5elMjARnzBvE4f1dreV+AtnicycC/7/7K8BhaIvqXCO3zFwrwGZtCT0EAtW9N5DTSxWGR/CizNns/yEgbFEK5NZGCnaEPHE7e9Ai9wA6OJDIzistgJubFdxHB/RfFVYgCHixJruI5x5dNwDm6J47sUhkTvjpUw0Y1zeOrXR3hHjOA9zmBuTs4Arog4/yhuUZWwHPdFMh7280BZgiP4ILJ/UuymqRQmejPxphiquzgvKnMJDzOxB9glZqiRiecykbfHdawX98EhcdxO4BGu4nYm2EJDzEKPSMIdYrBnFYUq8d/EP2di1gey3cS4ErflvxffASbhcakIINaMAAAAAElFTkSuQmCC);background-color:var(--config-color-background-input);background-position:right 15px top 50%;background-repeat:no-repeat;background-size:20px 20px;width:calc(100% - 60px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:45px}select[multiple]{min-height:75px;padding:5px 10px!important;padding-left:50px!important}select[multiple] option{padding:10px 4px;border-bottom:solid 1px #f1f1f1}select[multiple] option:last-child{border-bottom:none}textarea{min-height:75px;resize:vertical;line-height:32px;padding:5px 15px}textarea.tall{min-height:180px}fieldset{border:none;margin:0;padding:0}.counter{font-size:13px;text-align:left;color:var(--config-color-fade);margin-top:-20px;margin-bottom:20px}.file-preview{background:var(--config-color-background-input) url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAIElEQVQoU2NkYGAwZsAEZ9GFGIeIQix+wfQgyDODXSEAcUwGCrDSHgkAAAAASUVORK5CYII=)!important;border:solid 1px #e2e2e2;box-shadow:inset 0 0 3px #a0a0a0;border-radius:8px;width:calc(100% - 2px);max-height:180px;visibility:visible!important}.video-preview{padding-top:56%;position:relative;border-radius:10px;background:#e7e7e7;overflow:hidden;margin:0}.video-preview iframe{position:absolute;top:0;width:100%;height:100%;border:none}.map-preview{padding-top:50%;position:relative;margin-bottom:10px;border-radius:10px;background:#e7e7e7;overflow:hidden;box-shadow:0 0 30px rgba(218,218,218,.5)}.map-preview iframe{position:absolute;top:0;width:100%;height:100%;border:none}.tooltip{position:relative}.tooltip.large:hover:after{white-space:normal;width:280px}.tooltip.small:hover:after{white-space:normal;width:180px}.tooltip:hover:after{white-space:nowrap;background:var(--config-color-tooltip-background);border-radius:5px;bottom:26px;color:var(--config-color-tooltip-text);content:attr(data-tooltip);padding:5px 15px;position:absolute;font-size:13px;line-height:20px;z-index:98;right:20%;margin-right:-30px;word-break:break-word}.tooltip:hover:before{border:solid;border-color:var(--config-color-tooltip-background) transparent;border-width:6px 6px 0 6px;bottom:20px;content:"";position:absolute;z-index:99;right:5px}.tooltip.down:hover:after{top:26px;bottom:inherit}.tooltip.down:hover:before{top:20px;border-width:0 6px 6px 6px;bottom:inherit}.tag{display:inline-block;background:var(--config-color-fade-light);color:var(--config-color-fade);border-radius:12px;line-height:24px;padding:0 8px;font-size:12px;box-shadow:none!important;border:none;height:auto;width:auto;white-space:nowrap;text-overflow:ellipsis}.tag:hover{border:none}.tag.green{background:var(--config-color-success);color:#fff}.tag.red{background:var(--config-color-danger);color:#fff}.tag.yellow{background:#ffe28b;color:#494949}.tag.focus{background:var(--config-color-focus);color:#fff}.tag.dark{background:var(--config-color-dark);color:#e7e7e7}.tag.blue{background:var(--config-color-info);color:#fff}.tag.link{background:var(--config-color-link);color:#fff}input[type=checkbox],input[type=radio]{width:26px;height:16px;position:relative;-webkit-appearance:none;border-radius:0;border:none;background:0 0;vertical-align:middle;margin:0}input[type=checkbox]:after,input[type=radio]:after{content:"";display:block;width:20px;height:20px;background:var(--config-color-background-fade);top:-5px;border-radius:50%;position:absolute;border:solid 3px var(--config-color-focus);vertical-align:middle}input[type=checkbox]:checked:after,input[type=radio]:checked:after{text-align:center;font-family:fontello;content:'\e83d';font-size:16px;line-height:20px;color:var(--config-color-background-fade);background:var(--config-color-focus)}input[type=checkbox][type=radio]:checked:after,input[type=radio][type=radio]:checked:after{content:'';display:block;width:10px;height:10px;border-radius:50%;background:var(--config-color-background-fade);border:solid 8px var(--config-color-focus)}input[type=checkbox]:focus,input[type=radio]:focus{outline:0}input[type=checkbox]:focus:after,input[type=checkbox]:hover:after,input[type=radio]:focus:after,input[type=radio]:hover:after{outline:0;border-color:#000}input[type=checkbox]:checked:focus:after,input[type=checkbox]:checked:hover:after,input[type=radio]:checked:focus:after,input[type=radio]:checked:hover:after{border-color:var(--config-color-focus)}.input-copy{position:relative}.input-copy input,.input-copy textarea{padding-left:65px;width:calc(100% - 82px);resize:none}.input-copy .copy{position:absolute;top:0;left:0;border-right:solid 1px var(--config-color-fade-light);height:calc(100% - 2px);width:50px;line-height:50px;text-align:center;background:var(--config-color-background-focus);margin:1px;border-radius:0 10px 10px 0}.paging{color:var(--config-color-fade);padding:5px 15px;font-size:12px}.paging form{display:inline-block}.paging button:disabled{color:var(--config-color-background-fade);opacity:.6}.blue-snap iframe{-webkit-appearance:none;-moz-appearance:none;-webkit-transform:translateZ(0);box-sizing:content-box;color:#313131;height:40px;line-height:40px;border:solid 1px var(--config-color-fade-light);border-radius:10px;padding:5px 15px;font-size:16px;display:block;width:calc(100% - 32px);margin-bottom:30px;float:none!important;height:40px!important;width:calc(100% - 32px)!important;border:solid 1px #e2e2e2!important;background:0 0!important;position:static!important}.blue-snap iframe[type=file]{line-height:0;padding:15px;height:auto}.blue-snap iframe:focus{outline:0;border-color:#b3d7fd}.blue-snap iframe:disabled{color:var(--config-color-normal);background:var(--config-color-fade-super);opacity:1!important}.blue-snap iframe.strip{border:none;border-radius:0;padding:5px 0;width:100%;background-color:transparent;background-position:left 2px top 50%;border-bottom:solid 1px var(--config-color-fade-light);color:var(--config-color-placeholder)}.blue-snap iframe.strip:focus{border-color:#b3d7fd}.blue-snap iframe:-webkit-autofill::first-line{font-weight:300;font-size:16px}.blue-snap .error{font-size:12px;margin-top:-25px;color:var(--config-color-danger);height:40px;padding-right:2px}.pell{height:auto;padding-bottom:0;margin-bottom:0;padding-top:0;background:var(--config-color-background-input);line-height:normal!important;position:relative}.pell.hide{padding:0!important;height:1px;min-height:1px;max-height:1px;border:none;box-shadow:none;margin-bottom:20px;opacity:0}.pell [contenteditable=true]:empty:before{content:attr(placeholder);display:block;color:var(--config-color-placeholder)}.pell .pell-actionbar{border-bottom:solid 1px var(--config-color-fade-light);margin:0 -15px 15px -15px;padding:10px 15px;position:sticky;top:70px;background:var(--config-color-background-input);border-radius:10px 10px 0 0}.pell .pell-content{min-height:100px;display:block;padding:10px;margin:-10px;cursor:text}.pell .pell-content:focus{outline:0}.pell button{background:inherit;color:inherit;margin:0;padding:0;padding-left:15px;height:40px;line-height:40px;box-shadow:none;cursor:pointer;font-size:13px;border-radius:0}.pell button.pell-button-selected,.pell button:focus,.pell button:hover{color:var(--config-color-link)}.pell h1,.pell h2,.pell h3,.pell h4,.pell h5,.pell h6{text-align:inherit;margin-bottom:30px}.pell b,.pell strong{font-weight:700}.pell ol,.pell ul{margin:0 0 20px 0}.pell ol li,.pell ul li{display:list-item!important;list-style:inherit;list-style-position:inside!important;margin:0 20px 2px 20px}.pell ol li p,.pell ul li p{margin:0;display:inline}.pell ol li{list-style:decimal}.pell ol li::before{content:'';display:none}label.switch{line-height:42px}.switch,input[type=checkbox].button.switch,input[type=checkbox].switch{width:52px;height:32px;line-height:32px;border-radius:21px;background:var(--config-color-fade);display:inline-block;margin:0;padding:5px;padding-right:5px;padding-left:30px}.switch.on,.switch:checked,input[type=checkbox].button.switch.on,input[type=checkbox].button.switch:checked,input[type=checkbox].switch.on,input[type=checkbox].switch:checked{background-color:var(--config-color-success);padding-right:25px;padding-left:5px}.switch.on:focus,.switch.on:hover,.switch:checked:focus,.switch:checked:hover,input[type=checkbox].button.switch.on:focus,input[type=checkbox].button.switch.on:hover,input[type=checkbox].button.switch:checked:focus,input[type=checkbox].button.switch:checked:hover,input[type=checkbox].switch.on:focus,input[type=checkbox].switch.on:hover,input[type=checkbox].switch:checked:focus,input[type=checkbox].switch:checked:hover{background:var(--config-color-success)}.switch:focus,.switch:hover,input[type=checkbox].button.switch:focus,input[type=checkbox].button.switch:hover,input[type=checkbox].switch:focus,input[type=checkbox].switch:hover{background:var(--config-color-fade)}.switch:focus:after,.switch:hover:after,input[type=checkbox].button.switch:focus:after,input[type=checkbox].button.switch:hover:after,input[type=checkbox].switch:focus:after,input[type=checkbox].switch:hover:after{background:#fff}.switch:after,input[type=checkbox].button.switch:after,input[type=checkbox].switch:after{content:"";display:block;width:22px;height:22px;background:#fff;border-radius:50%;border:none;position:static;top:0}.password-meter{margin:-41px 10px 30px 10px;height:2px;background:0 0;max-width:100%;z-index:2;position:relative}.password-meter.weak{background:var(--config-color-danger)}.password-meter.medium{background:var(--config-color-success)}.password-meter.strong{background:var(--config-color-success)}.color-input:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.color-input .color-preview{width:53px;height:53px;float:right;margin-left:10px;background:#000;border-radius:10px;box-shadow:inset 0 0 3px #a0a0a0;position:relative}.color-input .color-preview input{opacity:0;position:absolute;top:0;bottom:0;left:0;right:0;width:100%;height:100%;cursor:pointer}.color-input input{text-transform:uppercase;float:right;width:calc(100% - 95px)}.grecaptcha-badge{box-shadow:none!important;border-radius:10px!important;overflow:hidden!important;background:#4d92df!important;bottom:25px}.grecaptcha-badge:hover{width:256px!important}.back{font-size:15px;line-height:24px;height:24px;margin-right:-15px;margin-top:-25px;margin-bottom:20px}.back span{font-weight:inherit!important}@media only screen and (max-width:550px){.back{margin-right:-5px}}hr{height:1px;background:var(--config-border-color)!important;border:none}hr.fade{opacity:.7}.upload{position:relative}.upload:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.upload input{position:absolute;top:0;right:0;opacity:0;cursor:pointer}.upload.single .preview{height:0;position:relative;padding-top:100%;width:100%;margin-bottom:15px!important}.upload.single .preview li{position:absolute;top:0;width:calc(100% - 20px);height:calc(100% - 20px);margin-left:0!important;margin-bottom:0!important}.upload .button{float:right;margin-left:10px!important}.upload .button.disabled,.upload .button.disabled:hover{background:0 0;color:inherit;border-color:inherit}.upload .count{float:right;line-height:52px}.upload .progress{background:var(--config-color-success);height:6px;border-radius:3px;margin-bottom:15px!important}.upload .preview:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.upload .preview li{float:right;margin-left:20px!important;margin-bottom:15px!important;background:var(--config-color-background-fade-super);width:150px;height:150px;line-height:148px;text-align:center;border-radius:20px;overflow:hidden;position:relative;cursor:pointer;border:solid 1px var(--config-color-background-dark)}.upload .preview li:hover:before{background:var(--config-color-focus)}.upload .preview li:before{content:'\e807';font-family:fontello;font-size:12px;position:absolute;width:20px;height:20px;display:block;top:8px;left:8px;text-align:center;line-height:20px;vertical-align:middle;border-radius:50%;background:#484848;color:#fff;z-index:1}.upload .preview li img{vertical-align:middle;max-height:150px;max-width:150px;-webkit-filter:drop-shadow(0 0 6px rgba(0, 0, 0, .3));filter:drop-shadow(0 0 1px rgba(0, 0, 0, .3))}.upload.wide .preview li{height:0;width:100%;position:relative;padding-top:30.547%;background:#e7e7e7;border-radius:10px;overflow:hidden;border:solid 1px #f9f9f9;margin:0}.upload.wide .preview li img{border-radius:10px;position:absolute;top:0;width:100%;display:block;opacity:1;max-width:inherit;max-height:inherit}ol{list-style:none;counter-reset:x-counter;padding:0}ol li{counter-increment:x-counter;line-height:30px;margin-bottom:30px;margin-right:45px}ol li::before{display:inline-block;content:counter(x-counter);color:var(--config-color-background-fade);background:var(--config-color-focus);border:solid 2px var(--config-color-focus);margin-left:15px;margin-right:-45px;width:26px;height:26px;border-radius:50%;text-align:center;line-height:26px}.required{color:var(--config-color-danger);font-size:8px;position:relative;top:-8px}.drop-list{position:relative;outline:0}.drop-list.open ul{display:block}.drop-list ul{position:relative;background:var(--config-color-background-fade);border-radius:10px;box-shadow:0 0 3px rgba(0,0,0,.05);padding:30px;display:block;border-bottom:none;box-shadow:0 0 6px rgba(0,0,0,.1);display:none;position:absolute;bottom:calc(100% + 10px);z-index:2;padding:0;right:-10px;max-width:280px;min-width:240px}.drop-list ul.padding-tiny{padding:5px}.drop-list ul.padding-xs{padding:10px}.drop-list ul.padding-small{padding:15px}.drop-list ul.y-scroll{overflow-y:auto}.drop-list ul.danger{background:var(--config-color-danger);color:#fff}.drop-list ul.danger .box{color:var(--config-color-normal);background:var(--config-color-background-fade)}.drop-list ul.danger>.button,.drop-list ul.danger>button{background:#fff;color:var(--config-color-danger)}.drop-list ul.note{background:var(--config-note-background)}.drop-list ul.focus{background:var(--config-color-focus);color:var(--config-color-background-fade)}.drop-list ul.focus .button,.drop-list ul.focus button{background:var(--config-color-background-fade);color:var(--config-color-focus)}.drop-list ul.line{background:0 0;border:solid 1px var(--config-color-background-dark);box-shadow:none}.drop-list ul.warning{background:var(--config-color-warning);color:#2d2d2d}.drop-list ul.warning .button,.drop-list ul.warning button{background:rgba(45,45,45,.8);color:var(--config-color-success)}.drop-list ul .tabs{border-bottom:solid 1px var(--config-border-color);margin:0 -30px;padding:0 30px!important}.drop-list ul>footer{margin:0 -30px -30px -30px;padding:15px 30px;background:var(--config-color-background-fade);border:solid 1px var(--config-border-color);border-radius:0 0 10px 10px}.drop-list ul hr{height:1px;background:var(--config-console-background);border:none;margin:30px -30px}.drop-list ul .label{position:absolute;top:10px;z-index:2;left:10px}.drop-list ul.fade-bottom{position:relative;overflow:hidden}.drop-list ul.fade-bottom:after{content:"";position:absolute;display:block;bottom:15px;width:100%;background:#000;background:linear-gradient(180deg,rgba(0,0,0,0) 0,var(--config-color-background-fade) 80%);height:100px;margin:0 -15px}.drop-list ul .header{position:static;height:40px;padding:20px 30px 20px 30px;margin-bottom:30px;margin:-30px -30px 20px -30px;background:var(--config-color-background-fade);border-bottom:solid 1px #efefef}.drop-list ul ul.numbers>li{position:relative;margin-right:30px;margin-left:50px}.drop-list ul ul.numbers>li hr{margin-right:-60px;margin-left:-80px}.drop-list ul ul.numbers>li .settings{position:absolute;top:3px;left:-50px}.drop-list ul ul.numbers>li::after{display:block;width:25px;height:25px;line-height:25px;font-size:13px;font-weight:500;border-radius:50%;background:var(--config-color-focus);color:var(--config-color-background);counter-increment:section;content:counter(section);text-align:center;position:absolute;top:3px;right:-45px}.drop-list ul .scroll{margin:0 -30px;overflow-y:scroll}.drop-list ul .scroll table{width:100%;margin:0}.drop-list ul ul.sortable{counter-reset:section}.drop-list ul ul.sortable>li [data-move-down].round,.drop-list ul ul.sortable>li [data-move-up].round,.drop-list ul ul.sortable>li [data-remove].round{background:var(--config-color-focus);color:var(--config-color-background-fade);width:25px;height:25px;line-height:25px;display:inline-block;text-align:center;padding:0;margin-left:5px}.drop-list ul ul.sortable>li [data-move-down].round:disabled,.drop-list ul ul.sortable>li [data-move-up].round:disabled,.drop-list ul ul.sortable>li [data-remove].round:disabled{display:none}.drop-list ul ul.sortable>li:first-child [data-move-up]{display:none}.drop-list ul ul.sortable>li:first-child [data-move-up]:disabled{display:inline-block;background:var(--config-color-background)}.drop-list ul ul.sortable>li:last-child [data-move-down]{display:none}.drop-list ul ul.sortable>li:last-child [data-move-down]:disabled{display:inline-block;background:var(--config-color-background)}.drop-list ul .toggle{position:relative;border-top:1px solid var(--config-console-background);border-bottom:1px solid var(--config-console-background);margin:0 -30px;padding:30px 30px 0 30px;height:65px;overflow:hidden}.drop-list ul .toggle.list{border-bottom:none}.drop-list ul .toggle.sorts button.ls-ui-open{width:calc(100% - 100px)}.drop-list ul .toggle button.ls-ui-open{left:0;position:absolute;top:0;width:100%;height:95px;background:0 0;opacity:.5;border-radius:0}.drop-list ul .toggle .icon-minus,.drop-list ul .toggle .icon-up-open{display:none}.drop-list ul .toggle .content{display:none}.drop-list ul .toggle.open{height:auto}.drop-list ul .toggle.open .icon-minus,.drop-list ul .toggle.open .icon-up-open{display:block}.drop-list ul .toggle.open .icon-down-open,.drop-list ul .toggle.open .icon-plus{display:none}.drop-list ul .toggle.open .content{display:block}.drop-list ul .list li{border-bottom:solid 2px var(--config-border-color);margin:0 -30px 30px -30px;padding:0 30px 30px 30px}.drop-list ul .list li:last-child{padding-bottom:0;margin-bottom:0;border-bottom:none}@media only screen and (max-width:550px){.drop-list ul .list li .actions{float:none}}.drop-list ul .list li .avatar{display:block}.drop-list ul .list li .avatar.inline{display:inline-block}.drop-list ul.new{text-align:center}.drop-list ul.new i{font-size:80px;line-height:80px;font-family:Poppins,sans-serif;font-style:normal;font-weight:300}.drop-list ul.new b{margin-top:20px;display:block}.drop-list ul .info{margin:0 -30px;padding:20px 30px;background:var(--config-modal-note-background);color:var(--config-modal-note-color);border-top:solid 1px var(--config-modal-note-border);border-bottom:solid 1px var(--config-modal-note-border)}.drop-list ul .info hr{background:var(--config-modal-note-border)!important}.drop-list ul .table-wrap{margin:0 -30px;overflow-y:scroll}.drop-list ul .table-wrap table{margin:0}.drop-list ul:before{border:solid;border-color:var(--config-color-background-fade) transparent;border-width:8px 8px 0 8px;bottom:-8px;content:"";position:absolute;z-index:99;right:30px}.drop-list ul.arrow-end:before{left:30px;right:unset}.drop-list ul li{border-bottom:solid 1px var(--config-color-fade-super);margin:0;padding:0}.drop-list ul li:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.drop-list ul li:first-child{border-radius:10px 10px 0 0}.drop-list ul li:last-child{border-radius:0 0 10px 10px}.drop-list ul li:hover{background:var(--config-color-fade-super)}.drop-list ul li:first-child:hover,.drop-list ul li:last-child:hover{border-color:transparent}.drop-list ul li .link,.drop-list ul li a,.drop-list ul li button.link{display:block;vertical-align:middle;height:auto;line-height:30px;display:inline-block;padding:10px 15px!important;color:inherit;font-size:14px;border:none;cursor:pointer;width:calc(100% - 30px);text-align:right;box-sizing:content-box}.drop-list ul li.disabled .link:hover,.drop-list ul li.disabled a:hover{background:0 0}.drop-list ul li .avatar{width:30px;height:30px;margin-left:10px;float:right}.drop-list ul li:last-child{border-bottom:none}.drop-list.bottom ul{bottom:auto;margin-top:-2px}.drop-list.bottom ul:before{bottom:auto;top:-8px;border-width:0 8px 8px 8px}.drop-list.end ul{left:-10px;right:auto}.disabled{opacity:.2;cursor:default}.disabled .button,.disabled .link,.disabled a,.disabled button{cursor:default!important}.disabled .button:hover,.disabled .link:hover,.disabled a:hover,.disabled button:hover{background:0 0}.tags{-webkit-appearance:none;-moz-appearance:none;-webkit-transform:translateZ(0);box-sizing:content-box;color:#313131;height:40px;line-height:40px;border:solid 1px var(--config-color-fade-light);border-radius:10px;padding:5px 15px;font-size:16px;display:block;width:calc(100% - 32px);margin-bottom:30px;background:var(--config-color-background-input);min-height:42px;height:auto;cursor:text}.tags[type=file]{line-height:0;padding:15px;height:auto}.tags:focus{outline:0;border-color:#b3d7fd}.tags:disabled{color:var(--config-color-normal);background:var(--config-color-fade-super);opacity:1!important}.tags.strip{border:none;border-radius:0;padding:5px 0;width:100%;background-color:transparent;background-position:left 2px top 50%;border-bottom:solid 1px var(--config-color-fade-light);color:var(--config-color-placeholder)}.tags.strip:focus{border-color:#b3d7fd}.tags:-webkit-autofill::first-line{font-weight:300;font-size:16px}.tags .add{display:inline-block!important;border:none;padding:0;width:auto;margin:0;max-width:100%;min-width:200px}.tags ul.tags-list{display:inline;white-space:pre-line}.tags ul.tags-list li{display:inline-block!important;margin-left:10px;font-size:16px;padding:5px 10px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tags ul.tags-list li::before{float:left;content:'\e807';font-family:fontello;font-style:normal;display:inline-block;text-align:center;line-height:16px;width:16px;height:16px;font-size:12px;background:#000;color:#fff;border-radius:50%;margin-top:4px;margin-bottom:4px;margin-right:6px;margin-left:0}.switch-theme{background:var(--config-switch-background);border-radius:19px;height:26px;width:44px;margin:9px 0}.switch-theme button{padding:3px;display:block;background:0 0;height:26px;width:100%}.switch-theme i{background:var(--config-color-background-fade);border-radius:50%;height:18px;width:18px;line-height:18px;font-size:12px;padding:0;margin:0;color:var(--config-color-fade)}.switch-theme i.force-light{float:left}.switch-theme i.force-dark{float:right}.dot{width:20px;height:20px;background:var(--config-color-fade);border-radius:50%;display:inline-block;vertical-align:middle;margin:0!important;padding:0!important}.dot.danger{background:var(--config-color-danger)!important}.dot.success{background:var(--config-color-success)!important}.dot.warning{background:var(--config-color-warning)!important}.dot.info{background:var(--config-color-info)!important}.console{width:100%;padding:0;overscroll-behavior:none}.console body{position:relative;width:calc(100% - 320px);padding-top:70px;padding-bottom:0;padding-left:50px;padding-right:270px;margin:0;color:var(--config-color-normal);background:var(--config-console-background)}.console body .project-only{display:none!important}.console body.show-nav .project-only{display:inline-block!important}.console body.hide-nav{padding-right:50px;width:calc(100% - 100px)}.console body.hide-nav header{width:calc(100% - 50px)}.console body.hide-nav header .logo{display:inline-block}.console body.hide-nav .console-back{display:block}.console body.hide-nav .console-index{display:none}.console body.hide-nav .account{display:none}.console body.index .console-back{display:none}.console body.index .console-index{display:block}.console body.index .account{display:block}.console body .console-index{display:block}.console body .console-back{display:none}.console main{min-height:480px}.console header{position:fixed;top:0;width:calc(100% - 280px);height:40px;line-height:40px;padding:15px 30px;background:var(--config-color-background-fade);box-shadow:0 0 2px rgba(0,0,0,.1);margin:0 -50px;z-index:2;font-size:14px}.console header .logo{display:none;border:none}.console header .logo:hover{border:none;opacity:.8}.console header .logo img{height:26px;margin:7px 0}.console header .setup-new{width:40px;height:40px;line-height:40px}.console header .list{width:240px}.console header .list select{height:40px;line-height:40px;padding-top:0;padding-bottom:0;border:none;border-radius:26px;background-color:var(--config-console-nav-switch-background);color:var(--config-console-nav-switch-color)}.console header .account{margin-right:25px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.console header .switch-theme{margin:2px 0}.console header .avatar{height:40px;width:40px}.console header .account-button{background:0 0;position:absolute;width:100%;height:40px;border-radius:0;z-index:1}.console header .notifications{position:relative;font-size:20px}.console header .notifications a{color:#1b3445}.console header .notifications:after{position:absolute;content:"";display:block;background:var(--config-color-danger);width:8px;height:8px;border-radius:50%;top:3px;left:3px}.console header nav{background:#1b3445;background:linear-gradient(var(--config-console-nav-start),var(--config-console-nav-end));color:#788c99;position:fixed;height:100%;width:220px;top:0;right:0}.console header nav .logo{height:39px;padding:15px 20px;display:block}.console header nav .logo img{display:inline-block;margin-top:7px;margin-bottom:14px}.console header nav .logo svg g{fill:var(--config-color-focus)}.console header nav .icon{display:block;border:none;margin:18px 10px 50px 10px}.console header nav .icon img{display:block}.console header nav .icon:hover{border-bottom:none}.console header nav .icon:hover svg g{fill:var(--config-color-focus)}.console header nav .container{overflow:auto;height:calc(100% - 133px);width:100%}.console header nav .project-box{padding:20px;text-align:center;display:block;border:none;line-height:100px;height:100px}.console header nav .project-box img{max-height:80px;max-width:80%;display:inline-block;vertical-align:middle}.console header nav .project{display:block;padding:85px 25px 20px 25px;color:#788c99;position:relative;border:none;height:20px}.console header nav .project:hover{border-bottom:none}.console header nav .project .name{height:20px;line-height:20px;margin:0;padding:0;display:inline-block;max-width:100%}.console header nav .project .arrow{display:block;position:absolute;left:5px;top:10px;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #788c99;transform:rotate(225deg)}.console header nav .project img{position:absolute;bottom:40px;display:block;margin-bottom:10px;max-height:35px;max-width:40%}.console header nav .subtitle{padding:0 30px;display:block;font-size:12px;font-weight:300}.console header nav .links{margin-bottom:15px!important}.console header nav .links.top{border:none;padding-bottom:0;margin-bottom:5px!important}.console header nav .links.bottom{position:absolute;bottom:0;left:0;right:0;padding-bottom:0;border:none;margin-bottom:0!important;box-shadow:0 0 10px rgba(0,0,0,.1)}.console header nav .links.bottom a{border-top:solid 1px var(--config-console-nav-border);border-bottom:none}.console header nav .links .sub{display:inline-block;border:none;width:25px;height:25px;line-height:25px;border-radius:50%;padding:0;background:var(--config-color-focus);color:#fff;text-align:center;font-size:12px;margin:18px}.console header nav .links .sub i{width:auto;margin:0}.console header nav .links .sub:hover{border:none}.console header nav .links a{padding:8px 20px;border:none;display:block;color:#87a5b9;font-weight:400;border-right:solid 5px transparent;font-size:13px}.console header nav .links a i{margin-left:8px;width:22px;display:inline-block}.console header nav .links a.selected,.console header nav .links a:hover{color:#e4e4e4}.console header nav:after{content:'';display:block;position:absolute;background:#302839;height:100px;width:100%;bottom:-100px}.console>footer{width:calc(100% + 100px);margin:0 -50px;box-sizing:border-box;background:0 0;padding-left:30px;padding-right:30px}.console>footer ul{float:none;text-align:center}.console>footer ul li{float:none;display:inline-block}.console .projects{position:relative}.console .projects:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.console .projects li{float:right;margin-left:50px;margin-bottom:50px;width:270px}.console .projects li:nth-child(3n){margin-left:0}.console .dashboard{padding:20px;overflow:hidden;position:relative;z-index:1;margin-bottom:2px}.console .dashboard .chart{width:80%}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.console .dashboard .chart{width:100%}}.console .dashboard hr{margin:20px -25px;height:2px;background:var(--config-console-background)}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.console .dashboard hr{height:3px}}.console .dashboard footer{margin:-20px;padding:20px;background:#fcfeff;border:none;color:var(--config-color-link)}.console .dashboard .col{position:relative}.console .dashboard .col:last-child:after{display:none}.console .dashboard .col:after{content:"";display:block;width:2px;background:var(--config-console-background);position:absolute;top:-20px;bottom:-20px;left:24px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.console .dashboard .col:after{width:calc(100% + 40px);height:3px;position:static;margin:20px -20px}}.console .dashboard .value{color:var(--config-color-focus);vertical-align:bottom;line-height:45px}.console .dashboard .value.small{line-height:35px}.console .dashboard .value .sum{font-size:45px;line-height:45px;font-weight:700;vertical-align:bottom}.console .dashboard .value .sum.small{font-size:25px;line-height:25px}.console .dashboard .unit{font-weight:500;line-height:20px;vertical-align:bottom;font-size:16px;display:inline-block;margin-bottom:5px;margin-right:5px;color:var(--config-color-focus)}.console .dashboard .metric{color:var(--config-color-focus);font-weight:400;font-size:13px;line-height:16px}.console .dashboard .range{color:var(--config-color-fade);font-weight:400;font-size:14px;line-height:16px}.console .dashboard a{display:block;font-weight:400;font-size:14px;line-height:16px;padding:0;border:none}.console .chart-metric{width:19%}@media only screen and (min-width:551px) and (max-width:1198px),only screen and (max-width:550px){.console .chart-metric{width:100%}}.console .chart{width:100%;position:relative;height:0;padding-top:20px;padding-bottom:26%;margin-left:-2px;overflow:hidden;background-color:var(--config-color-background-fade);background-image:linear-gradient(transparent 1px,transparent 1px),linear-gradient(90deg,transparent 1px,transparent 1px),linear-gradient(var(--config-border-color) 1px,transparent 1px),linear-gradient(90deg,var(--config-border-color) 1px,transparent 1px);background-size:100px 100px,100px 100px,20px 20px,20px 20px;background-position:-2px -2px,-2px -2px,-1px -1px,-1px -1px;background-repeat:round;border:solid 1px var(--config-border-color);border-right:solid 1px transparent;border-bottom:solid 1px transparent}@media only screen and (min-width:551px) and (max-width:1198px),only screen and (max-width:550px){.console .chart{width:100%;padding-bottom:32%;float:none;margin-bottom:20px}}.console .chart canvas{position:absolute;bottom:0;display:block;height:100%;width:100%}.console .chart-notes{font-size:12px}.console .chart-notes li{line-height:20px;display:inline-block;margin-left:15px}.console .chart-notes li::before{display:inline-block;content:'';width:14px;height:14px;background:var(--config-color-normal);border-radius:50%;margin-left:8px;vertical-align:middle}.console .chart-notes li.blue,.console .chart-notes li:nth-child(1){color:#29b5d9}.console .chart-notes li.blue::before,.console .chart-notes li:nth-child(1)::before{background:#29b5d9}.console .chart-notes li.green,.console .chart-notes li:nth-child(2){color:#4eb55b}.console .chart-notes li.green::before,.console .chart-notes li:nth-child(2)::before{background:#4eb55b}.console .chart-notes li.orange,.console .chart-notes li:nth-child(3){color:#ec9323}.console .chart-notes li.orange::before,.console .chart-notes li:nth-child(3)::before{background:#ec9323}.console .chart-notes li.red,.console .chart-notes li:nth-child(4){color:#dc3232}.console .chart-notes li.red::before,.console .chart-notes li:nth-child(4)::before{background:#dc3232}.console .community a{padding:0 10px;display:inline-block}.console .link-list li{margin-bottom:15px}.console .link-list i{display:inline-block;width:30px;height:30px;line-height:30px;text-align:center;background:var(--config-color-fade);color:var(--config-color-fade-super);border-radius:50%;margin-left:15px}.console .link-list i.fade{background:0 0;color:var(--config-color-fade)}.console .provider{width:50px;height:50px;background:#f5f5f5;color:#868686;line-height:50px;text-align:center;font-size:25px;border-radius:50%}.console .provider.facebook{color:#fff;background:#3b5998}.console .provider.twitter{color:#fff;background:#55beff}.console .provider.telegram{color:#fff;background:#3ba9e1}.console .provider.github{color:#fff;background:#24292e}.console .provider.whatsapp{color:#fff;background:#25d366}.console .provider.linkedin{color:#fff;background:#1074af}.console .provider.microsoft{color:#fff;background:#137ad4}.console .provider.google{color:#fff;background:#4489f1}.console .provider.bitbucket{color:#fff;background:#2a88fb}.console .provider.gitlab{color:#faa238;background:#30353e}.console .provider.instagram{color:#fff;background:radial-gradient(circle at 30% 107%,#fdf497 0,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)}.console .premium{z-index:3;margin-top:320px}.console .premium .message{height:190px;overflow:hidden;position:absolute;top:-280px}.console .premium:after{content:'';position:absolute;top:0;left:-20px;right:-20px;bottom:-20px;background:var(--config-color-background);opacity:.7;z-index:300}.console .app-section{height:90px}.console .confirm{background:var(--config-color-link);color:#fff;border-radius:25px;padding:12px;line-height:28px;text-align:center}.console .confirm .action{font-weight:500;cursor:pointer}.console .platforms{overflow:hidden}.console .platforms .box{overflow:hidden}.console .platforms .box img{width:50px;margin:0 auto;margin-bottom:20px}.console .platforms .box .cover{margin:-30px -30px 30px -30px;padding:30px}.console .platforms .box .cover.android{background:#a4ca24}.console .platforms .box .cover.android h1{color:#fff;font-size:18px;margin-top:20px}.console .platforms .col{text-align:center;line-height:30px}.console .platforms a{display:block;margin:-20px;padding:20px}.console .platforms a:hover{background:#fbfeff}.console .platforms img{display:block;margin:0 30px;width:calc(100% - 60px);border-radius:50%;margin-bottom:20px}.console .document-nav{display:none;position:sticky;top:90px}@media only screen and (min-width:1380px){.console .document-nav{display:block}}.console .document-nav ul{position:absolute;width:200px;right:-260px}.console .document-nav ul li{margin-bottom:20px}.console .document-nav ul li .selected{font-weight:500}.console .scroll-to{display:none}@media only screen and (min-width:1199px){.console .logo .top{display:none!important}}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.console>header{width:calc(100% - 30px)!important;margin:0 -30px;padding:15px}.console>header nav{width:100%;height:70px;overflow:hidden}.console>header nav.close{background:0 0}.console>header nav.close .logo .nav{display:none!important}.console>header nav.open{height:100%}.console>header nav.open .logo .top{display:none!important}.console>header nav.open .bottom{display:block!important}.console>header nav.open button{color:#87a5b9}.console>header nav button{margin:9px;background:0 0;color:var(--config-color-normal)}.console>header nav button:focus,.console>header nav button:hover{background:0 0}.console>header nav .logo{display:block!important;position:absolute;top:0;left:50%;margin:auto;transform:translateX(-50%)}.console>header nav .bottom{display:none!important}.console>footer{width:auto;margin:50px -30px 0 -30px!important;padding:0 30px 30px 30px}.console body{height:"calc(100% - 70px)"!important;width:calc(100% - 60px)!important;padding:70px 30px 0 30px!important}.console .cover{padding:25px 30px;margin:0 -30px}}@media only screen and (max-width:550px){.console body{height:"calc(100% - 70px)"!important;width:calc(100% - 40px)!important;padding:70px 20px 0 20px!important}.console .cover{padding:20px 20px;margin:0 -20px}.console>header{margin:0 -20px}.console>header .list{width:175px;font-size:14px}.console>footer{margin:50px -20px 0 -20px!important;padding:0 20px 20px 20px}}.dev-feature{display:none}.prod-feature{display:none}.development .dev-feature{display:block;opacity:.6!important;outline:solid #ff0 3px;outline-offset:3px}.development .dev-feature.dev-inline{display:inline-block}.development .prod-feature{display:none}.production .dev-feature{display:none}.production .prod-feature{display:block}.search{opacity:1!important}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.search button{margin-top:20px}}html.home body{padding:0 50px;color:var(--config-color-normal)}html.home .logo a{display:block}html.home .logo a:hover{opacity:.8}html.home .logo img{max-height:35px;width:198px;margin:45px auto 25px auto}html.home footer{background:0 0;text-align:center}html.home main{min-height:400px}.alerts ul{width:100%;visibility:hidden;position:fixed;padding:0;left:0;right:0;color:var(--config-color-normal);z-index:1001;margin:0 auto;bottom:15px;max-width:560px}.alerts ul li{margin:10px 0 0 0;padding:0}.alerts ul li div.message{position:relative;padding:12px 35px;margin:0 auto;list-style:none;background:var(--config-color-background-dark);text-align:center;font-size:14px;border-radius:10px;line-height:16px;min-height:16px;box-shadow:0 0 10px rgba(0,0,0,.05);opacity:.95}.alerts ul li div.message a,.alerts ul li div.message span{font-weight:600}.alerts ul li div.message a{border-bottom:dotted 1px var(--config-color-normal)}.alerts ul li div.message i{cursor:pointer;position:absolute;font-size:14px;line-height:20px;top:9px;right:9px;color:var(--config-color-background-dark);background:var(--config-color-normal);width:22px;height:22px;border-radius:50%}.alerts ul li div.message.error{color:#fff!important;background:var(--config-color-danger)!important}.alerts ul li div.message.error a{color:#fff!important;border-bottom:dotted 1px #fff!important}.alerts ul li div.message.error i{color:var(--config-color-danger);background:#fff}.alerts ul li div.message.success{color:#fff!important;background:var(--config-color-success)!important}.alerts ul li div.message.success a{color:#fff;border-bottom:dotted 1px #fff}.alerts ul li div.message.success i{color:var(--config-color-success);background:#fff}.alerts ul li div.message.warning{color:var(--config-color-normal)!important;background:var(--config-color-warning)!important}.alerts ul li div.message.warning a{color:var(--config-color-normal)!important;border-bottom:dotted 1px var(--config-color-normal)!important}.alerts ul li div.message.warning i{color:#fff;background:var(--config-color-normal)!important}.alerts ul li div.message.open{display:block}.alerts ul li div.message.close{display:none}.alerts .cookie-alert{background:var(--config-color-focus-fade)!important;color:var(--config-color-focus)}.alerts .cookie-alert a{color:var(--config-color-focus);font-weight:400;border-bottom:dotted 1px var(--config-color-focus)!important}.alerts .cookie-alert i{color:var(--config-color-focus-fade)!important;background:var(--config-color-focus)!important}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.alerts ul{top:auto;bottom:0;max-width:100%;right:0}.alerts ul li{margin:5px 0 0 0}.alerts ul li div.message{border-radius:0}}.show-nav .alerts ul{right:220px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.show-nav .alerts ul{right:0}}article{overflow-wrap:break-word;word-wrap:break-word}article h1{font-size:36px}article h2{font-size:24px}article h3{font-size:20px}article h4{font-size:20px}article h5{font-size:18px}article h6{font-size:16px}article h1,article h2,article h3,article h4,article h5,article h6{margin-top:30px!important;margin-bottom:30px!important}article p{line-height:32px;font-size:16px}article .update{display:block;margin-top:50px!important}article table{width:100%;margin:0;margin-bottom:30px!important;border-radius:0;border-bottom:solid 1px var(--config-border-color)}article table thead td{font-weight:500;padding:5px 15px}article table td,article table th{padding:15px;height:auto}article table td:first-child,article table th:first-child{padding-right:10px}article table td:last-child,article table th:last-child{padding-left:10px}article table td p,article table th p{font-size:inherit;line-height:inherit}article table td p:last-child,article table th p:last-child{margin:0}.avatar-container{position:relative}.avatar-container .corner{position:absolute;bottom:-3px;left:-3px}.avatar{width:60px;height:60px;border-radius:50%;background:var(--config-color-background-focus);display:inline-block;overflow:hidden;box-shadow:0 0 6px rgba(0,0,0,.09);position:relative;z-index:1;opacity:1!important}.avatar:before{content:"";position:absolute;width:100%;height:100%;z-index:0;background:var(--config-color-background-focus)}.avatar.inline{display:inline-block;vertical-align:middle}.avatar.trans{background:0 0}.avatar .no-shadow{box-shadow:none}.avatar.xs{width:30px;height:30px}.avatar.xxs{width:20px;height:20px}.avatar.small{width:50px;height:50px}.avatar.big{width:100px;height:100px}.avatar.huge{width:150px;height:150px}.box{position:relative;background:var(--config-color-background-fade);border-radius:10px;box-shadow:0 0 3px rgba(0,0,0,.05);padding:30px;display:block;border-bottom:none}.box.padding-tiny{padding:5px}.box.padding-xs{padding:10px}.box.padding-small{padding:15px}.box.y-scroll{overflow-y:auto}.box.danger{background:var(--config-color-danger);color:#fff}.box.danger .box{color:var(--config-color-normal);background:var(--config-color-background-fade)}.box.danger>.button,.box.danger>button{background:#fff;color:var(--config-color-danger)}.box.note{background:var(--config-note-background)}.box.focus{background:var(--config-color-focus);color:var(--config-color-background-fade)}.box.focus .button,.box.focus button{background:var(--config-color-background-fade);color:var(--config-color-focus)}.box.line{background:0 0;border:solid 1px var(--config-color-background-dark);box-shadow:none}.box.warning{background:var(--config-color-warning);color:#2d2d2d}.box.warning .button,.box.warning button{background:rgba(45,45,45,.8);color:var(--config-color-success)}.box .tabs{border-bottom:solid 1px var(--config-border-color);margin:0 -30px;padding:0 30px!important}.box>footer{margin:0 -30px -30px -30px;padding:15px 30px;background:var(--config-color-background-fade);border:solid 1px var(--config-border-color);border-radius:0 0 10px 10px}.box hr{height:1px;background:var(--config-console-background);border:none;margin:30px -30px}.box .label{position:absolute;top:10px;z-index:2;left:10px}.box.fade-bottom{position:relative;overflow:hidden}.box.fade-bottom:after{content:"";position:absolute;display:block;bottom:15px;width:100%;background:#000;background:linear-gradient(180deg,rgba(0,0,0,0) 0,var(--config-color-background-fade) 80%);height:100px;margin:0 -15px}.box .header{position:static;height:40px;padding:20px 30px 20px 30px;margin-bottom:30px;margin:-30px -30px 20px -30px;background:var(--config-color-background-fade);border-bottom:solid 1px #efefef}.box ul.numbers>li{position:relative;margin-right:30px;margin-left:50px}.box ul.numbers>li hr{margin-right:-60px;margin-left:-80px}.box ul.numbers>li .settings{position:absolute;top:3px;left:-50px}.box ul.numbers>li::after{display:block;width:25px;height:25px;line-height:25px;font-size:13px;font-weight:500;border-radius:50%;background:var(--config-color-focus);color:var(--config-color-background);counter-increment:section;content:counter(section);text-align:center;position:absolute;top:3px;right:-45px}.box .scroll{margin:0 -30px;overflow-y:scroll}.box .scroll table{width:100%;margin:0}.box ul.sortable{counter-reset:section}.box ul.sortable>li [data-move-down].round,.box ul.sortable>li [data-move-up].round,.box ul.sortable>li [data-remove].round{background:var(--config-color-focus);color:var(--config-color-background-fade);width:25px;height:25px;line-height:25px;display:inline-block;text-align:center;padding:0;margin-left:5px}.box ul.sortable>li [data-move-down].round:disabled,.box ul.sortable>li [data-move-up].round:disabled,.box ul.sortable>li [data-remove].round:disabled{display:none}.box ul.sortable>li:first-child [data-move-up]{display:none}.box ul.sortable>li:first-child [data-move-up]:disabled{display:inline-block;background:var(--config-color-background)}.box ul.sortable>li:last-child [data-move-down]{display:none}.box ul.sortable>li:last-child [data-move-down]:disabled{display:inline-block;background:var(--config-color-background)}.box .toggle{position:relative;border-top:1px solid var(--config-console-background);border-bottom:1px solid var(--config-console-background);margin:0 -30px;padding:30px 30px 0 30px;height:65px;overflow:hidden}.box .toggle.list{border-bottom:none}.box .toggle.sorts button.ls-ui-open{width:calc(100% - 100px)}.box .toggle button.ls-ui-open{left:0;position:absolute;top:0;width:100%;height:95px;background:0 0;opacity:.5;border-radius:0}.box .toggle .icon-minus,.box .toggle .icon-up-open{display:none}.box .toggle .content{display:none}.box .toggle.open{height:auto}.box .toggle.open .icon-minus,.box .toggle.open .icon-up-open{display:block}.box .toggle.open .icon-down-open,.box .toggle.open .icon-plus{display:none}.box .toggle.open .content{display:block}.box .list li{border-bottom:solid 2px var(--config-border-color);margin:0 -30px 30px -30px;padding:0 30px 30px 30px}.box .list li:last-child{padding-bottom:0;margin-bottom:0;border-bottom:none}@media only screen and (max-width:550px){.box .list li .actions{float:none}}.box .list li .avatar{display:block}.box .list li .avatar.inline{display:inline-block}.box.new{text-align:center}.box.new i{font-size:80px;line-height:80px;font-family:Poppins,sans-serif;font-style:normal;font-weight:300}.box.new b{margin-top:20px;display:block}.box .info{margin:0 -30px;padding:20px 30px;background:var(--config-modal-note-background);color:var(--config-modal-note-color);border-top:solid 1px var(--config-modal-note-border);border-bottom:solid 1px var(--config-modal-note-border)}.box .info hr{background:var(--config-modal-note-border)!important}.box .table-wrap{margin:0 -30px;overflow-y:scroll}.box .table-wrap table{margin:0}a.box{border-right:none;border-left:none}a.box:hover{box-shadow:0 0 1px rgba(0,0,0,.2);opacity:.7}.box-asidex{padding-left:25px!important;padding-right:70px;left:0;background:#f9f9f9;border-radius:0 10px 10px 0;height:calc(100% - 30px);position:absolute;padding-top:30px}.box-asidex:after{content:"";display:block;position:absolute;height:100%;width:51px;background:#fff;top:0;bottom:0;right:-6px}.cover{background:var(--config-color-focus-fade);padding:30px 50px;margin:0 -50px;position:relative;border-bottom:solid 1px var(--config-border-fade)}.cover .title,.cover h1,.cover h2,.cover h3,.cover h4{color:var(--config-color-focus);font-weight:600;margin-bottom:50px!important;font-size:28px;line-height:42px}.cover .title span,.cover h1 span,.cover h2 span,.cover h3 span,.cover h4 span{font-weight:600}.cover i:before{margin:0!important}.cover p{color:var(--config-color-fade)}.cover .button{color:#fff}.cover .link,.cover a{color:var(--config-color-focus);border-left:none;border-right:none;cursor:pointer}.cover .link:hover,.cover a:hover{border-bottom-color:var(--config-color-focus)}.console .database .row .col{height:452px}.console .database .row .col:after{width:2px;left:20px}.console .database hr{margin:0 -20px;background:var(--config-color-background);height:1px}.console .database h3{font-size:13px;line-height:20px;height:20px;background-color:var(--config-color-fade-super);margin:-20px -20px 0 -20px;padding:10px 20px;border-bottom:solid 1px var(--config-color-background);font-weight:600}.console .database .empty{height:162px;font-size:12px;text-align:center;margin:50px 0}.console .database .empty h4{font-size:13px;font-weight:600;line-height:120px}.console .database .search{background-color:var(--config-color-fade-super);margin:0 -20px 0 -20px;padding:10px 15px}.console .database .search input{height:40px;background-color:#fff;border-radius:25px;padding-top:0;padding-bottom:0}.console .database .code{height:411px;background:var(--config-color-fade-super);margin:0 -20px -20px -20px;padding:20px;width:calc(100% - 10px)}.console .database .code .ide{overflow:scroll;height:451px;margin:-20px;box-shadow:none;border-radius:0}.console .database .paging{background:var(--config-color-fade-super);margin:0 -20px -20px -20px;padding:20px}.console .database .button{margin:0 -20px;padding:0 20px!important;text-align:inherit;color:var(--config-color-focus);width:100%;font-size:15px;line-height:55px;box-sizing:content-box}.console .database .button i{margin-left:8px}.console .database .button:hover{border:none;background:var(--config-color-focus-fade)}.console .database .items{margin:0 -20px;height:262px;overflow-x:hidden;overflow-y:scroll}.console .database .items form{opacity:0;position:relative}.console .database .items form button{position:absolute;top:0;bottom:0;right:0;left:0;width:100%;height:45px;border-radius:0;cursor:pointer}.console .database .items li{padding:0;margin:0 0;line-height:45px;font-size:15px;padding-right:50px;padding-left:30px;position:relative}.console .database .items li i{position:absolute;display:none;left:10px}.console .database .items li .name{display:inline-block;width:100%;height:28px}.console .database .items li.selected,.console .database .items li:hover{background:#f5f5f5}.console .database .items li.selected i,.console .database .items li:hover i{display:block}.console .database .items li:last-child{border-bottom:none}body>footer{color:var(--config-color-fade);line-height:40px;margin:0 -50px;padding:12px 50px;font-size:13px;width:100%;background:#f1f1f1;position:relative;margin-top:80px!important}body>footer:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}body>footer .logo img{height:22px;padding-top:12px}body>footer a{color:var(--config-color-fade);font-size:13px}body>footer a:hover{border-bottom-color:var(--config-color-fade)}body>footer ul:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}body>footer ul li{font-size:13px;float:right;margin-left:20px!important}body>footer .copyright{padding-right:2px}[data-ls-if]{display:none}[data-service]{opacity:0}.load-service-start{opacity:0}.load-service-end{opacity:1;transition:opacity .5s ease-out;-moz-transition:opacity .5s ease-out;-webkit-transition:opacity .5s ease-out;-o-transition:opacity .5s ease-out}.load-screen{z-index:100000;position:fixed;height:100%;width:100%;background-color:var(--config-color-background-focus);top:0;right:0}.load-screen.loaded{transition:opacity 1s ease-in-out,top 1s .7s;opacity:0;top:-100%}.load-screen .animation{position:absolute;top:45%;left:50%;transform:translate(-50%,-50%) translateZ(1px);width:140px;height:140px}.load-screen .animation div{box-sizing:border-box;display:block;position:absolute;width:124px;height:124px;margin:10px;border:10px solid var(--config-color-focus);border-radius:50%;animation:animation 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:var(--config-color-focus) transparent transparent transparent}.load-screen .animation div:nth-child(1){animation-delay:-.45s}.load-screen .animation div:nth-child(2){animation-delay:-.3s}.load-screen .animation div:nth-child(3){animation-delay:-.15s}@keyframes animation{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.load-screen img{position:absolute;height:20px;bottom:60px;left:50%;transform:translate(-50%,-50%)}.modal-open .modal-bg,.modal-open body .modal-bg{position:fixed;content:'';display:block;width:100%;height:100%;left:0;right:0;top:0;bottom:0;background:#0c0c0c;opacity:.75;z-index:5}.modal{overflow:auto;display:none;position:fixed;transform:translate3d(0,0,0);width:100%;max-height:90%;max-width:640px;background:var(--config-color-background-fade);z-index:1000;box-shadow:0 0 4px rgba(0,0,0,.25);padding:30px;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:10px;box-sizing:border-box;text-align:right;white-space:initial;line-height:normal}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.modal{width:calc(100% - 20px)}}.modal.full{max-width:none;max-height:none;height:100%;border-radius:0;padding:80px 120px}.modal.full h1{font-weight:700}.modal.padding-tiny{padding:5px}.modal.padding-xs{padding:10px}.modal.padding-small{padding:15px}.modal.height-tiny>form{height:100px}.modal.height-small>form{height:220px}.modal.width-small{max-width:400px}.modal.width-medium{max-width:500px}.modal.width-large{max-width:800px}.modal.open{display:block}.modalbutton.close{display:none}.modal.fill{height:95%;max-height:95%;max-width:75%}.modal h1,.modal h2{margin-bottom:25px;margin-top:0;font-size:20px;text-align:right}.modal h1,.modal h2,.modal h3,.modal h4,.modal h5,.modal h6{color:inherit!important;line-height:35px}.modal .main,.modal>form{position:relative;border-top:solid 1px var(--config-border-color);padding:30px 30px 0 30px;margin:0 -30px}.modal .main.strip,.modal>form.strip{border:none;padding:0;margin:0}.modal .separator{margin:20px -30px}.modal .bullets{padding-right:40px}.modal .bullets li{margin-bottom:30px!important}.modal .bullets li:before{position:absolute}.modal .info{margin:0 -30px;padding:20px 30px;background:var(--config-modal-note-background);color:var(--config-modal-note-color);border-top:solid 1px var(--config-modal-note-border);border-bottom:solid 1px var(--config-modal-note-border)}.modal .ide.strech{box-shadow:none;border-radius:0;margin:0 -30px}.modal .ide pre{overflow:auto}.modal button.close{width:30px;height:30px;line-height:30px;padding:0;margin:0;background:var(--config-color-normal);color:var(--config-color-background-fade);border-radius:50%}.modal .paging form{padding:0;margin:0;border-top:none}.modal.sticky-footer form footer{margin:-30px}.modal.sticky-footer footer{position:sticky;bottom:-30px;background:var(--config-color-background-fade-super);height:50px;z-index:1;padding:30px;box-shadow:0 0 1px rgba(0,0,0,.15)}.modal.sticky-footer footer form{display:inline-block}[data-views-current="0"] .scroll-to,[data-views-current="1"] .scroll-to{opacity:0!important}.scroll-to-bottom .scroll-to,.scroll-to-top .scroll-to{opacity:1}.scroll-to{opacity:0;display:block;width:40px;height:40px;line-height:40px;border-radius:50%;position:fixed;transform:translateZ(0);margin:30px;padding:0;bottom:0;font-size:18px;z-index:100000;transition:opacity .15s ease-in-out;left:0}.phases{list-style:none;margin:0;padding:0;position:relative}.phases li{display:none}.phases li li{display:block}.phases li.selected{display:block}.phases .number{display:none}.phases h2,.phases h3,.phases h4,.phases h5,.phases h6{margin:0 0 30px 0;text-align:inherit}.container{position:relative}.container .tabs{height:55px;line-height:55px;list-style:none;padding:0;margin-bottom:50px!important;margin-top:-55px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.container .tabs:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.container .tabs .selected{font-weight:400;color:var(--config-color-focus);position:relative;opacity:1}.container .tabs .selected:after{content:"";display:block;height:2px;background:var(--config-color-focus);width:calc(100% + 6px);margin:0 -3px;position:absolute;bottom:0;border-radius:2px}.container .tabs .number{display:none}.container .tabs li{float:right;margin-left:50px;color:var(--config-color-focus);opacity:.9;cursor:pointer}.container .tabs li:focus{outline:0}@media only screen and (max-width:550px){.container .tabs li{margin-left:25px}}.container .icon{display:none}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.container .tabs{width:auto;overflow-x:scroll;overflow-y:hidden;white-space:nowrap}.container .tabs li{display:inline-block;float:none}}.ide{background-color:var(--config-prism-background);overflow:hidden;position:relative;z-index:1;box-shadow:0 2px 4px 0 rgba(50,50,93,.3);border-radius:10px;margin-bottom:30px}.ide *{font-family:'Source Code Pro',monospace}.ide[data-lang]::after{content:attr(data-lang-label);display:inline-block;background:#fff;color:#000;position:absolute;top:15px;padding:5px 10px;border-radius:15px;font-size:10px;right:10px;opacity:.95}.ide[data-lang=bash]::after{background:var(--config-language-bash);color:var(--config-language-bash-contrast)}.ide[data-lang=javascript]::after{background:var(--config-language-javascript);color:var(--config-language-javascript-contrast)}.ide[data-lang=web]::after{background:var(--config-language-web);color:var(--config-language-web-contrast)}.ide[data-lang=html]::after{background:var(--config-language-html);color:var(--config-language-html-contrast)}.ide[data-lang=php]::after{background:var(--config-language-php);color:var(--config-language-php-contrast)}.ide[data-lang=nodejs]::after{background:var(--config-language-nodejs);color:var(--config-language-nodejs-contrast)}.ide[data-lang=ruby]::after{background:var(--config-language-ruby);color:var(--config-language-ruby-contrast)}.ide[data-lang=python]::after{background:var(--config-language-python);color:var(--config-language-python-contrast)}.ide[data-lang=go]::after{background:var(--config-language-go);color:var(--config-language-go-contrast)}.ide[data-lang=dart]::after{background:var(--config-language-dart);color:var(--config-language-dart-contrast)}.ide[data-lang=flutter]::after{background:var(--config-language-flutter);color:var(--config-language-flutter-contrast)}.ide[data-lang=yaml]::after{background:var(--config-language-yaml);color:var(--config-language-yaml-contrast)}.ide .tag{color:inherit!important;background:0 0!important;padding:inherit!important;font-size:inherit!important;line-height:14px}.ide .copy{cursor:pointer;content:attr(data-lang);display:inline-block;background:#fff;color:#000;position:absolute;transform:translateX(-50%);bottom:-20px;padding:5px 10px;border-radius:15px;font-size:10px;font-style:normal;right:50%;opacity:0;transition:bottom .3s,opacity .3s;line-height:normal;font-family:Poppins,sans-serif}.ide .copy::before{padding-left:5px}.ide:hover .copy{transition:bottom .3s,opacity .3s;opacity:.9;bottom:16px}.ide pre{-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;color:#e6ebf1;font-weight:400;line-height:20px;font-size:13px;margin:0;padding:20px;padding-left:60px}.ide.light{box-shadow:0 2px 4px 0 rgba(50,50,93,.1);background-color:#fff}.ide.light pre{color:#414770}.ide.light .token.cdata,.ide.light .token.comment,.ide.light .token.doctype,.ide.light .token.prolog{color:#91a2b0}.ide.light .token.attr-name,.ide.light .token.builtin,.ide.light .token.char,.ide.light .token.inserted,.ide.light .token.selector,.ide.light .token.string{color:#149570}.ide.light .token.punctuation{color:#414770}.ide.light .language-css .token.string,.ide.light .style .token.string,.ide.light .token.entity,.ide.light .token.operator,.ide.light .token.url,.ide.light .token.variable{color:#414770}.ide.light .line-numbers .line-numbers-rows{background:#f2feef}.ide.light .line-numbers-rows>span:before{color:#5dc79e}.ide.light .token.keyword{color:#6772e4;font-weight:500}code[class*=language-],pre[class*=language-]{text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4}pre[class*=language-]{overflow:auto}:not(pre)>code[class*=language-]{padding:.1em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#6b7c93}.token.punctuation{color:#f8f8f2}.namespace{opacity:.7}.token.constant,.token.deleted,.token.property,.token.symbol,.token.tag{color:#f92672}.token.boolean,.token.number{color:#f79a59}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#3ecf8e}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.class-name,.token.function{color:#45b2e8}.token.keyword{color:#7795f8}.token.important,.token.regex{color:#fd971f}.token.italic{font-style:italic}.token.entity{cursor:help}pre[class*=language-].line-numbers{position:relative;padding-left:60px;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{background:var(--config-prism-numbers);position:absolute;pointer-events:none;top:-20px;bottom:-21px;padding:20px 0;font-size:100%;left:-60px;width:40px;letter-spacing:-1px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{padding-left:5px;pointer-events:none;display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#636365;display:block;padding-right:.8em;text-align:right}html{padding:0;margin:0;direction:rtl}body{margin:0;background:var(--config-console-background) no-repeat fixed;min-width:300px}ul{padding:0;margin:0}ul li{margin:0;list-style:none}.icon-left-open:before{content:'\e814'!important}.icon-right-open:before{content:'\e813'!important}.icon-right-dir:before{content:'\e84e'!important}.icon-left-dir:before{content:'\e84d'!important}.icon-link-ext:before{-moz-transform:scaleX(-1);-o-transform:scaleX(-1);-webkit-transform:scaleX(-1);transform:scaleX(-1)}.icon-article-alt:before{-moz-transform:scaleX(-1);-o-transform:scaleX(-1);-webkit-transform:scaleX(-1);transform:scaleX(-1)}.copy{border-radius:10px 0 0 10px!important} \ No newline at end of file +.pull-start{float:right}.pull-end{float:left}img[src=""]{visibility:hidden;display:inline-block}:root{--config-width:910px;--config-width-xxl:1000px;--config-width-xl:910px;--config-width-large:700px;--config-width-medium:550px;--config-width-small:320px;--config-color-link:#1e849e;--config-color-background:#eceff1;--config-color-background-dark:#dfe2e4;--config-color-background-fade:#ffffff;--config-color-background-fade-super:#fdfdfd;--config-color-background-focus:#f5f5f5;--config-color-background-input:#ffffff;--config-color-placeholder:#868686;--config-color-tooltip-text:#dce8f5;--config-color-tooltip-background:#333333;--config-color-focus:#f02e65;--config-color-focus-fade:#fef8fa;--config-color-focus-hover:#ff729b;--config-color-focus-glow:#fce5ec;--config-color-focus-dark:#c52653;--config-color-normal:#40404c;--config-color-dark:#313131;--config-color-fade:#8f8f8f;--config-color-fade-light:#e2e2e2;--config-color-fade-super:#f1f3f5;--config-color-danger:#f53d3d;--config-color-success:#1bbf61;--config-color-warning:#fffbdd;--config-color-info:#386fd2;--config-border-color:#f3f3f3;--config-border-fade:#e0e3e4;--config-border-radius:10px;--config-prism-background:#373738;--config-prism-numbers:#39393c;--config-note-background:#f1fbff;--config-note-border:#5bceff;--config-warning-background:#fdf7d9;--config-warning-border:#f8e380;--config-social-twitter:#1da1f2;--config-social-github:#000000;--config-social-discord:#7189dc;--config-social-facebook:#4070b4;--config-language-bash:#2b2626;--config-language-bash-contrast:#fff;--config-language-javascript:#fff054;--config-language-javascript-contrast:#333232;--config-language-web:#fff054;--config-language-web-contrast:#333232;--config-language-html:#ff895b;--config-language-html-contrast:#ffffff;--config-language-yaml:#ca3333;--config-language-yaml-contrast:#ffffff;--config-language-php:#6182bb;--config-language-php-contrast:#ffffff;--config-language-nodejs:#8cc500;--config-language-nodejs-contrast:#ffffff;--config-language-ruby:#fc3f48;--config-language-ruby-contrast:#ffffff;--config-language-python:#3873a2;--config-language-python-contrast:#ffffff;--config-language-go:#00add8;--config-language-go-contrast:#ffffff;--config-language-dart:#035698;--config-language-dart-contrast:#ffffff;--config-language-flutter:#035698;--config-language-flutter-contrast:#ffffff;--config-language-android:#a4c439;--config-language-android-contrast:#ffffff;--config-language-kotlin:#766DB2;--config-language-kotlin-contrast:#ffffff;--config-language-java:#0074bd;--config-language-java-contrast:#ffffff;--config-modal-note-background:#f5fbff;--config-modal-note-border:#eaf2f7;--config-modal-note-color:#3b5d73;--config-switch-background:#e2e2e2;--config-console-background:#eceff1;--config-console-nav-start:#143650;--config-console-nav-end:#302839;--config-console-nav-border:#2a253a;--config-console-nav-switch-background:#ececec;--config-console-nav-switch-color:#868686;--config-console-nav-switch-arrow:url("data:image/svg+xml;utf8,")}:root .theme-dark{--config-color-background:#061F2F;--config-color-background-dark:#262d50;--config-color-background-fade:#1c223a;--config-color-background-fade-super:#1a1f35;--config-color-background-focus:#1a1f35;--config-color-background-input:#dce8f5;--config-color-tooltip-text:#061F2F;--config-color-tooltip-background:#dce8f5;--config-color-link:#4caedb;--config-color-placeholder:#9ea1af;--config-color-focus:#c7d8eb;--config-color-focus-fade:#1e233e;--config-color-focus-hover:#d3deea;--config-color-focus-glow:#d3deea;--config-color-focus-dark:#657586;--config-color-normal:#c7d8eb;--config-color-dark:#c7d8eb;--config-color-fade:#bec3e0;--config-color-fade-light:#181818;--config-color-fade-super:#262D50;--config-color-danger:#d84a4a;--config-color-success:#34b86d;--config-color-warning:#e0d56d;--config-color-info:#386fd2;--config-border-color:#262D50;--config-border-fade:#19203a;--config-prism-background:#1F253F;--config-prism-numbers:#1F253F;--config-note-background:#171e33;--config-note-border:#262D50;--config-warning-background:#1F253F;--config-warning-border:#262D50;--config-social-twitter:var(--config-color-normal);--config-social-github:var(--config-color-normal);--config-social-discord:var(--config-color-normal);--config-social-facebook:var(--config-color-normal);--config-language-bash:var(--config-color-normal);--config-language-bash-contrast:var(--config-color-background);--config-language-javascript:var(--config-color-normal);--config-language-javascript-contrast:var(--config-color-background);--config-language-web:var(--config-color-normal);--config-language-web-contrast:var(--config-color-background);--config-language-yaml:var(--config-color-normal);--config-language-yaml-contrast:var(--config-color-background);--config-language-html:var(--config-color-normal);--config-language-html-contrast:var(--config-color-background);--config-language-php:var(--config-color-normal);--config-language-php-contrast:var(--config-color-background);--config-language-nodejs:var(--config-color-normal);--config-language-nodejs-contrast:var(--config-color-background);--config-language-ruby:var(--config-color-normal);--config-language-ruby-contrast:var(--config-color-background);--config-language-python:var(--config-color-normal);--config-language-python-contrast:var(--config-color-background);--config-language-go:var(--config-color-normal);--config-language-go-contrast:var(--config-color-background);--config-language-dart:var(--config-color-normal);--config-language-dart-contrast:var(--config-color-background);--config-language-flutter:var(--config-color-normal);--config-language-flutter-contrast:var(--config-color-background);--config-language-android:var(--config-color-normal);--config-language-android-contrast:var(--config-color-background);--config-language-kotlin:var(--config-color-normal);--config-language-kotlin-contrast:var(--config-color-background);--config-language-java:var(--config-color-normal);--config-language-java-contrast:var(--config-color-background);--config-modal-note-background:#15192b;--config-modal-note-border:#161b31;--config-modal-note-color:var(--config-color-normal);--config-switch-background:var(--config-color-normal);--config-console-background:#20263f;--config-console-nav-start:#1c2139;--config-console-nav-end:#151929;--config-console-nav-border:#171b30;--config-console-nav-switch-background:var(--config-color-focus);--config-console-nav-switch-color:var(--config-color-background);--config-console-nav-switch-arrow:url("data:image/svg+xml;utf8,")}.theme-light .force-light{display:block!important}.theme-dark .force-dark{display:block!important}.force-dark{display:none!important}.force-light{display:none!important}@font-face{font-family:Poppins;font-style:normal;font-weight:100;src:url(/fonts/poppins-v9-latin-100.eot);src:local('Poppins Thin'),local('Poppins-Thin'),url(/fonts/poppins-v9-latin-100.eot?#iefix) format('embedded-opentype'),url(/fonts/poppins-v9-latin-100.woff2) format('woff2'),url(/fonts/poppins-v9-latin-100.woff) format('woff'),url(/fonts/poppins-v9-latin-100.ttf) format('truetype'),url(/fonts/poppins-v9-latin-100.svg#Poppins) format('svg')}@font-face{font-family:Poppins;font-style:normal;font-weight:300;src:url(/fonts/poppins-v9-latin-300.eot);src:local('Poppins Light'),local('Poppins-Light'),url(/fonts/poppins-v9-latin-300.eot?#iefix) format('embedded-opentype'),url(/fonts/poppins-v9-latin-300.woff2) format('woff2'),url(/fonts/poppins-v9-latin-300.woff) format('woff'),url(/fonts/poppins-v9-latin-300.ttf) format('truetype'),url(/fonts/poppins-v9-latin-300.svg#Poppins) format('svg')}@font-face{font-family:Poppins;font-style:normal;font-weight:400;src:url(/fonts/poppins-v9-latin-regular.eot);src:local('Poppins Regular'),local('Poppins-Regular'),url(/fonts/poppins-v9-latin-regular.eot?#iefix) format('embedded-opentype'),url(/fonts/poppins-v9-latin-regular.woff2) format('woff2'),url(/fonts/poppins-v9-latin-regular.woff) format('woff'),url(/fonts/poppins-v9-latin-regular.ttf) format('truetype'),url(/fonts/poppins-v9-latin-regular.svg#Poppins) format('svg')}@font-face{font-family:Poppins;font-style:normal;font-weight:500;src:url(/fonts/poppins-v9-latin-500.eot);src:local('Poppins Medium'),local('Poppins-Medium'),url(/fonts/poppins-v9-latin-500.eot?#iefix) format('embedded-opentype'),url(/fonts/poppins-v9-latin-500.woff2) format('woff2'),url(/fonts/poppins-v9-latin-500.woff) format('woff'),url(/fonts/poppins-v9-latin-500.ttf) format('truetype'),url(/fonts/poppins-v9-latin-500.svg#Poppins) format('svg')}@font-face{font-family:Poppins;font-style:normal;font-weight:600;src:url(/fonts/poppins-v9-latin-600.eot);src:local('Poppins SemiBold'),local('Poppins-SemiBold'),url(/fonts/poppins-v9-latin-600.eot?#iefix) format('embedded-opentype'),url(/fonts/poppins-v9-latin-600.woff2) format('woff2'),url(/fonts/poppins-v9-latin-600.woff) format('woff'),url(/fonts/poppins-v9-latin-600.ttf) format('truetype'),url(/fonts/poppins-v9-latin-600.svg#Poppins) format('svg')}@font-face{font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url(/fonts/source-code-pro-v11-latin-regular.eot);src:local('Source Code Pro Regular'),local('SourceCodePro-Regular'),url(/fonts/source-code-pro-v11-latin-regular.eot?#iefix) format('embedded-opentype'),url(/fonts/source-code-pro-v11-latin-regular.woff2) format('woff2'),url(/fonts/source-code-pro-v11-latin-regular.woff) format('woff'),url(/fonts/source-code-pro-v11-latin-regular.ttf) format('truetype'),url(/fonts/source-code-pro-v11-latin-regular.svg#SourceCodePro) format('svg')}.padding{padding:30px}.padding-top{padding-top:30px!important}.padding-top-large{padding-top:50px!important}.padding-top-xl{padding-top:80px!important}.padding-bottom{padding-bottom:30px!important}.padding-bottom-large{padding-bottom:50px!important}.padding-bottom-xl{padding-bottom:80px!important}.margin-end{margin-left:20px!important}.margin-start{margin-right:20px!important}.margin-end-small{margin-left:10px!important}.margin-start-small{margin-right:10px!important}.margin-end-large{margin-left:50px!important}.margin-start-large{margin-right:50px!important}.margin-end-no{margin-left:0!important}.margin-start-no{margin-right:0!important}.margin-end-negative{margin-left:-30px!important}.margin-start-negative{margin-right:-30px!important}.margin-end-negative-small{margin-left:-15px!important}.margin-start-negative-small{margin-right:-15px!important}.margin-end-negative-tiny{margin-left:-5px!important}.margin-start-negative-tiny{margin-right:-5px!important}.margin-top{margin-top:30px!important}.margin-bottom{margin-bottom:30px!important}.margin-top-no{margin-top:0!important}.margin-bottom-no{margin-bottom:0!important}.margin-top-xxl{margin-top:140px!important}.margin-top-xl{margin-top:80px!important}.margin-top-large{margin-top:50px!important}.margin-top-small{margin-top:15px!important}.margin-top-tiny{margin-top:5px!important}.margin-top-negative{margin-top:-30px!important}.margin-top-negative-tiny{margin-top:-5px!important}.margin-top-negative-small{margin-top:-15px!important}.margin-top-negative-large{margin-top:-50px!important}.margin-top-negative-xl{margin-top:-80px!important}.margin-top-negative-xxl{margin-top:-100px!important}.margin-top-negative-xxxl{margin-top:-150px!important}.margin-bottom-xxl{margin-bottom:140px!important}.margin-bottom-xl{margin-bottom:80px!important}.margin-bottom-large{margin-bottom:50px!important}.margin-bottom-small{margin-bottom:15px!important}.margin-bottom-tiny{margin-bottom:5px!important}.margin-bottom-negative{margin-bottom:-30px!important}.margin-bottom-negative-tiny{margin-bottom:-5px!important}.margin-bottom-negative-small{margin-bottom:-15px!important}.margin-bottom-negative-large{margin-bottom:-50px!important}.margin-bottom-negative-xl{margin-bottom:-80px!important}.margin-bottom-negative-xl{margin-bottom:-100px!important}.force-left,.ide{direction:ltr;text-align:left}.force-right{direction:rtl;text-align:right}.pull-left{float:left}.pull-right{float:right}.ratio-wide{height:0;overflow:hidden;padding-top:56%;position:relative;width:100%}.ratio-wide>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-square{height:0;overflow:hidden;padding-top:56%;position:relative;width:100%}.ratio-square>*{position:absolute;top:0;left:0;width:100%;height:100%}.clear:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.phones-only{display:none}@media only screen and (max-width:550px){.phones-only{display:inherit!important}}.tablets-only{display:none}@media only screen and (min-width:551px) and (max-width:1198px){.tablets-only{display:inherit!important}}.desktops-only{display:none}@media only screen and (min-width:1199px){.desktops-only{display:inherit!important}}.phones-only-inline{display:none}@media only screen and (max-width:550px){.phones-only-inline{display:inline-block!important}}.tablets-only-inline{display:none}@media only screen and (min-width:551px) and (max-width:1198px){.tablets-only-inline{display:inline-block!important}}.desktops-only-inline{display:none}@media only screen and (min-width:1199px){.desktops-only-inline{display:inline-block!important}}*{font-family:Poppins,sans-serif;-webkit-font-smoothing:antialiased;font-weight:300}h1,h2,h3,h4,h5,h6{margin:0}h4,h5,h6{font-weight:400}.link,a{color:var(--config-color-link);text-decoration:none;border-left:2px solid transparent;border-right:2px solid transparent;transition:.2s;cursor:pointer}.link.disabled,a.disabled{opacity:.5}.link.tag:hover,a.tag:hover{opacity:.9}.link.danger,a.danger{color:var(--config-color-danger)}.link.link-animation-enabled,a.link-animation-enabled{display:inline-block}.link.link-animation-enabled:hover,a.link-animation-enabled:hover{transform:translateY(-2px)}.link-return-animation--start>i{display:inline-block;transition:.2s}.link-return-animation--start:hover>i{transform:translateX(2px)}.link-return-animation--end>i{display:inline-block;transition:.2s}.link-return-animation--end:hover>i{transform:translateX(-2px)}b,strong{font-weight:500}p{margin:0 0 20px 0;line-height:26px}small{font-size:16px;color:var(--config-color-fade)}.text-size-small{font-size:13px}.text-size-xs{font-size:10px}.text-size-normal{font-size:16px}.text-height-large{height:30px;line-height:30px}.text-height-small{line-height:13px}.text-one-liner{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.text-bold{font-weight:400!important}.text-bold-large{font-weight:500!important}.text-bold-xl{font-weight:600!important}.text-danger{color:var(--config-color-danger)!important}.text-success{color:var(--config-color-success)!important}.text-upper{text-transform:uppercase}.text-warning{color:var(--config-color-warning)}.text-focus{color:var(--config-color-focus)}.text-fade{color:var(--config-color-fade)}.text-green{color:var(--config-color-success)}.text-red{color:var(--config-color-danger)}.text-info{color:var(--config-color-info)}.text-yellow{color:#ffe28b}.text-disclaimer{font-size:11px;color:var(--config-color-fade)}.text-fade-extra{color:var(--config-color-fade);opacity:.5}.text-line-high-large{line-height:30px}.text-line-high-xl{line-height:40px}.text-sign{margin:5px 0;font-size:25px;width:25px;height:25px;line-height:25px;display:inline-block}.text-align-center{text-align:center}.text-align-start{text-align:right}.text-align-end{text-align:left}.text-align-left{text-align:left}.text-align-right{text-align:right}.text-dir-ltr{direction:ltr;display:inline-block}.text-dir-rtl{direction:rtl;display:inline-block}.icon-dot-3:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-o-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}i[class*=' icon-']:before,i[class^=icon-]:before{display:inline;line-height:unset}table{width:calc(100% + 60px);border-collapse:collapse;margin:-30px;border-radius:10px;overflow:hidden;position:relative;table-layout:fixed}table.y-scroll{overflow-y:auto}table thead{box-shadow:0 0 2px rgba(0,0,0,.25);border-bottom:solid 1px var(--config-color-fade-super);font-size:14px}table.small{font-size:14px}table.open-end tbody tr:last-child{border-bottom:none;font-weight:700;background:#f7fbf7}table.full tbody td,table.full tbody th{vertical-align:top;white-space:normal;overflow:auto;line-height:24px;padding-top:20px;padding-bottom:20px;height:auto}table .avatar{width:30px;height:30px}table tr{border-bottom:solid 1px var(--config-color-fade-super)}table tr:last-child{border-bottom:none}table tr:nth-child(even){background:var(--config-color-background-fade-super)}table tr.selected{background:var(--config-note-background)}table tr.selected td,table tr.selected td span{font-weight:500}table th{text-align:right;font-weight:400}table th i{color:var(--config-color-fade);font-size:10px;display:inline-block;vertical-align:top;line-height:16px;padding:0 3px}table td,table th{height:65px;padding:0 15px;line-height:50px}table td:first-child,table th:first-child{padding-right:30px}table td:last-child,table th:last-child{padding-left:30px}table td,table th{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){table.vertical{border-top:solid 1px var(--config-color-fade-super);display:block;overflow:hidden;padding-top:12px}table.vertical .hide{display:none}table.vertical tbody,table.vertical td,table.vertical th,table.vertical thead,table.vertical tr{width:100%;display:block}table.vertical th,table.vertical tr{padding-top:12px;padding-bottom:12px}table.vertical th:first-child,table.vertical tr:first-child{padding-top:0}table.vertical td,table.vertical th{padding:5px 20px!important;text-overflow:ellipsis;white-space:normal;height:40px;line-height:40px;width:calc(100% - 40px)}table.vertical td:first-child,table.vertical td:last-child,table.vertical th:first-child,table.vertical th:last-child{padding:0 10px}table.vertical td:last-child,table.vertical th:last-child{padding-bottom:0}table.vertical td p,table.vertical th p{display:inline-block;width:calc(100% - 40px)}table.vertical td:not([data-title=""]):before{content:attr(data-title);margin-right:4px;font-weight:400}table.vertical thead{display:none}}.zone{max-width:var(--config-width-xl);margin:0 auto 40px auto}.zone.xxxl{max-width:calc(1400px - 100px)}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.zone.xxxl{max-width:100%}}.zone.xxl{max-width:var(--config-width-xxl)}.zone.xl{max-width:var(--config-width-xl)}.zone.large{max-width:var(--config-width-large)}.zone.medium{max-width:var(--config-width-medium)}.zone.small{max-width:var(--config-width-small)}.row{position:relative;margin:0 -50px;padding-right:50px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.row{margin:0 -30px;padding-right:30px}}.row.force-ltr>.col{float:left}.row.force-rtl>.col{float:right}.row.force-reverse>.col{float:left}.row.wide{margin:0 -100px;padding-right:100px}.row.wide>.span-1{width:calc(8.33333333% * 1 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-2{width:calc(8.33333333% * 2 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-3{width:calc(8.33333333% * 3 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-4{width:calc(8.33333333% * 4 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-5{width:calc(8.33333333% * 5 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-6{width:calc(8.33333333% * 6 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-7{width:calc(8.33333333% * 7 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-8{width:calc(8.33333333% * 8 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-9{width:calc(8.33333333% * 9 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-10{width:calc(8.33333333% * 10 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-11{width:calc(8.33333333% * 11 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-12{width:calc(8.33333333% * 12 - 100px);box-sizing:content-box;padding-left:100px}.row.thin{margin:0 -20px;padding-right:20px}.row.thin>.span-1{width:calc(8.33333333% * 1 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-2{width:calc(8.33333333% * 2 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-3{width:calc(8.33333333% * 3 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-4{width:calc(8.33333333% * 4 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-5{width:calc(8.33333333% * 5 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-6{width:calc(8.33333333% * 6 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-7{width:calc(8.33333333% * 7 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-8{width:calc(8.33333333% * 8 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-9{width:calc(8.33333333% * 9 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-10{width:calc(8.33333333% * 10 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-11{width:calc(8.33333333% * 11 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-12{width:calc(8.33333333% * 12 - 20px);box-sizing:content-box;padding-left:20px}.row.modalize{margin:0 -30px;padding-right:30px}.row.modalize>.span-1{width:calc(8.33333333% * 1 - 30px);box-sizing:content-box;padding-left:30px}.row.modalize>.span-2{width:calc(8.33333333% * 2 - 30px);box-sizing:content-box;padding-left:30px}.row.modalize>.span-3{width:calc(8.33333333% * 3 - 30px);box-sizing:content-box;padding-left:30px}.row.modalize>.span-4{width:calc(8.33333333% * 4 - 30px);box-sizing:content-box;padding-left:30px}.row.modalize>.span-5{width:calc(8.33333333% * 5 - 30px);box-sizing:content-box;padding-left:30px}.row.modalize>.span-6{width:calc(8.33333333% * 6 - 30px);box-sizing:content-box;padding-left:30px}.row.modalize>.span-7{width:calc(8.33333333% * 7 - 30px);box-sizing:content-box;padding-left:30px}.row.modalize>.span-8{width:calc(8.33333333% * 8 - 30px);box-sizing:content-box;padding-left:30px}.row.modalize>.span-9{width:calc(8.33333333% * 9 - 30px);box-sizing:content-box;padding-left:30px}.row.modalize>.span-10{width:calc(8.33333333% * 10 - 30px);box-sizing:content-box;padding-left:30px}.row.modalize>.span-11{width:calc(8.33333333% * 11 - 30px);box-sizing:content-box;padding-left:30px}.row.modalize>.span-12{width:calc(8.33333333% * 12 - 30px);box-sizing:content-box;padding-left:30px}.row:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.row .col{float:right;box-sizing:border-box}.row .col.sticky-top{position:sticky;top:90px}.row .col.sticky-bottom{position:sticky;bottom:0}.row .span-1{width:calc(8.33333333% * 1 - 40px);box-sizing:content-box;padding-left:40px}.row .span-2{width:calc(8.33333333% * 2 - 40px);box-sizing:content-box;padding-left:40px}.row .span-3{width:calc(8.33333333% * 3 - 40px);box-sizing:content-box;padding-left:40px}.row .span-4{width:calc(8.33333333% * 4 - 40px);box-sizing:content-box;padding-left:40px}.row .span-5{width:calc(8.33333333% * 5 - 40px);box-sizing:content-box;padding-left:40px}.row .span-6{width:calc(8.33333333% * 6 - 40px);box-sizing:content-box;padding-left:40px}.row .span-7{width:calc(8.33333333% * 7 - 40px);box-sizing:content-box;padding-left:40px}.row .span-8{width:calc(8.33333333% * 8 - 40px);box-sizing:content-box;padding-left:40px}.row .span-9{width:calc(8.33333333% * 9 - 40px);box-sizing:content-box;padding-left:40px}.row .span-10{width:calc(8.33333333% * 10 - 40px);box-sizing:content-box;padding-left:40px}.row .span-11{width:calc(8.33333333% * 11 - 40px);box-sizing:content-box;padding-left:40px}.row .span-12{width:calc(8.33333333% * 12 - 40px);box-sizing:content-box;padding-left:40px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.row.responsive{width:100%;padding:0;margin:0}.row.responsive>.span-1,.row.responsive>.span-10,.row.responsive>.span-11,.row.responsive>.span-12,.row.responsive>.span-2,.row.responsive>.span-3,.row.responsive>.span-4,.row.responsive>.span-5,.row.responsive>.span-6,.row.responsive>.span-7,.row.responsive>.span-8,.row.responsive>.span-9{width:calc(8.33333333% * 12 - 0px)!important;box-sizing:content-box!important;padding-left:0!important;width:100%!important}}.tiles{position:relative}.tiles:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.tiles>*{margin-left:50px!important;float:right;width:calc(33.3333% - 33.3333px)}.tiles>* .photo-title{width:calc(100% + 30px);height:15px;margin:-15px -15px 10px -15px;border-radius:10px 10px 0 0;background:var(--config-color-fade-super);border-bottom:solid 1px var(--config-color-fade-super)}.tiles>:nth-child(3n){margin-left:0!important}@media only screen and (min-width:551px) and (max-width:1198px){.tiles>li{width:calc(50% - 25px)}.tiles>li:nth-child(3n){margin-left:50px!important}.tiles>li:nth-child(2n){margin-left:0!important}}@media only screen and (max-width:550px){.tiles>li{width:100%;margin-left:0!important}}@font-face{font-family:fontello;src:url(data:application/octet-stream;base64,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) format('woff'),url(data:application/octet-stream;base64,AAEAAAAPAIAAAwBwR1NVQiCLJXoAAAD8AAAAVE9TLzI+UFR4AAABUAAAAFZjbWFwawchfQAAAagAAAhUY3Z0IAcz/qQAAIEoAAAAIGZwZ22KkZBZAACBSAAAC3BnYXNwAAAAEAAAgSAAAAAIZ2x5ZrylJfYAAAn8AABsnmhlYWQauqkaAAB2nAAAADZoaGVhCBoEoAAAdtQAAAAkaG10eILz/4EAAHb4AAABwGxvY2GlpIsyAAB4uAAAAOJtYXhwAlwNFAAAeZwAAAAgbmFtZc2dFxgAAHm8AAACzXBvc3SPrOZaAAB8jAAABJRwcmVw5UErvAAAjLgAAACGAAEAAAAKADAAPgACREZMVAAObGF0bgAaAAQAAAAAAAAAAQAAAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAEDdAGQAAUAAAJ6ArwAAACMAnoCvAAAAeAAMQECAAACAAUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBmRWQAwOgA8sYDUv9qAFoDgQDGAAAAAQAAAAAAAAAAAAUAAAADAAAALAAAAAQAAAMQAAEAAAAAAgoAAwABAAAALAADAAoAAAMQAAQB3gAAADwAIAAEABzoT/CO8JvwsPDF8MvwzfDc8OHxGPEc8SHxMvE48XHxevGT8ZzxoPGt8cDxzfHc8eXx/vIx8jrylvLG//8AAOgA8I7wm/Cw8MXwyvDN8Nzw4fEY8RzxIfEy8TfxcfF68ZLxnPGg8a3xwPHN8dzx5fH+8jHyOvKW8sb//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQA8ANoA2gDaANoA2gDcANwA3ADcANwA3ADcANwA3gDeAN4A4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYABhAGIAYwBkAGUAZgBnAGgAaQBqAGsAbABtAG4AbwAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAFRAAAAAAAAABvAADoAAAA6AAAAAABAADoAQAA6AEAAAACAADoAgAA6AIAAAADAADoAwAA6AMAAAAEAADoBAAA6AQAAAAFAADoBQAA6AUAAAAGAADoBgAA6AYAAAAHAADoBwAA6AcAAAAIAADoCAAA6AgAAAAJAADoCQAA6AkAAAAKAADoCgAA6AoAAAALAADoCwAA6AsAAAAMAADoDAAA6AwAAAANAADoDQAA6A0AAAAOAADoDgAA6A4AAAAPAADoDwAA6A8AAAAQAADoEAAA6BAAAAARAADoEQAA6BEAAAASAADoEgAA6BIAAAATAADoEwAA6BMAAAAUAADoFAAA6BQAAAAVAADoFQAA6BUAAAAWAADoFgAA6BYAAAAXAADoFwAA6BcAAAAYAADoGAAA6BgAAAAZAADoGQAA6BkAAAAaAADoGgAA6BoAAAAbAADoGwAA6BsAAAAcAADoHAAA6BwAAAAdAADoHQAA6B0AAAAeAADoHgAA6B4AAAAfAADoHwAA6B8AAAAgAADoIAAA6CAAAAAhAADoIQAA6CEAAAAiAADoIgAA6CIAAAAjAADoIwAA6CMAAAAkAADoJAAA6CQAAAAlAADoJQAA6CUAAAAmAADoJgAA6CYAAAAnAADoJwAA6CcAAAAoAADoKAAA6CgAAAApAADoKQAA6CkAAAAqAADoKgAA6CoAAAArAADoKwAA6CsAAAAsAADoLAAA6CwAAAAtAADoLQAA6C0AAAAuAADoLgAA6C4AAAAvAADoLwAA6C8AAAAwAADoMAAA6DAAAAAxAADoMQAA6DEAAAAyAADoMgAA6DIAAAAzAADoMwAA6DMAAAA0AADoNAAA6DQAAAA1AADoNQAA6DUAAAA2AADoNgAA6DYAAAA3AADoNwAA6DcAAAA4AADoOAAA6DgAAAA5AADoOQAA6DkAAAA6AADoOgAA6DoAAAA7AADoOwAA6DsAAAA8AADoPAAA6DwAAAA9AADoPQAA6D0AAAA+AADoPgAA6D4AAAA/AADoPwAA6D8AAABAAADoQAAA6EAAAABBAADoQQAA6EEAAABCAADoQgAA6EIAAABDAADoQwAA6EMAAABEAADoRAAA6EQAAABFAADoRQAA6EUAAABGAADoRgAA6EYAAABHAADoRwAA6EcAAABIAADoSAAA6EgAAABJAADoSQAA6EkAAABKAADoSgAA6EoAAABLAADoSwAA6EsAAABMAADoTAAA6EwAAABNAADoTQAA6E0AAABOAADoTgAA6E4AAABPAADoTwAA6E8AAABQAADwjgAA8I4AAABRAADwmwAA8JsAAABSAADwsAAA8LAAAABTAADwxQAA8MUAAABUAADwygAA8MoAAABVAADwywAA8MsAAABWAADwzQAA8M0AAABXAADw3AAA8NwAAABYAADw4QAA8OEAAABZAADxGAAA8RgAAABaAADxHAAA8RwAAABbAADxIQAA8SEAAABcAADxMgAA8TIAAABdAADxNwAA8TcAAABeAADxOAAA8TgAAABfAADxcQAA8XEAAABgAADxegAA8XoAAABhAADxkgAA8ZIAAABiAADxkwAA8ZMAAABjAADxnAAA8ZwAAABkAADxoAAA8aAAAABlAADxrQAA8a0AAABmAADxwAAA8cAAAABnAADxzQAA8c0AAABoAADx3AAA8dwAAABpAADx5QAA8eUAAABqAADx/gAA8f4AAABrAADyMQAA8jEAAABsAADyOgAA8joAAABtAADylgAA8pYAAABuAADyxgAA8sYAAABvAAIAAP+xAsoDDAAVAB4AJUAiAAUBBW8DAQEEAW8ABAIEbwACAAJvAAAAZhMXEREXMgYFGislFAYjISImNTQ+AxcWMjcyHgMDFAYiLgE2HgECykYx/iQxRgoYKj4tScpKKkImHAiPfLR6BIKshEU8WFg8MFRWPCgBSEgmPlRWAcBYfn6wgAJ8AAAC//7/zgPq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eSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAEMAbwBwAHkAcgBpAGcAaAB0ACAAKABDACkAIAAyADAAMgAwACAAYgB5ACAAbwByAGkAZwBpAG4AYQBsACAAYQB1AHQAaABvAHIAcwAgAEAAIABmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQBmAG8AbgB0AGUAbABsAG8AUgBlAGcAdQBsAGEAcgBmAG8AbgB0AGUAbABsAG8AZgBvAG4AdABlAGwAbABvAFYAZQByAHMAaQBvAG4AIAAxAC4AMABmAG8AbgB0AGUAbABsAG8ARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAAR1c2VyBmZvbGRlcgRsaXN0BWxvZ2luA2NvZwd0d2l0dGVyC2FydGljbGUtYWx0BmNhbmNlbARob21lCGRvd24tZGlyCGZhY2Vib29rCGFzdGVyaXNrBnVwbG9hZAlzdG9wd2F0Y2gGZXhwb3J0BWhlYXJ0BHBsdXMGdXAtZGlyBG1lbnUJbGVmdC1vcGVuCnJpZ2h0LW9wZW4FaW5ib3gGd3JlbmNoB2NvbW1lbnQNc3RhY2tvdmVyZmxvdwhxdWVzdGlvbgpvay1jaXJjbGVkB3dhcm5pbmcEbWFpbARsaW5rB2tleS1pbnYFdHJhc2gIZG93bmxvYWQHZ2xhc3NlcwZxcmNvZGUHc2h1ZmZsZQNleWUEbG9jawZzZWFyY2gEYmVsbAV1c2Vycwhsb2NhdGlvbglicmllZmNhc2UJaW5zdGFncmFtBWNsb2NrBXBob25lCGNhbGVuZGFyBXByaW50BGVkaXQEYm9sZAZpdGFsaWMGcm9ja2V0CHdoYXRzYXBwBWRvdC0zDGluZm8tY2lyY2xlZAh2aWRlb2NhbQtxdW90ZS1yaWdodAdwaWN0dXJlB3BhbGV0dGUEbGFtcAlib29rLW9wZW4Cb2sIY2hhdC1hbHQHYXJjaGl2ZQRwbGF5BXBhdXNlCWRvd24tb3Blbgd1cC1vcGVuBW1pbnVzCGV4Y2hhbmdlB25ldHdvcmsHZGlzY29yZAhtb29uLWludgdzdW4taW52DmNhbmNlbC1jaXJjbGVkCWxpZ2h0bmluZwNkZXYJcmlnaHQtZGlyCGxlZnQtZGlyBGZpcmUIbGluay1leHQOZ2l0aHViLWNpcmNsZWQGZmlsdGVyBGRvY3MLbGlzdC1idWxsZXQNbGlzdC1udW1iZXJlZAl1bmRlcmxpbmUEc29ydAhsaW5rZWRpbgVzbWlsZQhrZXlib2FyZARjb2RlBnNoaWVsZBJhbmdsZS1jaXJjbGVkLWxlZnQTYW5nbGUtY2lyY2xlZC1yaWdodAliaXRidWNrZXQHd2luZG93cwtkb3QtY2lyY2xlZAp3aGVlbGNoYWlyBGJhbmsGZ29vZ2xlD2J1aWxkaW5nLWZpbGxlZAhkYXRhYmFzZQhsaWZlYnVveQZoZWFkZXIKYmlub2N1bGFycwpjaGFydC1hcmVhCXBpbnRlcmVzdAZtZWRpdW0GZ2l0bGFiCHRlbGVncmFtAAAAAQAB//8ADwAAAAAAAAAAAAAAAAAAAAAAGAAYABgAGAOB/zoDgf86sAAsILAAVVhFWSAgS7gADlFLsAZTWliwNBuwKFlgZiCKVViwAiVhuQgACABjYyNiGyEhsABZsABDI0SyAAEAQ2BCLbABLLAgYGYtsAIsIGQgsMBQsAQmWrIoAQpDRWNFUltYISMhG4pYILBQUFghsEBZGyCwOFBYIbA4WVkgsQEKQ0VjRWFksChQWCGxAQpDRWNFILAwUFghsDBZGyCwwFBYIGYgiophILAKUFhgGyCwIFBYIbAKYBsgsDZQWCGwNmAbYFlZWRuwAStZ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) format('truetype')}[class*=" icon-"]:before,[class^=icon-]:before{font-family:fontello;font-style:normal;font-weight:400;speak:never;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em}.icon-user:before{content:'\e800'}.icon-folder:before{content:'\e801'}.icon-list:before{content:'\e802'}.icon-login:before{content:'\e803'}.icon-cog:before{content:'\e804'}.icon-twitter:before{content:'\e805'}.icon-article-alt:before{content:'\e806'}.icon-cancel:before{content:'\e807'}.icon-home:before{content:'\e808'}.icon-down-dir:before{content:'\e809'}.icon-facebook:before{content:'\e80a'}.icon-asterisk:before{content:'\e80b'}.icon-upload:before{content:'\e80c'}.icon-stopwatch:before{content:'\e80d'}.icon-export:before{content:'\e80e'}.icon-heart:before{content:'\e80f'}.icon-plus:before{content:'\e810'}.icon-up-dir:before{content:'\e811'}.icon-menu:before{content:'\e812'}.icon-left-open:before{content:'\e813'}.icon-right-open:before{content:'\e814'}.icon-inbox:before{content:'\e815'}.icon-wrench:before{content:'\e816'}.icon-comment:before{content:'\e817'}.icon-stackoverflow:before{content:'\e818'}.icon-question:before{content:'\e819'}.icon-ok-circled:before{content:'\e81a'}.icon-warning:before{content:'\e81b'}.icon-mail:before{content:'\e81c'}.icon-link:before{content:'\e81d'}.icon-key-inv:before{content:'\e81e'}.icon-trash:before{content:'\e81f'}.icon-download:before{content:'\e820'}.icon-glasses:before{content:'\e821'}.icon-qrcode:before{content:'\e822'}.icon-shuffle:before{content:'\e823'}.icon-eye:before{content:'\e824'}.icon-lock:before{content:'\e825'}.icon-search:before{content:'\e826'}.icon-bell:before{content:'\e827'}.icon-users:before{content:'\e828'}.icon-location:before{content:'\e829'}.icon-briefcase:before{content:'\e82a'}.icon-instagram:before{content:'\e82b'}.icon-clock:before{content:'\e82c'}.icon-phone:before{content:'\e82d'}.icon-calendar:before{content:'\e82e'}.icon-print:before{content:'\e82f'}.icon-edit:before{content:'\e830'}.icon-bold:before{content:'\e831'}.icon-italic:before{content:'\e832'}.icon-rocket:before{content:'\e833'}.icon-whatsapp:before{content:'\e834'}.icon-dot-3:before{content:'\e835'}.icon-info-circled:before{content:'\e836'}.icon-videocam:before{content:'\e837'}.icon-quote-right:before{content:'\e838'}.icon-picture:before{content:'\e839'}.icon-palette:before{content:'\e83a'}.icon-lamp:before{content:'\e83b'}.icon-book-open:before{content:'\e83c'}.icon-ok:before{content:'\e83d'}.icon-chat-alt:before{content:'\e83e'}.icon-archive:before{content:'\e83f'}.icon-play:before{content:'\e840'}.icon-pause:before{content:'\e841'}.icon-down-open:before{content:'\e842'}.icon-up-open:before{content:'\e843'}.icon-minus:before{content:'\e844'}.icon-exchange:before{content:'\e845'}.icon-network:before{content:'\e846'}.icon-discord:before{content:'\e847'}.icon-moon-inv:before{content:'\e848'}.icon-sun-inv:before{content:'\e849'}.icon-cancel-circled:before{content:'\e84a'}.icon-lightning:before{content:'\e84b'}.icon-dev:before{content:'\e84c'}.icon-right-dir:before{content:'\e84d'}.icon-left-dir:before{content:'\e84e'}.icon-fire:before{content:'\e84f'}.icon-link-ext:before{content:'\f08e'}.icon-github-circled:before{content:'\f09b'}.icon-filter:before{content:'\f0b0'}.icon-docs:before{content:'\f0c5'}.icon-list-bullet:before{content:'\f0ca'}.icon-list-numbered:before{content:'\f0cb'}.icon-underline:before{content:'\f0cd'}.icon-sort:before{content:'\f0dc'}.icon-linkedin:before{content:'\f0e1'}.icon-smile:before{content:'\f118'}.icon-keyboard:before{content:'\f11c'}.icon-code:before{content:'\f121'}.icon-shield:before{content:'\f132'}.icon-angle-circled-left:before{content:'\f137'}.icon-angle-circled-right:before{content:'\f138'}.icon-bitbucket:before{content:'\f171'}.icon-windows:before{content:'\f17a'}.icon-dot-circled:before{content:'\f192'}.icon-wheelchair:before{content:'\f193'}.icon-bank:before{content:'\f19c'}.icon-google:before{content:'\f1a0'}.icon-building-filled:before{content:'\f1ad'}.icon-database:before{content:'\f1c0'}.icon-lifebuoy:before{content:'\f1cd'}.icon-header:before{content:'\f1dc'}.icon-binoculars:before{content:'\f1e5'}.icon-chart-area:before{content:'\f1fe'}.icon-pinterest:before{content:'\f231'}.icon-medium:before{content:'\f23a'}.icon-gitlab:before{content:'\f296'}.icon-telegram:before{content:'\f2c6'}.datalist-polyfill{list-style:none;display:none;background:#fff;box-shadow:0 2px 2px #999;position:absolute;left:0;top:0;margin:0;padding:0;max-height:300px;overflow-y:auto}.datalist-polyfill:empty{display:none!important}.datalist-polyfill>li{padding:3px;font:13px "Lucida Grande",Sans-Serif}.datalist-polyfill__active{background:#3875d7;color:#fff}date-input-polyfill{z-index:1000!important;max-width:320px!important;width:320px!important}date-input-polyfill .monthSelect-wrapper,date-input-polyfill .yearSelect-wrapper{height:50px;line-height:50px;padding:0;width:40%!important;margin-bottom:10px!important}date-input-polyfill .monthSelect-wrapper select,date-input-polyfill .yearSelect-wrapper select{padding:0 12px;height:50px;line-height:50px;box-sizing:border-box}date-input-polyfill .yearSelect-wrapper{width:35%!important}date-input-polyfill table{width:100%!important;max-width:100%!important;padding:0 12px 12px 12px!important;box-sizing:border-box;margin:0}date-input-polyfill table td:first-child,date-input-polyfill table td:last-child,date-input-polyfill table th:first-child,date-input-polyfill table th:last-child{width:32px!important;padding:4px!important}date-input-polyfill select{margin-bottom:10px}date-input-polyfill button{width:25%!important;height:50px!important;line-height:50px!important;margin-bottom:10px!important;background:inherit;position:relative;color:inherit;padding:inherit;box-sizing:inherit;border-radius:inherit;font-size:inherit;box-shadow:none;border:none;border-bottom:none!important}::placeholder{color:var(--config-color-placeholder);text-align:right}::-webkit-input-placeholder{text-align:right}input:-moz-placeholder{text-align:right}form.inline{display:inline-block}input,textarea{background:var(--config-color-background-input)}input[type=file],input[type=file]::-webkit-file-upload-button{cursor:pointer}.button,button{display:inline-block;background:var(--config-color-focus);border-radius:26px;border:none;color:var(--config-color-background-fade);height:52px;line-height:52px;padding:0 25px;cursor:pointer;font-size:16px;box-sizing:border-box;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.button:focus,.button:hover,button:focus,button:hover{background:var(--config-color-focus-hover)}.button.fly,button.fly{position:fixed;z-index:2;bottom:30px;left:30px}@media only screen and (max-width:550px){.button.fly,button.fly{left:15px}}.button.fill,button.fill{display:block;width:100%;text-align:center;padding:0 10px!important}.button.fill-aligned,button.fill-aligned{display:block;width:100%;text-align:right;padding:0 20px!important}.button.icon,button.icon{padding-left:30px!important}.button.icon-reduce,button.icon-reduce{padding-right:15px!important}.button.reverse,button.reverse{background:0 0;height:50px;line-height:48px;padding:0 23px;color:var(--config-color-focus);border:solid 2px var(--config-color-focus)}.button.reverse:focus,.button.reverse:hover,button.reverse:focus,button.reverse:hover{color:var(--config-color-focus-hover);border-color:var(--config-color-focus-hover)}.button.small,button.small{padding:0 15px;height:40px;line-height:36px;font-size:13px}.button.tick,button.tick{background:var(--config-color-fade-light);color:var(--config-color-dark);border-radius:20px;padding:0 10px;line-height:30px;height:30px;font-size:12px;display:inline-block}.button.tick.selected,button.tick.selected{background:var(--config-color-dark);color:var(--config-color-fade)}.button.round,button.round{width:52px;padding:0}.button.round.small,button.round.small{font-size:12px;width:30px;height:30px;line-height:30px}.button.white,button.white{background:#fff;color:var(--config-color-focus)}.button.white.reverse,button.white.reverse{color:#fff;background:0 0;border:solid 2px #fff}.button.trans,button.trans{background:0 0!important}.button.trans.reverse,button.trans.reverse{background:0 0!important}.button.success,button.success{background:var(--config-color-success)}.button.success.reverse,button.success.reverse{color:var(--config-color-success);background:#fff;border:solid 2px var(--config-color-success)}.button.danger,button.danger{background:var(--config-color-danger);color:#fff}.button.danger.reverse,button.danger.reverse{color:var(--config-color-danger);background:var(--config-color-background-fade);border:solid 2px var(--config-color-danger)}.button.dark,button.dark{background:var(--config-color-dark);color:var(--config-color-background-fade)}.button.dark.reverse,button.dark.reverse{color:var(--config-color-dark);background:var(--config-color-background-fade);border:solid 2px var(--config-color-dark)}.button .disabled,.button.disabled,.button:disabled,button .disabled,button.disabled,button:disabled{color:var(--config-color-normal);background:var(--config-color-background-dark);opacity:.6;cursor:default}.button.link,button.link{background:0 0;border-radius:0;color:var(--config-color-link);height:auto;line-height:normal;padding:0;padding-left:0!important}.button.link:focus,button.link:focus{box-shadow:inherit}.button.strip,button.strip{background:0 0;height:auto;line-height:16px;color:inherit;padding:0 5px}.button.facebook,button.facebook{color:#fff!important;background:#4070b4!important}.button.twitter,button.twitter{color:#fff!important;background:#56c2ea!important}.button.linkedin,button.linkedin{color:#fff!important;background:#0076b5!important}.button.github,button.github{color:#fff!important;background:#7e7c7c!important}.button:focus,button:focus{outline:0}label{margin-bottom:15px;display:block;line-height:normal}label.inline{display:inline}.input,input[type=date],input[type=datetime-local],input[type=email],input[type=file],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{-webkit-appearance:none;-moz-appearance:none;-webkit-transform:translateZ(0);box-sizing:content-box;color:#313131;height:40px;line-height:40px;border:solid 1px var(--config-color-fade-light);border-radius:10px;padding:5px 15px;font-size:16px;display:block;width:calc(100% - 32px);margin-bottom:30px}.input[type=file],input[type=date][type=file],input[type=datetime-local][type=file],input[type=email][type=file],input[type=file][type=file],input[type=number][type=file],input[type=password][type=file],input[type=search][type=file],input[type=tel][type=file],input[type=text][type=file],input[type=url][type=file],select[type=file],textarea[type=file]{line-height:0;padding:15px;height:auto}.input:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=file]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{outline:0;border-color:#b3d7fd}.input:disabled,input[type=date]:disabled,input[type=datetime-local]:disabled,input[type=email]:disabled,input[type=file]:disabled,input[type=number]:disabled,input[type=password]:disabled,input[type=search]:disabled,input[type=tel]:disabled,input[type=text]:disabled,input[type=url]:disabled,select:disabled,textarea:disabled{color:var(--config-color-normal);background:var(--config-color-fade-super);opacity:1!important}.input.strip,input[type=date].strip,input[type=datetime-local].strip,input[type=email].strip,input[type=file].strip,input[type=number].strip,input[type=password].strip,input[type=search].strip,input[type=tel].strip,input[type=text].strip,input[type=url].strip,select.strip,textarea.strip{border:none;border-radius:0;padding:5px 0;width:100%;background-color:transparent;background-position:left 2px top 50%;border-bottom:solid 1px var(--config-color-fade-light);color:var(--config-color-placeholder)}.input.strip:focus,input[type=date].strip:focus,input[type=datetime-local].strip:focus,input[type=email].strip:focus,input[type=file].strip:focus,input[type=number].strip:focus,input[type=password].strip:focus,input[type=search].strip:focus,input[type=tel].strip:focus,input[type=text].strip:focus,input[type=url].strip:focus,select.strip:focus,textarea.strip:focus{border-color:#b3d7fd}.input:-webkit-autofill::first-line,input[type=date]:-webkit-autofill::first-line,input[type=datetime-local]:-webkit-autofill::first-line,input[type=email]:-webkit-autofill::first-line,input[type=file]:-webkit-autofill::first-line,input[type=number]:-webkit-autofill::first-line,input[type=password]:-webkit-autofill::first-line,input[type=search]:-webkit-autofill::first-line,input[type=tel]:-webkit-autofill::first-line,input[type=text]:-webkit-autofill::first-line,input[type=url]:-webkit-autofill::first-line,select:-webkit-autofill::first-line,textarea:-webkit-autofill::first-line{font-weight:300;font-size:16px}input[type=email],input[type=url]{direction:ltr}input[type=email]::placeholder,input[type=url]::placeholder{text-align:left;direction:ltr}select{background:0 0;-webkit-appearance:none;background-image:var(--config-console-nav-switch-arrow);background-position:left 15px top 50%;background-repeat:no-repeat;background-color:var(--config-color-background-input);width:calc(100% - 62px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:45px}select:-webkit-autofill{background-image:url("data:image/svg+xml;utf8,")!important;background-position:100% 50%!important;background-repeat:no-repeat!important}input[type=search],input[type=search].strip{background:0 0;-webkit-appearance:none;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAdZJREFUWIXt1s2LjWEYBvDfnDMzFpNIamZIFrMiJYMyFmKhZKfOwoiFr2LFn2BByG6WVrKwMcjWxgoLIlKIUk6RrzAjZWZ8LO731FlwvB+PUbjq6X0X7/VeV/d9P9fz8IdRL8Hpw3x8w0xaOz9GNxq4gJeZcGs1cRab0fU7xLfgMSYzoT3YgNXYhIO4iM+4iTWphGs4jikcFSXvhEGczr4/UFW8C2N4jXUFudvwCYeqGNgnSr6yJH8rpkWLCqMfE9hdUryFE3iC3qLEk7ij+kT34Q32FiHV8Qr7K4q3cArXihCGxd5elMjARnzBvE4f1dreV+AtnicycC/7/7K8BhaIvqXCO3zFwrwGZtCT0EAtW9N5DTSxWGR/CizNns/yEgbFEK5NZGCnaEPHE7e9Ai9wA6OJDIzistgJubFdxHB/RfFVYgCHixJruI5x5dNwDm6J47sUhkTvjpUw0Y1zeOrXR3hHjOA9zmBuTs4Arog4/yhuUZWwHPdFMh7280BZgiP4ILJ/UuymqRQmejPxphiquzgvKnMJDzOxB9glZqiRiecykbfHdawX98EhcdxO4BGu4nYm2EJDzEKPSMIdYrBnFYUq8d/EP2di1gey3cS4ErflvxffASbhcakIINaMAAAAAElFTkSuQmCC);background-color:var(--config-color-background-input);background-position:right 15px top 50%;background-repeat:no-repeat;background-size:20px 20px;width:calc(100% - 60px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:45px}select[multiple]{min-height:75px;padding:5px 10px!important;padding-left:50px!important}select[multiple] option{padding:10px 4px;border-bottom:solid 1px #f1f1f1}select[multiple] option:last-child{border-bottom:none}textarea{min-height:75px;resize:vertical;line-height:32px;padding:5px 15px}textarea.tall{min-height:180px}fieldset{border:none;margin:0;padding:0}.counter{font-size:13px;text-align:left;color:var(--config-color-fade);margin-top:-20px;margin-bottom:20px}.file-preview{background:var(--config-color-background-input) url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAIElEQVQoU2NkYGAwZsAEZ9GFGIeIQix+wfQgyDODXSEAcUwGCrDSHgkAAAAASUVORK5CYII=)!important;border:solid 1px #e2e2e2;box-shadow:inset 0 0 3px #a0a0a0;border-radius:8px;width:calc(100% - 2px);max-height:180px;visibility:visible!important}.video-preview{padding-top:56%;position:relative;border-radius:10px;background:#e7e7e7;overflow:hidden;margin:0}.video-preview iframe{position:absolute;top:0;width:100%;height:100%;border:none}.map-preview{padding-top:50%;position:relative;margin-bottom:10px;border-radius:10px;background:#e7e7e7;overflow:hidden;box-shadow:0 0 30px rgba(218,218,218,.5)}.map-preview iframe{position:absolute;top:0;width:100%;height:100%;border:none}.tooltip{position:relative}.tooltip.large:hover:after{white-space:normal;width:280px}.tooltip.small:hover:after{white-space:normal;width:180px}.tooltip:hover:after{white-space:nowrap;background:var(--config-color-tooltip-background);border-radius:5px;bottom:26px;color:var(--config-color-tooltip-text);content:attr(data-tooltip);padding:5px 15px;position:absolute;font-size:13px;line-height:20px;z-index:98;right:20%;margin-right:-30px;word-break:break-word}.tooltip:hover:before{border:solid;border-color:var(--config-color-tooltip-background) transparent;border-width:6px 6px 0 6px;bottom:20px;content:"";position:absolute;z-index:99;right:5px}.tooltip.down:hover:after{top:26px;bottom:inherit}.tooltip.down:hover:before{top:20px;border-width:0 6px 6px 6px;bottom:inherit}.tag{display:inline-block;background:var(--config-color-fade-light);color:var(--config-color-fade);border-radius:12px;line-height:24px;padding:0 8px;font-size:12px;box-shadow:none!important;border:none;height:auto;width:auto;white-space:nowrap;text-overflow:ellipsis}.tag:hover{border:none}.tag.green{background:var(--config-color-success);color:#fff}.tag.red{background:var(--config-color-danger);color:#fff}.tag.yellow{background:#ffe28b;color:#494949}.tag.focus{background:var(--config-color-focus);color:#fff}.tag.dark{background:var(--config-color-dark);color:#e7e7e7}.tag.blue{background:var(--config-color-info);color:#fff}.tag.link{background:var(--config-color-link);color:#fff}input[type=checkbox],input[type=radio]{width:26px;height:16px;position:relative;-webkit-appearance:none;border-radius:0;border:none;background:0 0;vertical-align:middle;margin:0}input[type=checkbox]:after,input[type=radio]:after{content:"";display:block;width:20px;height:20px;background:var(--config-color-background-fade);top:-5px;border-radius:50%;position:absolute;border:solid 3px var(--config-color-focus);vertical-align:middle}input[type=checkbox]:checked:after,input[type=radio]:checked:after{text-align:center;font-family:fontello;content:'\e83d';font-size:16px;line-height:20px;color:var(--config-color-background-fade);background:var(--config-color-focus)}input[type=checkbox][type=radio]:checked:after,input[type=radio][type=radio]:checked:after{content:'';display:block;width:10px;height:10px;border-radius:50%;background:var(--config-color-background-fade);border:solid 8px var(--config-color-focus)}input[type=checkbox]:focus,input[type=radio]:focus{outline:0}input[type=checkbox]:focus:after,input[type=checkbox]:hover:after,input[type=radio]:focus:after,input[type=radio]:hover:after{outline:0;border-color:#000}input[type=checkbox]:checked:focus:after,input[type=checkbox]:checked:hover:after,input[type=radio]:checked:focus:after,input[type=radio]:checked:hover:after{border-color:var(--config-color-focus)}.input-copy{position:relative}.input-copy input,.input-copy textarea{padding-left:65px;width:calc(100% - 82px);resize:none}.input-copy .copy{position:absolute;top:0;left:0;border-right:solid 1px var(--config-color-fade-light);height:calc(100% - 2px);width:50px;line-height:50px;text-align:center;background:var(--config-color-background-focus);margin:1px;border-radius:0 10px 10px 0}.paging{color:var(--config-color-fade);padding:5px 15px;font-size:12px}.paging form{display:inline-block}.paging button:disabled{color:var(--config-color-background-fade);opacity:.6}.blue-snap iframe{-webkit-appearance:none;-moz-appearance:none;-webkit-transform:translateZ(0);box-sizing:content-box;color:#313131;height:40px;line-height:40px;border:solid 1px var(--config-color-fade-light);border-radius:10px;padding:5px 15px;font-size:16px;display:block;width:calc(100% - 32px);margin-bottom:30px;float:none!important;height:40px!important;width:calc(100% - 32px)!important;border:solid 1px #e2e2e2!important;background:0 0!important;position:static!important}.blue-snap iframe[type=file]{line-height:0;padding:15px;height:auto}.blue-snap iframe:focus{outline:0;border-color:#b3d7fd}.blue-snap iframe:disabled{color:var(--config-color-normal);background:var(--config-color-fade-super);opacity:1!important}.blue-snap iframe.strip{border:none;border-radius:0;padding:5px 0;width:100%;background-color:transparent;background-position:left 2px top 50%;border-bottom:solid 1px var(--config-color-fade-light);color:var(--config-color-placeholder)}.blue-snap iframe.strip:focus{border-color:#b3d7fd}.blue-snap iframe:-webkit-autofill::first-line{font-weight:300;font-size:16px}.blue-snap .error{font-size:12px;margin-top:-25px;color:var(--config-color-danger);height:40px;padding-right:2px}.pell{height:auto;padding-bottom:0;margin-bottom:0;padding-top:0;background:var(--config-color-background-input);line-height:normal!important;position:relative}.pell.hide{padding:0!important;height:1px;min-height:1px;max-height:1px;border:none;box-shadow:none;margin-bottom:20px;opacity:0}.pell [contenteditable=true]:empty:before{content:attr(placeholder);display:block;color:var(--config-color-placeholder)}.pell .pell-actionbar{border-bottom:solid 1px var(--config-color-fade-light);margin:0 -15px 15px -15px;padding:10px 15px;position:sticky;top:70px;background:var(--config-color-background-input);border-radius:10px 10px 0 0}.pell .pell-content{min-height:100px;display:block;padding:10px;margin:-10px;cursor:text}.pell .pell-content:focus{outline:0}.pell button{background:inherit;color:inherit;margin:0;padding:0;padding-left:15px;height:40px;line-height:40px;box-shadow:none;cursor:pointer;font-size:13px;border-radius:0}.pell button.pell-button-selected,.pell button:focus,.pell button:hover{color:var(--config-color-link)}.pell h1,.pell h2,.pell h3,.pell h4,.pell h5,.pell h6{text-align:inherit;margin-bottom:30px}.pell b,.pell strong{font-weight:700}.pell ol,.pell ul{margin:0 0 20px 0}.pell ol li,.pell ul li{display:list-item!important;list-style:inherit;list-style-position:inside!important;margin:0 20px 2px 20px}.pell ol li p,.pell ul li p{margin:0;display:inline}.pell ol li{list-style:decimal}.pell ol li::before{content:'';display:none}label.switch{line-height:42px}.switch,input[type=checkbox].button.switch,input[type=checkbox].switch{width:52px;height:32px;line-height:32px;border-radius:21px;background:var(--config-color-fade);display:inline-block;margin:0;padding:5px;padding-right:5px;padding-left:30px}.switch.on,.switch:checked,input[type=checkbox].button.switch.on,input[type=checkbox].button.switch:checked,input[type=checkbox].switch.on,input[type=checkbox].switch:checked{background-color:var(--config-color-success);padding-right:25px;padding-left:5px}.switch.on:focus,.switch.on:hover,.switch:checked:focus,.switch:checked:hover,input[type=checkbox].button.switch.on:focus,input[type=checkbox].button.switch.on:hover,input[type=checkbox].button.switch:checked:focus,input[type=checkbox].button.switch:checked:hover,input[type=checkbox].switch.on:focus,input[type=checkbox].switch.on:hover,input[type=checkbox].switch:checked:focus,input[type=checkbox].switch:checked:hover{background:var(--config-color-success)}.switch:focus,.switch:hover,input[type=checkbox].button.switch:focus,input[type=checkbox].button.switch:hover,input[type=checkbox].switch:focus,input[type=checkbox].switch:hover{background:var(--config-color-fade)}.switch:focus:after,.switch:hover:after,input[type=checkbox].button.switch:focus:after,input[type=checkbox].button.switch:hover:after,input[type=checkbox].switch:focus:after,input[type=checkbox].switch:hover:after{background:#fff}.switch:after,input[type=checkbox].button.switch:after,input[type=checkbox].switch:after{content:"";display:block;width:22px;height:22px;background:#fff;border-radius:50%;border:none;position:static;top:0}.password-meter{margin:-41px 10px 30px 10px;height:2px;background:0 0;max-width:100%;z-index:2;position:relative}.password-meter.weak{background:var(--config-color-danger)}.password-meter.medium{background:var(--config-color-success)}.password-meter.strong{background:var(--config-color-success)}.color-input:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.color-input .color-preview{width:53px;height:53px;float:right;margin-left:10px;background:#000;border-radius:10px;box-shadow:inset 0 0 3px #a0a0a0;position:relative}.color-input .color-preview input{opacity:0;position:absolute;top:0;bottom:0;left:0;right:0;width:100%;height:100%;cursor:pointer}.color-input input{text-transform:uppercase;float:right;width:calc(100% - 95px)}.grecaptcha-badge{box-shadow:none!important;border-radius:10px!important;overflow:hidden!important;background:#4d92df!important;bottom:25px}.grecaptcha-badge:hover{width:256px!important}.back{font-size:15px;line-height:24px;height:24px;margin-right:-15px;margin-top:-25px;margin-bottom:20px}.back span{font-weight:inherit!important}@media only screen and (max-width:550px){.back{margin-right:-5px}}hr{height:1px;background:var(--config-border-color)!important;border:none}hr.fade{opacity:.7}.upload{position:relative}.upload:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.upload input{position:absolute;top:0;right:0;opacity:0;cursor:pointer}.upload.single .preview{height:0;position:relative;padding-top:100%;width:100%;margin-bottom:15px!important}.upload.single .preview li{position:absolute;top:0;width:calc(100% - 20px);height:calc(100% - 20px);margin-left:0!important;margin-bottom:0!important}.upload .button{float:right;margin-left:10px!important}.upload .button.disabled,.upload .button.disabled:hover{background:0 0;color:inherit;border-color:inherit}.upload .count{float:right;line-height:52px}.upload .progress{background:var(--config-color-success);height:6px;border-radius:3px;margin-bottom:15px!important}.upload .preview:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.upload .preview li{float:right;margin-left:20px!important;margin-bottom:15px!important;background:var(--config-color-background-fade-super);width:150px;height:150px;line-height:148px;text-align:center;border-radius:20px;overflow:hidden;position:relative;cursor:pointer;border:solid 1px var(--config-color-background-dark)}.upload .preview li:hover:before{background:var(--config-color-focus)}.upload .preview li:before{content:'\e807';font-family:fontello;font-size:12px;position:absolute;width:20px;height:20px;display:block;top:8px;left:8px;text-align:center;line-height:20px;vertical-align:middle;border-radius:50%;background:#484848;color:#fff;z-index:1}.upload .preview li img{vertical-align:middle;max-height:150px;max-width:150px;-webkit-filter:drop-shadow(0 0 6px rgba(0, 0, 0, .3));filter:drop-shadow(0 0 1px rgba(0, 0, 0, .3))}.upload.wide .preview li{height:0;width:100%;position:relative;padding-top:30.547%;background:#e7e7e7;border-radius:10px;overflow:hidden;border:solid 1px #f9f9f9;margin:0}.upload.wide .preview li img{border-radius:10px;position:absolute;top:0;width:100%;display:block;opacity:1;max-width:inherit;max-height:inherit}ol{list-style:none;counter-reset:x-counter;padding:0}ol li{counter-increment:x-counter;line-height:30px;margin-bottom:30px;margin-right:45px}ol li::before{display:inline-block;content:counter(x-counter);color:var(--config-color-background-fade);background:var(--config-color-focus);border:solid 2px var(--config-color-focus);margin-left:15px;margin-right:-45px;width:26px;height:26px;border-radius:50%;text-align:center;line-height:26px}.required{color:var(--config-color-danger);font-size:8px;position:relative;top:-8px}.drop-list{position:relative;outline:0}.drop-list.open ul{display:block}.drop-list ul{position:relative;background:var(--config-color-background-fade);border-radius:10px;box-shadow:0 0 3px rgba(0,0,0,.05);padding:30px;display:block;border-bottom:none;box-shadow:0 0 6px rgba(0,0,0,.1);display:none;position:absolute;bottom:calc(100% + 10px);z-index:2;padding:0;right:-10px;max-width:280px;min-width:240px}.drop-list ul.padding-tiny{padding:5px}.drop-list ul.padding-xs{padding:10px}.drop-list ul.padding-small{padding:15px}.drop-list ul.y-scroll{overflow-y:auto}.drop-list ul.danger{background:var(--config-color-danger);color:#fff}.drop-list ul.danger .box{color:var(--config-color-normal);background:var(--config-color-background-fade)}.drop-list ul.danger>.button,.drop-list ul.danger>button{background:#fff;color:var(--config-color-danger)}.drop-list ul.note{background:var(--config-note-background)}.drop-list ul.focus{background:var(--config-color-focus);color:var(--config-color-background-fade)}.drop-list ul.focus .button,.drop-list ul.focus button{background:var(--config-color-background-fade);color:var(--config-color-focus)}.drop-list ul.line{background:0 0;border:solid 1px var(--config-color-background-dark);box-shadow:none}.drop-list ul.warning{background:var(--config-color-warning);color:#2d2d2d}.drop-list ul.warning .button,.drop-list ul.warning button{background:rgba(45,45,45,.8);color:var(--config-color-success)}.drop-list ul .tabs{border-bottom:solid 1px var(--config-border-color);margin:0 -30px;padding:0 30px!important}.drop-list ul>footer{margin:0 -30px -30px -30px;padding:15px 30px;background:var(--config-color-background-fade);border:solid 1px var(--config-border-color);border-radius:0 0 10px 10px}.drop-list ul hr{height:1px;background:var(--config-console-background);border:none;margin:30px -30px}.drop-list ul .label{position:absolute;top:10px;z-index:2;left:10px}.drop-list ul.fade-bottom{position:relative;overflow:hidden}.drop-list ul.fade-bottom:after{content:"";position:absolute;display:block;bottom:15px;width:100%;background:#000;background:linear-gradient(180deg,rgba(0,0,0,0) 0,var(--config-color-background-fade) 80%);height:100px;margin:0 -15px}.drop-list ul .header{position:static;height:40px;padding:20px 30px 20px 30px;margin-bottom:30px;margin:-30px -30px 20px -30px;background:var(--config-color-background-fade);border-bottom:solid 1px #efefef}.drop-list ul ul.numbers>li{position:relative;margin-right:30px;margin-left:50px}.drop-list ul ul.numbers>li hr{margin-right:-60px;margin-left:-80px}.drop-list ul ul.numbers>li .settings{position:absolute;top:3px;left:-50px}.drop-list ul ul.numbers>li::after{display:block;width:25px;height:25px;line-height:25px;font-size:13px;font-weight:500;border-radius:50%;background:var(--config-color-focus);color:var(--config-color-background);counter-increment:section;content:counter(section);text-align:center;position:absolute;top:3px;right:-45px}.drop-list ul .scroll{margin:0 -30px;overflow-y:scroll}.drop-list ul .scroll table{width:100%;margin:0}.drop-list ul ul.sortable{counter-reset:section}.drop-list ul ul.sortable>li [data-move-down].round,.drop-list ul ul.sortable>li [data-move-up].round,.drop-list ul ul.sortable>li [data-remove].round{background:var(--config-color-focus);color:var(--config-color-background-fade);width:25px;height:25px;line-height:25px;display:inline-block;text-align:center;padding:0;margin-left:5px}.drop-list ul ul.sortable>li [data-move-down].round:disabled,.drop-list ul ul.sortable>li [data-move-up].round:disabled,.drop-list ul ul.sortable>li [data-remove].round:disabled{display:none}.drop-list ul ul.sortable>li:first-child [data-move-up]{display:none}.drop-list ul ul.sortable>li:first-child [data-move-up]:disabled{display:inline-block;background:var(--config-color-background)}.drop-list ul ul.sortable>li:last-child [data-move-down]{display:none}.drop-list ul ul.sortable>li:last-child [data-move-down]:disabled{display:inline-block;background:var(--config-color-background)}.drop-list ul .toggle{position:relative;border-top:1px solid var(--config-console-background);border-bottom:1px solid var(--config-console-background);margin:0 -30px;padding:30px 30px 0 30px;height:65px;overflow:hidden}.drop-list ul .toggle.list{border-bottom:none}.drop-list ul .toggle.sorts button.ls-ui-open{width:calc(100% - 100px)}.drop-list ul .toggle button.ls-ui-open{left:0;position:absolute;top:0;width:100%;height:95px;background:0 0;opacity:.5;border-radius:0}.drop-list ul .toggle .icon-minus,.drop-list ul .toggle .icon-up-open{display:none}.drop-list ul .toggle .content{display:none}.drop-list ul .toggle.open{height:auto}.drop-list ul .toggle.open .icon-minus,.drop-list ul .toggle.open .icon-up-open{display:block}.drop-list ul .toggle.open .icon-down-open,.drop-list ul .toggle.open .icon-plus{display:none}.drop-list ul .toggle.open .content{display:block}.drop-list ul .list li{border-bottom:solid 2px var(--config-border-color);margin:0 -30px 30px -30px;padding:0 30px 30px 30px}.drop-list ul .list li:last-child{padding-bottom:0;margin-bottom:0;border-bottom:none}@media only screen and (max-width:550px){.drop-list ul .list li .actions{float:none}}.drop-list ul .list li .avatar{display:block}.drop-list ul .list li .avatar.inline{display:inline-block}.drop-list ul.new{text-align:center}.drop-list ul.new i{font-size:80px;line-height:80px;font-family:Poppins,sans-serif;font-style:normal;font-weight:300}.drop-list ul.new b{margin-top:20px;display:block}.drop-list ul .info{margin:0 -30px;padding:20px 30px;background:var(--config-modal-note-background);color:var(--config-modal-note-color);border-top:solid 1px var(--config-modal-note-border);border-bottom:solid 1px var(--config-modal-note-border)}.drop-list ul .info hr{background:var(--config-modal-note-border)!important}.drop-list ul .table-wrap{margin:0 -30px;overflow-y:scroll}.drop-list ul .table-wrap table{margin:0}.drop-list ul:before{border:solid;border-color:var(--config-color-background-fade) transparent;border-width:8px 8px 0 8px;bottom:-8px;content:"";position:absolute;z-index:99;right:30px}.drop-list ul.arrow-end:before{left:30px;right:unset}.drop-list ul li{border-bottom:solid 1px var(--config-color-fade-super);margin:0;padding:0}.drop-list ul li:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.drop-list ul li:first-child{border-radius:10px 10px 0 0}.drop-list ul li:last-child{border-radius:0 0 10px 10px}.drop-list ul li:hover{background:var(--config-color-fade-super)}.drop-list ul li:first-child:hover,.drop-list ul li:last-child:hover{border-color:transparent}.drop-list ul li .link,.drop-list ul li a,.drop-list ul li button.link{display:block;vertical-align:middle;height:auto;line-height:30px;display:inline-block;padding:10px 15px!important;color:inherit;font-size:14px;border:none;cursor:pointer;width:calc(100% - 30px);text-align:right;box-sizing:content-box}.drop-list ul li.disabled .link:hover,.drop-list ul li.disabled a:hover{background:0 0}.drop-list ul li .avatar{width:30px;height:30px;margin-left:10px;float:right}.drop-list ul li:last-child{border-bottom:none}.drop-list.bottom ul{bottom:auto;margin-top:-2px}.drop-list.bottom ul:before{bottom:auto;top:-8px;border-width:0 8px 8px 8px}.drop-list.end ul{left:-10px;right:auto}.disabled{opacity:.2;cursor:default}.disabled .button,.disabled .link,.disabled a,.disabled button{cursor:default!important}.disabled .button:hover,.disabled .link:hover,.disabled a:hover,.disabled button:hover{background:0 0}.tags{-webkit-appearance:none;-moz-appearance:none;-webkit-transform:translateZ(0);box-sizing:content-box;color:#313131;height:40px;line-height:40px;border:solid 1px var(--config-color-fade-light);border-radius:10px;padding:5px 15px;font-size:16px;display:block;width:calc(100% - 32px);margin-bottom:30px;background:var(--config-color-background-input);min-height:42px;height:auto;cursor:text}.tags[type=file]{line-height:0;padding:15px;height:auto}.tags:focus{outline:0;border-color:#b3d7fd}.tags:disabled{color:var(--config-color-normal);background:var(--config-color-fade-super);opacity:1!important}.tags.strip{border:none;border-radius:0;padding:5px 0;width:100%;background-color:transparent;background-position:left 2px top 50%;border-bottom:solid 1px var(--config-color-fade-light);color:var(--config-color-placeholder)}.tags.strip:focus{border-color:#b3d7fd}.tags:-webkit-autofill::first-line{font-weight:300;font-size:16px}.tags .add{display:inline-block!important;border:none;padding:0;width:auto;margin:0;max-width:100%;min-width:200px}.tags ul.tags-list{display:inline;white-space:pre-line}.tags ul.tags-list li{display:inline-block!important;margin-left:10px;font-size:16px;padding:5px 10px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tags ul.tags-list li::before{float:left;content:'\e807';font-family:fontello;font-style:normal;display:inline-block;text-align:center;line-height:16px;width:16px;height:16px;font-size:12px;background:#000;color:#fff;border-radius:50%;margin-top:4px;margin-bottom:4px;margin-right:6px;margin-left:0}.switch-theme{background:var(--config-switch-background);border-radius:19px;height:26px;width:44px;margin:9px 0}.switch-theme button{padding:3px;display:block;background:0 0;height:26px;width:100%}.switch-theme i{background:var(--config-color-background-fade);border-radius:50%;height:18px;width:18px;line-height:18px;font-size:12px;padding:0;margin:0;color:var(--config-color-fade)}.switch-theme i.force-light{float:left}.switch-theme i.force-dark{float:right}.dot{width:20px;height:20px;background:var(--config-color-fade);border-radius:50%;display:inline-block;vertical-align:middle;margin:0!important;padding:0!important}.dot.danger{background:var(--config-color-danger)!important}.dot.success{background:var(--config-color-success)!important}.dot.warning{background:var(--config-color-warning)!important}.dot.info{background:var(--config-color-info)!important}.console{width:100%;padding:0;overscroll-behavior:none}.console body{position:relative;width:calc(100% - 320px);padding-top:70px;padding-bottom:0;padding-left:50px;padding-right:270px;margin:0;color:var(--config-color-normal);background:var(--config-console-background)}.console body .project-only{display:none!important}.console body.show-nav .project-only{display:inline-block!important}.console body.hide-nav{padding-right:50px;width:calc(100% - 100px)}.console body.hide-nav header{width:calc(100% - 50px)}.console body.hide-nav header .logo{display:inline-block}.console body.hide-nav .console-back{display:block}.console body.hide-nav .console-index{display:none}.console body.hide-nav .account{display:none}.console body.index .console-back{display:none}.console body.index .console-index{display:block}.console body.index .account{display:block}.console body .console-index{display:block}.console body .console-back{display:none}.console main{min-height:480px}.console header{position:fixed;top:0;width:calc(100% - 280px);height:40px;line-height:40px;padding:15px 30px;background:var(--config-color-background-fade);box-shadow:0 0 2px rgba(0,0,0,.1);margin:0 -50px;z-index:2;font-size:14px}.console header .logo{display:none;border:none}.console header .logo:hover{border:none;opacity:.8}.console header .logo img{height:26px;margin:7px 0}.console header .setup-new{width:40px;height:40px;line-height:40px}.console header .list{width:240px}.console header .list select{height:40px;line-height:40px;padding-top:0;padding-bottom:0;border:none;border-radius:26px;background-color:var(--config-console-nav-switch-background);color:var(--config-console-nav-switch-color)}.console header .account{margin-right:25px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.console header .switch-theme{margin:2px 0}.console header .avatar{height:40px;width:40px}.console header .account-button{background:0 0;position:absolute;width:100%;height:40px;border-radius:0;z-index:1}.console header .notifications{position:relative;font-size:20px}.console header .notifications a{color:#1b3445}.console header .notifications:after{position:absolute;content:"";display:block;background:var(--config-color-danger);width:8px;height:8px;border-radius:50%;top:3px;left:3px}.console header nav{background:#1b3445;background:linear-gradient(var(--config-console-nav-start),var(--config-console-nav-end));color:#788c99;position:fixed;height:100%;width:220px;top:0;right:0}.console header nav .logo{height:39px;padding:15px 20px;display:block}.console header nav .logo img{display:inline-block;margin-top:7px;margin-bottom:14px}.console header nav .logo svg g{fill:var(--config-color-focus)}.console header nav .icon{display:block;border:none;margin:18px 10px 50px 10px}.console header nav .icon img{display:block}.console header nav .icon:hover{border-bottom:none}.console header nav .icon:hover svg g{fill:var(--config-color-focus)}.console header nav .container{overflow:auto;height:calc(100% - 133px);width:100%}.console header nav .project-box{padding:20px;text-align:center;display:block;border:none;line-height:100px;height:100px}.console header nav .project-box img{max-height:80px;max-width:80%;display:inline-block;vertical-align:middle}.console header nav .project{display:block;padding:85px 25px 20px 25px;color:#788c99;position:relative;border:none;height:20px}.console header nav .project:hover{border-bottom:none}.console header nav .project .name{height:20px;line-height:20px;margin:0;padding:0;display:inline-block;max-width:100%}.console header nav .project .arrow{display:block;position:absolute;left:5px;top:10px;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #788c99;transform:rotate(225deg)}.console header nav .project img{position:absolute;bottom:40px;display:block;margin-bottom:10px;max-height:35px;max-width:40%}.console header nav .subtitle{padding:0 30px;display:block;font-size:12px;font-weight:300}.console header nav .links{margin-bottom:15px!important}.console header nav .links.top{border:none;padding-bottom:0;margin-bottom:5px!important}.console header nav .links.bottom{position:absolute;bottom:0;left:0;right:0;padding-bottom:0;border:none;margin-bottom:0!important;box-shadow:0 0 10px rgba(0,0,0,.1)}.console header nav .links.bottom a{border-top:solid 1px var(--config-console-nav-border);border-bottom:none}.console header nav .links .sub{display:inline-block;border:none;width:25px;height:25px;line-height:25px;border-radius:50%;padding:0;background:var(--config-color-focus);color:#fff;text-align:center;font-size:12px;margin:18px}.console header nav .links .sub i{width:auto;margin:0}.console header nav .links .sub:hover{border:none}.console header nav .links a{padding:8px 20px;border:none;display:block;color:#87a5b9;font-weight:400;border-right:solid 5px transparent;font-size:13px}.console header nav .links a i{margin-left:8px;width:22px;display:inline-block}.console header nav .links a.selected,.console header nav .links a:hover{color:#e4e4e4}.console header nav:after{content:'';display:block;position:absolute;background:#302839;height:100px;width:100%;bottom:-100px}.console>footer{width:calc(100% + 100px);margin:0 -50px;box-sizing:border-box;background:0 0;padding-left:30px;padding-right:30px}.console>footer ul{float:none;text-align:center}.console>footer ul li{float:none;display:inline-block}.console .projects{position:relative}.console .projects:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.console .projects li{float:right;margin-left:50px;margin-bottom:50px;width:270px}.console .projects li:nth-child(3n){margin-left:0}.console .dashboard{padding:20px;overflow:hidden;position:relative;z-index:1;margin-bottom:2px}.console .dashboard .chart{width:80%}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.console .dashboard .chart{width:100%}}.console .dashboard hr{margin:20px -25px;height:2px;background:var(--config-console-background)}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.console .dashboard hr{height:3px}}.console .dashboard footer{margin:-20px;padding:20px;background:#fcfeff;border:none;color:var(--config-color-link)}.console .dashboard .col{position:relative}.console .dashboard .col:last-child:after{display:none}.console .dashboard .col:after{content:"";display:block;width:2px;background:var(--config-console-background);position:absolute;top:-20px;bottom:-20px;left:24px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.console .dashboard .col:after{width:calc(100% + 40px);height:3px;position:static;margin:20px -20px}}.console .dashboard .value{color:var(--config-color-focus);vertical-align:bottom;line-height:45px}.console .dashboard .value.small{line-height:35px}.console .dashboard .value .sum{font-size:45px;line-height:45px;font-weight:700;vertical-align:bottom}.console .dashboard .value .sum.small{font-size:25px;line-height:25px}.console .dashboard .unit{font-weight:500;line-height:20px;vertical-align:bottom;font-size:16px;display:inline-block;margin-bottom:5px;margin-right:5px;color:var(--config-color-focus)}.console .dashboard .metric{color:var(--config-color-focus);font-weight:400;font-size:13px;line-height:16px}.console .dashboard .range{color:var(--config-color-fade);font-weight:400;font-size:14px;line-height:16px}.console .dashboard a{display:block;font-weight:400;font-size:14px;line-height:16px;padding:0;border:none}.console .chart-metric{width:19%}@media only screen and (min-width:551px) and (max-width:1198px),only screen and (max-width:550px){.console .chart-metric{width:100%}}.console .chart{width:100%;position:relative;height:0;padding-top:20px;padding-bottom:26%;margin-left:-2px;overflow:hidden;background-color:var(--config-color-background-fade);background-image:linear-gradient(transparent 1px,transparent 1px),linear-gradient(90deg,transparent 1px,transparent 1px),linear-gradient(var(--config-border-color) 1px,transparent 1px),linear-gradient(90deg,var(--config-border-color) 1px,transparent 1px);background-size:100px 100px,100px 100px,20px 20px,20px 20px;background-position:-2px -2px,-2px -2px,-1px -1px,-1px -1px;background-repeat:round;border:solid 1px var(--config-border-color);border-right:solid 1px transparent;border-bottom:solid 1px transparent}@media only screen and (min-width:551px) and (max-width:1198px),only screen and (max-width:550px){.console .chart{width:100%;padding-bottom:32%;float:none;margin-bottom:20px}}.console .chart canvas{position:absolute;bottom:0;display:block;height:100%;width:100%}.console .chart-notes{font-size:12px}.console .chart-notes li{line-height:20px;display:inline-block;margin-left:15px}.console .chart-notes li::before{display:inline-block;content:'';width:14px;height:14px;background:var(--config-color-normal);border-radius:50%;margin-left:8px;vertical-align:middle}.console .chart-notes li.blue,.console .chart-notes li:nth-child(1){color:#29b5d9}.console .chart-notes li.blue::before,.console .chart-notes li:nth-child(1)::before{background:#29b5d9}.console .chart-notes li.green,.console .chart-notes li:nth-child(2){color:#4eb55b}.console .chart-notes li.green::before,.console .chart-notes li:nth-child(2)::before{background:#4eb55b}.console .chart-notes li.orange,.console .chart-notes li:nth-child(3){color:#ec9323}.console .chart-notes li.orange::before,.console .chart-notes li:nth-child(3)::before{background:#ec9323}.console .chart-notes li.red,.console .chart-notes li:nth-child(4){color:#dc3232}.console .chart-notes li.red::before,.console .chart-notes li:nth-child(4)::before{background:#dc3232}.console .community a{padding:0 10px;display:inline-block}.console .link-list li{margin-bottom:15px}.console .link-list i{display:inline-block;width:30px;height:30px;line-height:30px;text-align:center;background:var(--config-color-fade);color:var(--config-color-fade-super);border-radius:50%;margin-left:15px}.console .link-list i.fade{background:0 0;color:var(--config-color-fade)}.console .provider{width:50px;height:50px;background:#f5f5f5;color:#868686;line-height:50px;text-align:center;font-size:25px;border-radius:50%}.console .provider.facebook{color:#fff;background:#3b5998}.console .provider.twitter{color:#fff;background:#55beff}.console .provider.telegram{color:#fff;background:#3ba9e1}.console .provider.github{color:#fff;background:#24292e}.console .provider.whatsapp{color:#fff;background:#25d366}.console .provider.linkedin{color:#fff;background:#1074af}.console .provider.microsoft{color:#fff;background:#137ad4}.console .provider.google{color:#fff;background:#4489f1}.console .provider.bitbucket{color:#fff;background:#2a88fb}.console .provider.gitlab{color:#faa238;background:#30353e}.console .provider.instagram{color:#fff;background:radial-gradient(circle at 30% 107%,#fdf497 0,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)}.console .premium{z-index:3;margin-top:320px}.console .premium .message{height:190px;overflow:hidden;position:absolute;top:-280px}.console .premium:after{content:'';position:absolute;top:0;left:-20px;right:-20px;bottom:-20px;background:var(--config-color-background);opacity:.7;z-index:300}.console .app-section{height:90px}.console .confirm{background:var(--config-color-link);color:#fff;border-radius:25px;padding:12px;line-height:28px;text-align:center}.console .confirm .action{font-weight:500;cursor:pointer}.console .platforms{overflow:hidden}.console .platforms .box{overflow:hidden}.console .platforms .box img{width:50px;margin:0 auto;margin-bottom:20px}.console .platforms .box .cover{margin:-30px -30px 30px -30px;padding:30px}.console .platforms .box .cover.android{background:#a4ca24}.console .platforms .box .cover.android h1{color:#fff;font-size:18px;margin-top:20px}.console .platforms .col{text-align:center;line-height:30px}.console .platforms a{display:block;margin:-20px;padding:20px}.console .platforms a:hover{background:#fbfeff}.console .platforms img{display:block;margin:0 30px;width:calc(100% - 60px);border-radius:50%;margin-bottom:20px}.console .document-nav{display:none;position:sticky;top:90px}@media only screen and (min-width:1380px){.console .document-nav{display:block}}.console .document-nav ul{position:absolute;width:200px;right:-260px}.console .document-nav ul li{margin-bottom:20px}.console .document-nav ul li .selected{font-weight:500}.console .scroll-to{display:none}@media only screen and (min-width:1199px){.console .logo .top{display:none!important}}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.console>header{width:calc(100% - 30px)!important;margin:0 -30px;padding:15px}.console>header nav{width:100%;height:70px;overflow:hidden}.console>header nav.close{background:0 0}.console>header nav.close .logo .nav{display:none!important}.console>header nav.open{height:100%}.console>header nav.open .logo .top{display:none!important}.console>header nav.open .bottom{display:block!important}.console>header nav.open button{color:#87a5b9}.console>header nav button{margin:9px;background:0 0;color:var(--config-color-normal)}.console>header nav button:focus,.console>header nav button:hover{background:0 0}.console>header nav .logo{display:block!important;position:absolute;top:0;left:50%;margin:auto;transform:translateX(-50%)}.console>header nav .bottom{display:none!important}.console>footer{width:auto;margin:50px -30px 0 -30px!important;padding:0 30px 30px 30px}.console body{height:"calc(100% - 70px)"!important;width:calc(100% - 60px)!important;padding:70px 30px 0 30px!important}.console .cover{padding:25px 30px;margin:0 -30px}}@media only screen and (max-width:550px){.console body{height:"calc(100% - 70px)"!important;width:calc(100% - 40px)!important;padding:70px 20px 0 20px!important}.console .cover{padding:20px 20px;margin:0 -20px}.console>header{margin:0 -20px}.console>header .list{width:175px;font-size:14px}.console>footer{margin:50px -20px 0 -20px!important;padding:0 20px 20px 20px}}.dev-feature{display:none}.prod-feature{display:none}.development .dev-feature{display:block;opacity:.6!important;outline:solid #ff0 3px;outline-offset:3px}.development .dev-feature.dev-inline{display:inline-block}.development .prod-feature{display:none}.production .dev-feature{display:none}.production .prod-feature{display:block}.search{opacity:1!important}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.search button{margin-top:20px}}html.home body{padding:0 50px;color:var(--config-color-normal)}html.home .logo a{display:block}html.home .logo a:hover{opacity:.8}html.home .logo img{max-height:35px;width:198px;margin:45px auto 25px auto}html.home footer{background:0 0;text-align:center}html.home main{min-height:400px}.alerts ul{width:100%;visibility:hidden;position:fixed;padding:0;left:0;right:0;color:var(--config-color-normal);z-index:1001;margin:0 auto;bottom:15px;max-width:560px}.alerts ul li{margin:10px 0 0 0;padding:0}.alerts ul li div.message{position:relative;padding:12px 35px;margin:0 auto;list-style:none;background:var(--config-color-background-dark);text-align:center;font-size:14px;border-radius:10px;line-height:16px;min-height:16px;box-shadow:0 0 10px rgba(0,0,0,.05);opacity:.95}.alerts ul li div.message a,.alerts ul li div.message span{font-weight:600}.alerts ul li div.message a{border-bottom:dotted 1px var(--config-color-normal)}.alerts ul li div.message i{cursor:pointer;position:absolute;font-size:14px;line-height:20px;top:9px;right:9px;color:var(--config-color-background-dark);background:var(--config-color-normal);width:22px;height:22px;border-radius:50%}.alerts ul li div.message.error{color:#fff!important;background:var(--config-color-danger)!important}.alerts ul li div.message.error a{color:#fff!important;border-bottom:dotted 1px #fff!important}.alerts ul li div.message.error i{color:var(--config-color-danger);background:#fff}.alerts ul li div.message.success{color:#fff!important;background:var(--config-color-success)!important}.alerts ul li div.message.success a{color:#fff;border-bottom:dotted 1px #fff}.alerts ul li div.message.success i{color:var(--config-color-success);background:#fff}.alerts ul li div.message.warning{color:var(--config-color-normal)!important;background:var(--config-color-warning)!important}.alerts ul li div.message.warning a{color:var(--config-color-normal)!important;border-bottom:dotted 1px var(--config-color-normal)!important}.alerts ul li div.message.warning i{color:#fff;background:var(--config-color-normal)!important}.alerts ul li div.message.open{display:block}.alerts ul li div.message.close{display:none}.alerts .cookie-alert{background:var(--config-color-focus-fade)!important;color:var(--config-color-focus)}.alerts .cookie-alert a{color:var(--config-color-focus);font-weight:400;border-bottom:dotted 1px var(--config-color-focus)!important}.alerts .cookie-alert i{color:var(--config-color-focus-fade)!important;background:var(--config-color-focus)!important}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.alerts ul{top:auto;bottom:0;max-width:100%;right:0}.alerts ul li{margin:5px 0 0 0}.alerts ul li div.message{border-radius:0}}.show-nav .alerts ul{right:220px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.show-nav .alerts ul{right:0}}article{overflow-wrap:break-word;word-wrap:break-word}article h1{font-size:36px}article h2{font-size:24px}article h3{font-size:20px}article h4{font-size:20px}article h5{font-size:18px}article h6{font-size:16px}article h1,article h2,article h3,article h4,article h5,article h6{margin-top:30px!important;margin-bottom:30px!important}article p{line-height:32px;font-size:16px}article .update{display:block;margin-top:50px!important}article table{width:100%;margin:0;margin-bottom:30px!important;border-radius:0;border-bottom:solid 1px var(--config-border-color)}article table thead td{font-weight:500;padding:5px 15px}article table td,article table th{padding:15px;height:auto}article table td:first-child,article table th:first-child{padding-right:10px}article table td:last-child,article table th:last-child{padding-left:10px}article table td p,article table th p{font-size:inherit;line-height:inherit}article table td p:last-child,article table th p:last-child{margin:0}.avatar-container{position:relative}.avatar-container .corner{position:absolute;bottom:-3px;left:-3px}.avatar{width:60px;height:60px;border-radius:50%;background:var(--config-color-background-focus);display:inline-block;overflow:hidden;box-shadow:0 0 6px rgba(0,0,0,.09);position:relative;z-index:1;opacity:1!important}.avatar:before{content:"";position:absolute;width:100%;height:100%;z-index:0;background:var(--config-color-background-focus)}.avatar.inline{display:inline-block;vertical-align:middle}.avatar.trans{background:0 0}.avatar .no-shadow{box-shadow:none}.avatar.xs{width:30px;height:30px}.avatar.xxs{width:20px;height:20px}.avatar.small{width:50px;height:50px}.avatar.big{width:100px;height:100px}.avatar.huge{width:150px;height:150px}.box{position:relative;background:var(--config-color-background-fade);border-radius:10px;box-shadow:0 0 3px rgba(0,0,0,.05);padding:30px;display:block;border-bottom:none}.box.padding-tiny{padding:5px}.box.padding-xs{padding:10px}.box.padding-small{padding:15px}.box.y-scroll{overflow-y:auto}.box.danger{background:var(--config-color-danger);color:#fff}.box.danger .box{color:var(--config-color-normal);background:var(--config-color-background-fade)}.box.danger>.button,.box.danger>button{background:#fff;color:var(--config-color-danger)}.box.note{background:var(--config-note-background)}.box.focus{background:var(--config-color-focus);color:var(--config-color-background-fade)}.box.focus .button,.box.focus button{background:var(--config-color-background-fade);color:var(--config-color-focus)}.box.line{background:0 0;border:solid 1px var(--config-color-background-dark);box-shadow:none}.box.warning{background:var(--config-color-warning);color:#2d2d2d}.box.warning .button,.box.warning button{background:rgba(45,45,45,.8);color:var(--config-color-success)}.box .tabs{border-bottom:solid 1px var(--config-border-color);margin:0 -30px;padding:0 30px!important}.box>footer{margin:0 -30px -30px -30px;padding:15px 30px;background:var(--config-color-background-fade);border:solid 1px var(--config-border-color);border-radius:0 0 10px 10px}.box hr{height:1px;background:var(--config-console-background);border:none;margin:30px -30px}.box .label{position:absolute;top:10px;z-index:2;left:10px}.box.fade-bottom{position:relative;overflow:hidden}.box.fade-bottom:after{content:"";position:absolute;display:block;bottom:15px;width:100%;background:#000;background:linear-gradient(180deg,rgba(0,0,0,0) 0,var(--config-color-background-fade) 80%);height:100px;margin:0 -15px}.box .header{position:static;height:40px;padding:20px 30px 20px 30px;margin-bottom:30px;margin:-30px -30px 20px -30px;background:var(--config-color-background-fade);border-bottom:solid 1px #efefef}.box ul.numbers>li{position:relative;margin-right:30px;margin-left:50px}.box ul.numbers>li hr{margin-right:-60px;margin-left:-80px}.box ul.numbers>li .settings{position:absolute;top:3px;left:-50px}.box ul.numbers>li::after{display:block;width:25px;height:25px;line-height:25px;font-size:13px;font-weight:500;border-radius:50%;background:var(--config-color-focus);color:var(--config-color-background);counter-increment:section;content:counter(section);text-align:center;position:absolute;top:3px;right:-45px}.box .scroll{margin:0 -30px;overflow-y:scroll}.box .scroll table{width:100%;margin:0}.box ul.sortable{counter-reset:section}.box ul.sortable>li [data-move-down].round,.box ul.sortable>li [data-move-up].round,.box ul.sortable>li [data-remove].round{background:var(--config-color-focus);color:var(--config-color-background-fade);width:25px;height:25px;line-height:25px;display:inline-block;text-align:center;padding:0;margin-left:5px}.box ul.sortable>li [data-move-down].round:disabled,.box ul.sortable>li [data-move-up].round:disabled,.box ul.sortable>li [data-remove].round:disabled{display:none}.box ul.sortable>li:first-child [data-move-up]{display:none}.box ul.sortable>li:first-child [data-move-up]:disabled{display:inline-block;background:var(--config-color-background)}.box ul.sortable>li:last-child [data-move-down]{display:none}.box ul.sortable>li:last-child [data-move-down]:disabled{display:inline-block;background:var(--config-color-background)}.box .toggle{position:relative;border-top:1px solid var(--config-console-background);border-bottom:1px solid var(--config-console-background);margin:0 -30px;padding:30px 30px 0 30px;height:65px;overflow:hidden}.box .toggle.list{border-bottom:none}.box .toggle.sorts button.ls-ui-open{width:calc(100% - 100px)}.box .toggle button.ls-ui-open{left:0;position:absolute;top:0;width:100%;height:95px;background:0 0;opacity:.5;border-radius:0}.box .toggle .icon-minus,.box .toggle .icon-up-open{display:none}.box .toggle .content{display:none}.box .toggle.open{height:auto}.box .toggle.open .icon-minus,.box .toggle.open .icon-up-open{display:block}.box .toggle.open .icon-down-open,.box .toggle.open .icon-plus{display:none}.box .toggle.open .content{display:block}.box .list li{border-bottom:solid 2px var(--config-border-color);margin:0 -30px 30px -30px;padding:0 30px 30px 30px}.box .list li:last-child{padding-bottom:0;margin-bottom:0;border-bottom:none}@media only screen and (max-width:550px){.box .list li .actions{float:none}}.box .list li .avatar{display:block}.box .list li .avatar.inline{display:inline-block}.box.new{text-align:center}.box.new i{font-size:80px;line-height:80px;font-family:Poppins,sans-serif;font-style:normal;font-weight:300}.box.new b{margin-top:20px;display:block}.box .info{margin:0 -30px;padding:20px 30px;background:var(--config-modal-note-background);color:var(--config-modal-note-color);border-top:solid 1px var(--config-modal-note-border);border-bottom:solid 1px var(--config-modal-note-border)}.box .info hr{background:var(--config-modal-note-border)!important}.box .table-wrap{margin:0 -30px;overflow-y:scroll}.box .table-wrap table{margin:0}a.box{border-right:none;border-left:none}a.box:hover{box-shadow:0 0 1px rgba(0,0,0,.2);opacity:.7}.box-asidex{padding-left:25px!important;padding-right:70px;left:0;background:#f9f9f9;border-radius:0 10px 10px 0;height:calc(100% - 30px);position:absolute;padding-top:30px}.box-asidex:after{content:"";display:block;position:absolute;height:100%;width:51px;background:#fff;top:0;bottom:0;right:-6px}.cover{background:var(--config-color-focus-fade);padding:30px 50px;margin:0 -50px;position:relative;border-bottom:solid 1px var(--config-border-fade)}.cover .title,.cover h1,.cover h2,.cover h3,.cover h4{color:var(--config-color-focus);font-weight:600;margin-bottom:50px!important;font-size:28px;line-height:42px}.cover .title span,.cover h1 span,.cover h2 span,.cover h3 span,.cover h4 span{font-weight:600}.cover i:before{margin:0!important}.cover p{color:var(--config-color-fade)}.cover .button{color:#fff}.cover .link,.cover a{color:var(--config-color-focus);border-left:none;border-right:none;cursor:pointer}.cover .link:hover,.cover a:hover{border-bottom-color:var(--config-color-focus)}.console .database .row .col{height:452px}.console .database .row .col:after{width:2px;left:20px}.console .database hr{margin:0 -20px;background:var(--config-color-background);height:1px}.console .database h3{font-size:13px;line-height:20px;height:20px;background-color:var(--config-color-fade-super);margin:-20px -20px 0 -20px;padding:10px 20px;border-bottom:solid 1px var(--config-color-background);font-weight:600}.console .database .empty{height:162px;font-size:12px;text-align:center;margin:50px 0}.console .database .empty h4{font-size:13px;font-weight:600;line-height:120px}.console .database .search{background-color:var(--config-color-fade-super);margin:0 -20px 0 -20px;padding:10px 15px}.console .database .search input{height:40px;background-color:#fff;border-radius:25px;padding-top:0;padding-bottom:0}.console .database .code{height:411px;background:var(--config-color-fade-super);margin:0 -20px -20px -20px;padding:20px;width:calc(100% - 10px)}.console .database .code .ide{overflow:scroll;height:451px;margin:-20px;box-shadow:none;border-radius:0}.console .database .paging{background:var(--config-color-fade-super);margin:0 -20px -20px -20px;padding:20px}.console .database .button{margin:0 -20px;padding:0 20px!important;text-align:inherit;color:var(--config-color-focus);width:100%;font-size:15px;line-height:55px;box-sizing:content-box}.console .database .button i{margin-left:8px}.console .database .button:hover{border:none;background:var(--config-color-focus-fade)}.console .database .items{margin:0 -20px;height:262px;overflow-x:hidden;overflow-y:scroll}.console .database .items form{opacity:0;position:relative}.console .database .items form button{position:absolute;top:0;bottom:0;right:0;left:0;width:100%;height:45px;border-radius:0;cursor:pointer}.console .database .items li{padding:0;margin:0 0;line-height:45px;font-size:15px;padding-right:50px;padding-left:30px;position:relative}.console .database .items li i{position:absolute;display:none;left:10px}.console .database .items li .name{display:inline-block;width:100%;height:28px}.console .database .items li.selected,.console .database .items li:hover{background:#f5f5f5}.console .database .items li.selected i,.console .database .items li:hover i{display:block}.console .database .items li:last-child{border-bottom:none}body>footer{color:var(--config-color-fade);line-height:40px;margin:0 -50px;padding:12px 50px;font-size:13px;width:100%;background:#f1f1f1;position:relative;margin-top:80px!important}body>footer:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}body>footer .logo img{height:22px;padding-top:12px}body>footer a{color:var(--config-color-fade);font-size:13px}body>footer a:hover{border-bottom-color:var(--config-color-fade)}body>footer ul:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}body>footer ul li{font-size:13px;float:right;margin-left:20px!important}body>footer .copyright{padding-right:2px}[data-ls-if]{display:none}[data-service]{opacity:0}.load-service-start{opacity:0}.load-service-end{opacity:1;transition:opacity .5s ease-out;-moz-transition:opacity .5s ease-out;-webkit-transition:opacity .5s ease-out;-o-transition:opacity .5s ease-out}.load-screen{z-index:100000;position:fixed;height:100%;width:100%;background-color:var(--config-color-background-focus);top:0;right:0}.load-screen.loaded{transition:opacity 1s ease-in-out,top 1s .7s;opacity:0;top:-100%}.load-screen .animation{position:absolute;top:45%;left:50%;transform:translate(-50%,-50%) translateZ(1px);width:140px;height:140px}.load-screen .animation div{box-sizing:border-box;display:block;position:absolute;width:124px;height:124px;margin:10px;border:10px solid var(--config-color-focus);border-radius:50%;animation:animation 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:var(--config-color-focus) transparent transparent transparent}.load-screen .animation div:nth-child(1){animation-delay:-.45s}.load-screen .animation div:nth-child(2){animation-delay:-.3s}.load-screen .animation div:nth-child(3){animation-delay:-.15s}@keyframes animation{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.load-screen img{position:absolute;height:20px;bottom:60px;left:50%;transform:translate(-50%,-50%)}.modal-open .modal-bg,.modal-open body .modal-bg{position:fixed;content:'';display:block;width:100%;height:100%;left:0;right:0;top:0;bottom:0;background:#0c0c0c;opacity:.75;z-index:5}.modal{overflow:auto;display:none;position:fixed;transform:translate3d(0,0,0);width:100%;max-height:90%;max-width:640px;background:var(--config-color-background-fade);z-index:1000;box-shadow:0 0 4px rgba(0,0,0,.25);padding:30px;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:10px;box-sizing:border-box;text-align:right;white-space:initial;line-height:normal}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.modal{width:calc(100% - 20px)}}.modal.full{max-width:none;max-height:none;height:100%;border-radius:0;padding:80px 120px}.modal.full h1{font-weight:700}.modal.padding-tiny{padding:5px}.modal.padding-xs{padding:10px}.modal.padding-small{padding:15px}.modal.height-tiny>form{height:100px}.modal.height-small>form{height:220px}.modal.width-small{max-width:400px}.modal.width-medium{max-width:500px}.modal.width-large{max-width:800px}.modal.open{display:block}.modalbutton.close{display:none}.modal.fill{height:95%;max-height:95%;max-width:75%}.modal h1,.modal h2{margin-bottom:25px;margin-top:0;font-size:20px;text-align:right}.modal h1,.modal h2,.modal h3,.modal h4,.modal h5,.modal h6{color:inherit!important;line-height:35px}.modal .main,.modal>form{position:relative;border-top:solid 1px var(--config-border-color);padding:30px 30px 0 30px;margin:0 -30px}.modal .main.strip,.modal>form.strip{border:none;padding:0;margin:0}.modal .separator{margin:20px -30px}.modal .bullets{padding-right:40px}.modal .bullets li{margin-bottom:30px!important}.modal .bullets li:before{position:absolute}.modal .info{margin:0 -30px;padding:20px 30px;background:var(--config-modal-note-background);color:var(--config-modal-note-color);border-top:solid 1px var(--config-modal-note-border);border-bottom:solid 1px var(--config-modal-note-border)}.modal .ide.strech{box-shadow:none;border-radius:0;margin:0 -30px}.modal .ide pre{overflow:auto}.modal button.close{width:30px;height:30px;line-height:30px;padding:0;margin:0;background:var(--config-color-normal);color:var(--config-color-background-fade);border-radius:50%}.modal .paging form{padding:0;margin:0;border-top:none}.modal.sticky-footer form footer{margin:-30px}.modal.sticky-footer footer{position:sticky;bottom:-30px;background:var(--config-color-background-fade-super);height:50px;z-index:1;padding:30px;box-shadow:0 0 1px rgba(0,0,0,.15)}.modal.sticky-footer footer form{display:inline-block}[data-views-current="0"] .scroll-to,[data-views-current="1"] .scroll-to{opacity:0!important}.scroll-to-bottom .scroll-to,.scroll-to-top .scroll-to{opacity:1}.scroll-to{opacity:0;display:block;width:40px;height:40px;line-height:40px;border-radius:50%;position:fixed;transform:translateZ(0);margin:30px;padding:0;bottom:0;font-size:18px;z-index:100000;transition:opacity .15s ease-in-out;left:0}.phases{list-style:none;margin:0;padding:0;position:relative}.phases li{display:none}.phases li li{display:block}.phases li.selected{display:block}.phases .number{display:none}.phases h2,.phases h3,.phases h4,.phases h5,.phases h6{margin:0 0 30px 0;text-align:inherit}.container{position:relative}.container .tabs{height:55px;line-height:55px;list-style:none;padding:0;margin-bottom:50px!important;margin-top:-55px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.container .tabs:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.container .tabs .selected{font-weight:400;color:var(--config-color-focus);position:relative;opacity:1}.container .tabs .selected:after{content:"";display:block;height:2px;background:var(--config-color-focus);width:calc(100% + 6px);margin:0 -3px;position:absolute;bottom:0;border-radius:2px}.container .tabs .number{display:none}.container .tabs li{float:right;margin-left:50px;color:var(--config-color-focus);opacity:.9;cursor:pointer}.container .tabs li:focus{outline:0}@media only screen and (max-width:550px){.container .tabs li{margin-left:25px}}.container .icon{display:none}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:1198px){.container .tabs{width:auto;overflow-x:scroll;overflow-y:hidden;white-space:nowrap}.container .tabs li{display:inline-block;float:none}}.ide{background-color:var(--config-prism-background);overflow:hidden;position:relative;z-index:1;box-shadow:0 2px 4px 0 rgba(50,50,93,.3);border-radius:10px;margin-bottom:30px}.ide *{font-family:'Source Code Pro',monospace}.ide[data-lang]::after{content:attr(data-lang-label);display:inline-block;background:#fff;color:#000;position:absolute;top:15px;padding:5px 10px;border-radius:15px;font-size:10px;right:10px;opacity:.95}.ide[data-lang=bash]::after{background:var(--config-language-bash);color:var(--config-language-bash-contrast)}.ide[data-lang=javascript]::after{background:var(--config-language-javascript);color:var(--config-language-javascript-contrast)}.ide[data-lang=web]::after{background:var(--config-language-web);color:var(--config-language-web-contrast)}.ide[data-lang=html]::after{background:var(--config-language-html);color:var(--config-language-html-contrast)}.ide[data-lang=php]::after{background:var(--config-language-php);color:var(--config-language-php-contrast)}.ide[data-lang=nodejs]::after{background:var(--config-language-nodejs);color:var(--config-language-nodejs-contrast)}.ide[data-lang=ruby]::after{background:var(--config-language-ruby);color:var(--config-language-ruby-contrast)}.ide[data-lang=python]::after{background:var(--config-language-python);color:var(--config-language-python-contrast)}.ide[data-lang=go]::after{background:var(--config-language-go);color:var(--config-language-go-contrast)}.ide[data-lang=dart]::after{background:var(--config-language-dart);color:var(--config-language-dart-contrast)}.ide[data-lang=flutter]::after{background:var(--config-language-flutter);color:var(--config-language-flutter-contrast)}.ide[data-lang=android]::after{background:var(--config-language-android);color:var(--config-language-android-contrast)}.ide[data-lang=kotlin]::after{background:var(--config-language-kotlin);color:var(--config-language-kotlin-contrast)}.ide[data-lang=java]::after{background:var(--config-language-java);color:var(--config-language-java-contrast)}.ide[data-lang=yaml]::after{background:var(--config-language-yaml);color:var(--config-language-yaml-contrast)}.ide .tag{color:inherit!important;background:0 0!important;padding:inherit!important;font-size:inherit!important;line-height:14px}.ide .copy{cursor:pointer;content:attr(data-lang);display:inline-block;background:#fff;color:#000;position:absolute;transform:translateX(-50%);bottom:-20px;padding:5px 10px;border-radius:15px;font-size:10px;font-style:normal;right:50%;opacity:0;transition:bottom .3s,opacity .3s;line-height:normal;font-family:Poppins,sans-serif}.ide .copy::before{padding-left:5px}.ide:hover .copy{transition:bottom .3s,opacity .3s;opacity:.9;bottom:16px}.ide pre{-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;color:#e6ebf1;font-weight:400;line-height:20px;font-size:13px;margin:0;padding:20px;padding-left:60px}.ide.light{box-shadow:0 2px 4px 0 rgba(50,50,93,.1);background-color:#fff}.ide.light pre{color:#414770}.ide.light .token.cdata,.ide.light .token.comment,.ide.light .token.doctype,.ide.light .token.prolog{color:#91a2b0}.ide.light .token.attr-name,.ide.light .token.builtin,.ide.light .token.char,.ide.light .token.inserted,.ide.light .token.selector,.ide.light .token.string{color:#149570}.ide.light .token.punctuation{color:#414770}.ide.light .language-css .token.string,.ide.light .style .token.string,.ide.light .token.entity,.ide.light .token.operator,.ide.light .token.url,.ide.light .token.variable{color:#414770}.ide.light .line-numbers .line-numbers-rows{background:#f2feef}.ide.light .line-numbers-rows>span:before{color:#5dc79e}.ide.light .token.keyword{color:#6772e4;font-weight:500}code[class*=language-],pre[class*=language-]{text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4}pre[class*=language-]{overflow:auto}:not(pre)>code[class*=language-]{padding:.1em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#6b7c93}.token.punctuation{color:#f8f8f2}.namespace{opacity:.7}.token.constant,.token.deleted,.token.property,.token.symbol,.token.tag{color:#f92672}.token.boolean,.token.number{color:#f79a59}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#3ecf8e}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.class-name,.token.function{color:#45b2e8}.token.keyword{color:#7795f8}.token.important,.token.regex{color:#fd971f}.token.italic{font-style:italic}.token.entity{cursor:help}pre[class*=language-].line-numbers{position:relative;padding-left:60px;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{background:var(--config-prism-numbers);position:absolute;pointer-events:none;top:-20px;bottom:-21px;padding:20px 0;font-size:100%;left:-60px;width:40px;letter-spacing:-1px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{padding-left:5px;pointer-events:none;display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#636365;display:block;padding-right:.8em;text-align:right}html{padding:0;margin:0;direction:rtl}body{margin:0;background:var(--config-console-background) no-repeat fixed;min-width:300px}ul{padding:0;margin:0}ul li{margin:0;list-style:none}.icon-left-open:before{content:'\e814'!important}.icon-right-open:before{content:'\e813'!important}.icon-right-dir:before{content:'\e84e'!important}.icon-left-dir:before{content:'\e84d'!important}.icon-link-ext:before{-moz-transform:scaleX(-1);-o-transform:scaleX(-1);-webkit-transform:scaleX(-1);transform:scaleX(-1)}.icon-article-alt:before{-moz-transform:scaleX(-1);-o-transform:scaleX(-1);-webkit-transform:scaleX(-1);transform:scaleX(-1)}.copy{border-radius:10px 0 0 10px!important} \ No newline at end of file diff --git a/public/styles/dependencies/prism.less b/public/styles/dependencies/prism.less index 53048d3398..fcad3f69dd 100644 --- a/public/styles/dependencies/prism.less +++ b/public/styles/dependencies/prism.less @@ -90,6 +90,21 @@ https://prismjs.com/download.html#themes=prism-okaidia&languages=markup+css+clik color: var(--config-language-flutter-contrast); } + &[data-lang="android"]::after { + background: var(--config-language-android); + color: var(--config-language-android-contrast); + } + + &[data-lang="kotlin"]::after { + background: var(--config-language-kotlin); + color: var(--config-language-kotlin-contrast); + } + + &[data-lang="java"]::after { + background: var(--config-language-java); + color: var(--config-language-java-contrast); + } + &[data-lang="yaml"]::after { background: var(--config-language-yaml); color: var(--config-language-yaml-contrast); diff --git a/public/styles/themes.less b/public/styles/themes.less index 0e5d139b70..23ca059b95 100644 --- a/public/styles/themes.less +++ b/public/styles/themes.less @@ -147,6 +147,12 @@ --config-language-dart-contrast: var(--config-color-background); --config-language-flutter: var(--config-color-normal); --config-language-flutter-contrast: var(--config-color-background); + --config-language-android: var(--config-color-normal); + --config-language-android-contrast: var(--config-color-background); + --config-language-kotlin: var(--config-color-normal); + --config-language-kotlin-contrast: var(--config-color-background); + --config-language-java: var(--config-color-normal); + --config-language-java-contrast: var(--config-color-background); --config-modal-note-background: #15192b; --config-modal-note-border: #161b31; --config-modal-note-color: var(--config-color-normal); diff --git a/src/Appwrite/Database/Adapter.php b/src/Appwrite/Database/Adapter.php index bb650e844f..d8a1d0ecfc 100644 --- a/src/Appwrite/Database/Adapter.php +++ b/src/Appwrite/Database/Adapter.php @@ -130,10 +130,11 @@ abstract class Adapter * Filter data sets using chosen queries * * @param array $options + * @param array $filterTypes * * @return array */ - abstract public function getCollection(array $options); + abstract public function getCollection(array $options, array $filterTypes = []); /** * @param array $options diff --git a/src/Appwrite/Database/Adapter/MySQL.php b/src/Appwrite/Database/Adapter/MySQL.php index 86d79a1122..fc3370c778 100644 --- a/src/Appwrite/Database/Adapter/MySQL.php +++ b/src/Appwrite/Database/Adapter/MySQL.php @@ -517,12 +517,13 @@ class MySQL extends Adapter * Get Collection. * * @param array $options + * @param array $filterTypes * * @throws Exception * * @return array */ - public function getCollection(array $options) + public function getCollection(array $options, array $filterTypes = []) { $start = \microtime(true); $orderCastMap = [ @@ -568,8 +569,14 @@ class MySQL extends Adapter //$path = implode('.', $path); + if(array_key_exists($key, $filterTypes) && $filterTypes[$key] === 'numeric') { + $value = (float) $value; + } else { + $value = $this->getPDO()->quote($value, PDO::PARAM_STR); + } + $key = $this->getPDO()->quote($key, PDO::PARAM_STR); - $value = $this->getPDO()->quote($value, PDO::PARAM_STR); + //$path = $this->getPDO()->quote($path, PDO::PARAM_STR); $options['offset'] = (int) $options['offset']; $options['limit'] = (int) $options['limit']; diff --git a/src/Appwrite/Database/Adapter/Redis.php b/src/Appwrite/Database/Adapter/Redis.php index 4e5619c5ff..68946b0469 100644 --- a/src/Appwrite/Database/Adapter/Redis.php +++ b/src/Appwrite/Database/Adapter/Redis.php @@ -210,14 +210,15 @@ class Redis extends Adapter /** * @param array $options + * @param array $filterTypes * * @return array * * @throws Exception */ - public function getCollection(array $options) + public function getCollection(array $options, array $filterTypes = []) { - $data = $this->adapter->getCollection($options); + $data = $this->adapter->getCollection($options, $filterTypes); $keys = []; foreach ($data as $node) { diff --git a/src/Appwrite/Database/Database.php b/src/Appwrite/Database/Database.php index bf1033eb81..400a145168 100644 --- a/src/Appwrite/Database/Database.php +++ b/src/Appwrite/Database/Database.php @@ -145,10 +145,11 @@ class Database /** * @param array $options + * @param array $filterTypes * * @return Document[] */ - public function getCollection(array $options) + public function getCollection(array $options, array $filterTypes = []) { $options = \array_merge([ 'offset' => 0, @@ -161,7 +162,7 @@ class Database 'filters' => [], ], $options); - $results = $this->adapter->getCollection($options); + $results = $this->adapter->getCollection($options, $filterTypes); foreach ($results as &$node) { $node = $this->decode(new Document($node)); diff --git a/src/Appwrite/Migration/Migration.php b/src/Appwrite/Migration/Migration.php index 0d6995b064..8eae515b9b 100644 --- a/src/Appwrite/Migration/Migration.php +++ b/src/Appwrite/Migration/Migration.php @@ -39,6 +39,8 @@ abstract class Migration '0.7.0' => 'V06', '0.8.0' => 'V07', '0.9.0' => 'V08', + '0.9.1' => 'V08', + '0.9.2' => 'V08', ]; /** diff --git a/src/Appwrite/Migration/Version/V08.php b/src/Appwrite/Migration/Version/V08.php index 59294c3269..fbc31c4df1 100644 --- a/src/Appwrite/Migration/Version/V08.php +++ b/src/Appwrite/Migration/Version/V08.php @@ -31,6 +31,13 @@ class V08 extends Migration ->removeAttribute('env'); } + break; + /** + * Add version reference to database. + */ + case Database::SYSTEM_COLLECTION_PROJECTS: + $document->setAttribute('version', '0.9.0'); + break; } diff --git a/src/Appwrite/Resque/Worker.php b/src/Appwrite/Resque/Worker.php index db8dc91ce7..84241173f5 100644 --- a/src/Appwrite/Resque/Worker.php +++ b/src/Appwrite/Resque/Worker.php @@ -2,6 +2,12 @@ namespace Appwrite\Resque; +use Utopia\Cache\Cache; +use Utopia\Cache\Adapter\Redis as RedisCache; +use Utopia\CLI\Console; +use Utopia\Database\Database; +use Utopia\Database\Adapter\MariaDB; + abstract class Worker { public $args = []; @@ -12,6 +18,13 @@ abstract class Worker abstract public function shutdown(): void; + const MAX_ATTEMPTS = 10; + const SLEEP_TIME = 2; + + const DATABASE_INTERNAL = 'internal'; + const DATABASE_EXTERNAL = 'external'; + const DATABASE_CONSOLE = 'console'; + public function setUp(): void { $this->init(); @@ -26,4 +39,91 @@ abstract class Worker { $this->shutdown(); } + /** + * Get internal project database + * @param string $projectId + * @return Database + */ + protected function getInternalDB(string $projectId): Database + { + return $this->getDB(self::DATABASE_INTERNAL, $projectId); + } + + /** + * Get external project database + * @param string $projectId + * @return Database + */ + protected function getExternalDB(string $projectId): Database + { + return $this->getDB(self::DATABASE_EXTERNAL, $projectId); + } + + /** + * Get console database + * @return Database + */ + protected function getConsoleDB(): Database + { + return $this->getDB(self::DATABASE_CONSOLE); + } + + /** + * Get console database + * @param string $type One of (internal, external, console) + * @param string $projectId of internal or external DB + * @return Database + */ + private function getDB($type, $projectId = ''): Database + { + global $register; + + $namespace = ''; + $sleep = self::SLEEP_TIME; // overwritten when necessary + + switch ($type) { + case self::DATABASE_INTERNAL: + if (!$projectId) { + throw new \Exception('ProjectID not provided - cannot get database'); + } + $namespace = "project_{$projectId}_internal"; + break; + case self::DATABASE_EXTERNAL: + if (!$projectId) { + throw new \Exception('ProjectID not provided - cannot get database'); + } + $namespace = "project_{$projectId}_external"; + break; + case self::DATABASE_CONSOLE: + $namespace = "project_console_internal"; + $sleep = 5; // ConsoleDB needs extra sleep time to ensure tables are created + break; + default: + throw new \Exception('Unknown database type: ' . $type); + break; + } + + $attempts = 0; + + do { + try { + $attempts++; + $cache = new Cache(new RedisCache($register->get('cache'))); + $database = new Database(new MariaDB($register->get('db')), $cache); + $database->setNamespace($namespace); // Main DB + if (!$database->exists()) { + throw new \Exception("Table does not exist: {$database->getNamespace()}"); + } + break; // leave loop if successful + } catch(\Exception $e) { + Console::warning("Database not ready. Retrying connection ({$attempts})..."); + if ($attempts >= self::MAX_ATTEMPTS) { + throw new \Exception('Failed to connect to database: '. $e->getMessage()); + } + sleep($sleep); + } + } while ($attempts < self::MAX_ATTEMPTS); + + return $database; + } } \ No newline at end of file diff --git a/src/Appwrite/Utopia/Response/Model/Task.php b/src/Appwrite/Utopia/Response/Model/Task.php index fa5816ed15..4d5c8a963f 100644 --- a/src/Appwrite/Utopia/Response/Model/Task.php +++ b/src/Appwrite/Utopia/Response/Model/Task.php @@ -96,7 +96,7 @@ class Task extends Model ]) ->addRule('status', [ 'type' => self::TYPE_STRING, - 'description' => 'Task status. Possible values: play, pause', // TODO - change to enabled disabled + 'description' => 'Task status. Possible values: play, pause', 'default' => '', 'example' => 'enabled', ]) diff --git a/src/Appwrite/Utopia/Response/Model/Team.php b/src/Appwrite/Utopia/Response/Model/Team.php index b5f7482a19..48660324f5 100644 --- a/src/Appwrite/Utopia/Response/Model/Team.php +++ b/src/Appwrite/Utopia/Response/Model/Team.php @@ -28,7 +28,7 @@ class Team extends Model 'default' => 0, 'example' => 1592981250, ]) - ->addRule('sum', [ // TODO change key name? + ->addRule('sum', [ 'type' => self::TYPE_INTEGER, 'description' => 'Total sum of team members.', 'default' => 0, diff --git a/tests/e2e/Services/Account/AccountBase.php b/tests/e2e/Services/Account/AccountBase.php index 18a6ee4d9a..31328dd378 100644 --- a/tests/e2e/Services/Account/AccountBase.php +++ b/tests/e2e/Services/Account/AccountBase.php @@ -731,6 +731,18 @@ trait AccountBase $verification = substr($lastEmail['text'], strpos($lastEmail['text'], '&secret=', 0) + 8, 256); + $expireTime = strpos($lastEmail['text'], 'expire='.$response['body']['expire'], 0); + + $this->assertNotFalse($expireTime); + + $secretTest = strpos($lastEmail['text'], 'secret='.$response['body']['secret'], 0); + + $this->assertNotFalse($secretTest); + + $userIDTest = strpos($lastEmail['text'], 'userId='.$response['body']['userId'], 0); + + $this->assertNotFalse($userIDTest); + /** * Test for FAILURE */ @@ -1023,6 +1035,18 @@ trait AccountBase $recovery = substr($lastEmail['text'], strpos($lastEmail['text'], '&secret=', 0) + 8, 256); + $expireTime = strpos($lastEmail['text'], 'expire='.$response['body']['expire'], 0); + + $this->assertNotFalse($expireTime); + + $secretTest = strpos($lastEmail['text'], 'secret='.$response['body']['secret'], 0); + + $this->assertNotFalse($secretTest); + + $userIDTest = strpos($lastEmail['text'], 'userId='.$response['body']['userId'], 0); + + $this->assertNotFalse($userIDTest); + /** * Test for FAILURE */ diff --git a/tests/e2e/Services/Account/AccountCustomClientTest.php b/tests/e2e/Services/Account/AccountCustomClientTest.php index 9c7d190bc9..60ba506225 100644 --- a/tests/e2e/Services/Account/AccountCustomClientTest.php +++ b/tests/e2e/Services/Account/AccountCustomClientTest.php @@ -14,6 +14,9 @@ class AccountCustomClientTest extends Scope use ProjectCustom; use SideClient; + /** + * @depends testCreateAccountSession + */ public function testCreateOAuth2AccountSession():array { $provider = 'mock'; @@ -384,6 +387,17 @@ class AccountCustomClientTest extends Scope /** * Test for SUCCESS */ + $response = $this->client->call(Client::METHOD_GET, '/account', array_merge([ + 'origin' => 'http://localhost', + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'cookie' => 'a_session_'.$this->getProject()['$id'].'=' . $session, + ])); + + $this->assertEquals($response['headers']['status-code'], 200); + + $userId = $response['body']['$id'] ?? ''; + $response = $this->client->call(Client::METHOD_PATCH, '/projects/'.$this->getProject()['$id'].'/oauth2', array_merge([ 'origin' => 'http://localhost', 'content-type' => 'application/json', @@ -406,6 +420,8 @@ class AccountCustomClientTest extends Scope 'success' => 'http://localhost/v1/mock/tests/general/oauth2/success', 'failure' => 'http://localhost/v1/mock/tests/general/oauth2/failure', ]); + + $session = $this->client->parseCookie((string)$response['headers']['set-cookie'])['a_session_'.$this->getProject()['$id']]; $this->assertEquals(200, $response['headers']['status-code']); $this->assertEquals('success', $response['body']['result']); @@ -418,6 +434,7 @@ class AccountCustomClientTest extends Scope ])); $this->assertEquals($response['headers']['status-code'], 200); + $this->assertEquals($response['body']['$id'], $userId); $this->assertEquals($response['body']['name'], 'User Name'); $this->assertEquals($response['body']['email'], 'user@localhost.test'); diff --git a/tests/e2e/Services/Functions/FunctionsCustomClientTest.php b/tests/e2e/Services/Functions/FunctionsCustomClientTest.php index f958de5205..4def7dede6 100644 --- a/tests/e2e/Services/Functions/FunctionsCustomClientTest.php +++ b/tests/e2e/Services/Functions/FunctionsCustomClientTest.php @@ -185,7 +185,32 @@ class FunctionsCustomClientTest extends Scope $this->assertEquals(201, $execution['headers']['status-code']); + $executionId = $execution['body']['$id'] ?? ''; + sleep(10); + + $executions = $this->client->call(Client::METHOD_GET, '/functions/'.$functionId.'/executions/'.$executionId, [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $projectId, + 'x-appwrite-key' => $apikey, + ]); + + $output = json_decode($executions['body']['stdout'], true); + + $this->assertEquals(200, $executions['headers']['status-code']); + $this->assertEquals('completed', $executions['body']['status']); + $this->assertEquals($functionId, $output['APPWRITE_FUNCTION_ID']); + $this->assertEquals('Test', $output['APPWRITE_FUNCTION_NAME']); + $this->assertEquals($tagId, $output['APPWRITE_FUNCTION_TAG']); + $this->assertEquals('http', $output['APPWRITE_FUNCTION_TRIGGER']); + $this->assertEquals('PHP', $output['APPWRITE_FUNCTION_RUNTIME_NAME']); + $this->assertEquals('8.0', $output['APPWRITE_FUNCTION_RUNTIME_VERSION']); + $this->assertEquals('', $output['APPWRITE_FUNCTION_EVENT']); + $this->assertEquals('', $output['APPWRITE_FUNCTION_EVENT_DATA']); + $this->assertEquals('foobar', $output['APPWRITE_FUNCTION_DATA']); + $this->assertEquals($this->getUser()['$id'], $output['APPWRITE_FUNCTION_USER_ID']); + $this->assertNotEmpty($output['APPWRITE_FUNCTION_JWT']); + $executions = $this->client->call(Client::METHOD_GET, '/functions/'.$functionId.'/executions', [ 'content-type' => 'application/json', 'x-appwrite-project' => $projectId, diff --git a/tests/e2e/Services/Functions/FunctionsCustomServerTest.php b/tests/e2e/Services/Functions/FunctionsCustomServerTest.php index cf0a1cafc4..775eca06e2 100644 --- a/tests/e2e/Services/Functions/FunctionsCustomServerTest.php +++ b/tests/e2e/Services/Functions/FunctionsCustomServerTest.php @@ -582,8 +582,31 @@ class FunctionsCustomServerTest extends Scope $this->assertEquals(201, $execution['headers']['status-code']); + $executionId = $execution['body']['$id'] ?? ''; + sleep(10); + $executions = $this->client->call(Client::METHOD_GET, '/functions/'.$functionId.'/executions/'.$executionId, array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $output = json_decode($executions['body']['stdout'], true); + + $this->assertEquals(200, $executions['headers']['status-code']); + $this->assertEquals('completed', $executions['body']['status']); + $this->assertEquals($functionId, $output['APPWRITE_FUNCTION_ID']); + $this->assertEquals('Test '.$name, $output['APPWRITE_FUNCTION_NAME']); + $this->assertEquals($tagId, $output['APPWRITE_FUNCTION_TAG']); + $this->assertEquals('http', $output['APPWRITE_FUNCTION_TRIGGER']); + $this->assertEquals('PHP', $output['APPWRITE_FUNCTION_RUNTIME_NAME']); + $this->assertEquals('8.0', $output['APPWRITE_FUNCTION_RUNTIME_VERSION']); + $this->assertEquals('', $output['APPWRITE_FUNCTION_EVENT']); + $this->assertEquals('', $output['APPWRITE_FUNCTION_EVENT_DATA']); + $this->assertEquals('foobar', $output['APPWRITE_FUNCTION_DATA']); + $this->assertEquals('', $output['APPWRITE_FUNCTION_USER_ID']); + $this->assertEmpty($output['APPWRITE_FUNCTION_JWT']); + $executions = $this->client->call(Client::METHOD_GET, '/functions/'.$functionId.'/executions', array_merge([ 'content-type' => 'application/json', 'x-appwrite-project' => $this->getProject()['$id'], diff --git a/tests/resources/functions/php-fn.tar.gz b/tests/resources/functions/php-fn.tar.gz index a97a2e2352..5e359122fa 100644 Binary files a/tests/resources/functions/php-fn.tar.gz and b/tests/resources/functions/php-fn.tar.gz differ diff --git a/tests/resources/functions/php-fn/index.php b/tests/resources/functions/php-fn/index.php index 32af3ccb16..449658e1e7 100644 --- a/tests/resources/functions/php-fn/index.php +++ b/tests/resources/functions/php-fn/index.php @@ -17,15 +17,18 @@ use Appwrite\Services\Storage; // $result = $storage->getFile($_ENV['APPWRITE_FILEID']); -echo $_ENV['APPWRITE_FUNCTION_ID']."\n"; -echo $_ENV['APPWRITE_FUNCTION_NAME']."\n"; -echo $_ENV['APPWRITE_FUNCTION_TAG']."\n"; -echo $_ENV['APPWRITE_FUNCTION_TRIGGER']."\n"; -echo $_ENV['APPWRITE_FUNCTION_RUNTIME_NAME']."\n"; -echo $_ENV['APPWRITE_FUNCTION_RUNTIME_VERSION']."\n"; -// echo $result['$id']; -echo $_ENV['APPWRITE_FUNCTION_EVENT']."\n"; -echo $_ENV['APPWRITE_FUNCTION_EVENT_DATA']."\n"; -echo 'data:'.$_ENV['APPWRITE_FUNCTION_DATA']."\n"; -echo 'userId:'.$_ENV['APPWRITE_FUNCTION_USER_ID']."\n"; -echo 'jwt:'.$_ENV['APPWRITE_FUNCTION_JWT']."\n"; +$output = [ + 'APPWRITE_FUNCTION_ID' => $_ENV['APPWRITE_FUNCTION_ID'], + 'APPWRITE_FUNCTION_NAME' => $_ENV['APPWRITE_FUNCTION_NAME'], + 'APPWRITE_FUNCTION_TAG' => $_ENV['APPWRITE_FUNCTION_TAG'], + 'APPWRITE_FUNCTION_TRIGGER' => $_ENV['APPWRITE_FUNCTION_TRIGGER'], + 'APPWRITE_FUNCTION_RUNTIME_NAME' => $_ENV['APPWRITE_FUNCTION_RUNTIME_NAME'], + 'APPWRITE_FUNCTION_RUNTIME_VERSION' => $_ENV['APPWRITE_FUNCTION_RUNTIME_VERSION'], + 'APPWRITE_FUNCTION_EVENT' => $_ENV['APPWRITE_FUNCTION_EVENT'], + 'APPWRITE_FUNCTION_EVENT_DATA' => $_ENV['APPWRITE_FUNCTION_EVENT_DATA'], + 'APPWRITE_FUNCTION_DATA' => $_ENV['APPWRITE_FUNCTION_DATA'], + 'APPWRITE_FUNCTION_USER_ID' => $_ENV['APPWRITE_FUNCTION_USER_ID'], + 'APPWRITE_FUNCTION_JWT' => $_ENV['APPWRITE_FUNCTION_JWT'], +]; + +echo json_encode($output); diff --git a/tests/unit/Migration/MigrationV08Test.php b/tests/unit/Migration/MigrationV08Test.php index cb759cecbd..06ed5f44ff 100644 --- a/tests/unit/Migration/MigrationV08Test.php +++ b/tests/unit/Migration/MigrationV08Test.php @@ -29,5 +29,12 @@ class MigrationV08Test extends MigrationTest $this->assertEquals($document->getAttribute('env', null), null); $this->assertEquals($document->getAttribute('runtime', null), 'node-16'); + + $document = $this->fixDocument(new Document([ + '$id' => 'project', + '$collection' => Database::SYSTEM_COLLECTION_PROJECTS + ])); + + $this->assertEquals($document->getAttribute('version', null), '0.9.0'); } }