From 071f964e296da9e01ae706cf985cc171ed585f38 Mon Sep 17 00:00:00 2001 From: Radmacher <66096031+rdmchr@users.noreply.github.com> Date: Sat, 6 Nov 2021 14:30:32 +0100 Subject: [PATCH 001/107] Working on an overhaul for the teams documentation. --- app/controllers/api/teams.php | 16 ++++++++-------- docs/references/teams/create-team.md | 2 +- docs/references/teams/delete-team.md | 2 +- docs/references/teams/list-teams.md | 4 +++- docs/references/teams/update-team.md | 2 +- 5 files changed, 14 insertions(+), 12 deletions(-) diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index 128a03c2eb..746aeecfb8 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -32,7 +32,7 @@ App::post('/v1/teams') ->label('sdk.response.code', Response::STATUS_CODE_CREATED) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_TEAM) - ->param('name', null, new Text(128), 'Team name. Max length: 128 chars.') + ->param('name', null, new Text(128), 'The name of the team. Max length: 128 chars.') ->param('roles', ['owner'], new ArrayList(new Key()), 'Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](/docs/permissions). Max length for each role is 32 chars.', true) ->inject('response') ->inject('user') @@ -113,10 +113,10 @@ App::get('/v1/teams') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_TEAM_LIST) - ->param('search', '', new Text(256), 'Search term to filter your list results. Max length: 256 chars.', true) - ->param('limit', 25, new Range(0, 100), 'Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) - ->param('offset', 0, new Range(0, 2000), 'Results offset. The default value is 0. Use this param to manage pagination.', true) - ->param('orderType', 'ASC', new WhiteList(['ASC', 'DESC'], true), 'Order result by ASC or DESC order.', true) + ->param('search', '', new Text(256), 'Enter any text to search. Max length: 256 chars.', true) + ->param('limit', 25, new Range(0, 100), 'Limit how many results will be returned. Returns 25 results by default. Maximum of 100 results allowed per request.', true) + ->param('offset', 0, new Range(0, 2000), 'Use this value to manage pagination. The default value is 0.', true) + ->param('orderType', 'ASC', new WhiteList(['ASC', 'DESC'], true), 'Use ASC to order results in ascending and DESC to order results in descending order.', true) ->inject('response') ->inject('projectDB') ->action(function ($search, $limit, $offset, $orderType, $response, $projectDB) { @@ -178,8 +178,8 @@ App::put('/v1/teams/:teamId') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_TEAM) - ->param('teamId', '', new UID(), 'Team unique ID.') - ->param('name', null, new Text(128), 'Team name. Max length: 128 chars.') + ->param('teamId', '', new UID(), 'The unique team ID.') + ->param('name', null, new Text(128), 'The new team name. Max length: 128 chars.') ->inject('response') ->inject('projectDB') ->action(function ($teamId, $name, $response, $projectDB) { @@ -214,7 +214,7 @@ App::delete('/v1/teams/:teamId') ->label('sdk.description', '/docs/references/teams/delete-team.md') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) ->label('sdk.response.model', Response::MODEL_NONE) - ->param('teamId', '', new UID(), 'Team unique ID.') + ->param('teamId', '', new UID(), 'The unique team ID.') ->inject('response') ->inject('projectDB') ->inject('events') diff --git a/docs/references/teams/create-team.md b/docs/references/teams/create-team.md index 91bd09e8f9..41a36693e8 100644 --- a/docs/references/teams/create-team.md +++ b/docs/references/teams/create-team.md @@ -1 +1 @@ -Create a new team. The user who creates the team will automatically be assigned as the owner of the team. The team owner can invite new members, who will be able add new owners and update or delete the team from your project. \ No newline at end of file +Use this endpoint to create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members or add new owners. However, every member can delete or update the team. \ No newline at end of file diff --git a/docs/references/teams/delete-team.md b/docs/references/teams/delete-team.md index 887dfcc06f..16672499ea 100644 --- a/docs/references/teams/delete-team.md +++ b/docs/references/teams/delete-team.md @@ -1 +1 @@ -Delete a team by its unique ID. Only team owners have write access for this resource. \ No newline at end of file +Delete a team using its unique ID. Every member of the team has access to this endpoint. \ No newline at end of file diff --git a/docs/references/teams/list-teams.md b/docs/references/teams/list-teams.md index 04a3959e4c..feab2d45a4 100644 --- a/docs/references/teams/list-teams.md +++ b/docs/references/teams/list-teams.md @@ -1 +1,3 @@ -Get a list of all the current user teams. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's teams. [Learn more about different API modes](/docs/admin). \ No newline at end of file +Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results. + +On admin mode, this endpoint returns a list of all the teams in the current project. [Learn more about different API modes](/docs/admin). \ No newline at end of file diff --git a/docs/references/teams/update-team.md b/docs/references/teams/update-team.md index afa84135a2..bc83e897f5 100644 --- a/docs/references/teams/update-team.md +++ b/docs/references/teams/update-team.md @@ -1 +1 @@ -Update a team by its unique ID. Only team owners have write access for this resource. \ No newline at end of file +Update a team using its unique ID. Every team member has access to this endpoint. \ No newline at end of file From 010fca8f18e31e764dfe1e8a54f75e2bdd68e676 Mon Sep 17 00:00:00 2001 From: Radmacher <66096031+rdmchr@users.noreply.github.com> Date: Wed, 10 Nov 2021 13:45:23 +0100 Subject: [PATCH 002/107] Fixed permissions misunderstanding --- docs/references/teams/create-team.md | 2 +- docs/references/teams/delete-team.md | 2 +- docs/references/teams/update-team.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/references/teams/create-team.md b/docs/references/teams/create-team.md index 41a36693e8..3ff3a30c8e 100644 --- a/docs/references/teams/create-team.md +++ b/docs/references/teams/create-team.md @@ -1 +1 @@ -Use this endpoint to create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members or add new owners. However, every member can delete or update the team. \ No newline at end of file +Use this endpoint to create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team. \ No newline at end of file diff --git a/docs/references/teams/delete-team.md b/docs/references/teams/delete-team.md index 16672499ea..6b73736e9a 100644 --- a/docs/references/teams/delete-team.md +++ b/docs/references/teams/delete-team.md @@ -1 +1 @@ -Delete a team using its unique ID. Every member of the team has access to this endpoint. \ No newline at end of file +Delete a team using its unique ID. Only members with the owner role can delete the team. \ No newline at end of file diff --git a/docs/references/teams/update-team.md b/docs/references/teams/update-team.md index bc83e897f5..0acb528e1c 100644 --- a/docs/references/teams/update-team.md +++ b/docs/references/teams/update-team.md @@ -1 +1 @@ -Update a team using its unique ID. Every team member has access to this endpoint. \ No newline at end of file +Update a team using its unique ID. Only members with the owner role can update the team. \ No newline at end of file From 5924026bb8e290defa7a602cac2540a54404da0e Mon Sep 17 00:00:00 2001 From: Radmacher <66096031+rdmchr@users.noreply.github.com> Date: Wed, 10 Nov 2021 16:32:10 +0100 Subject: [PATCH 003/107] Updated create team membership docs --- app/controllers/api/teams.php | 18 +++++++++--------- .../references/teams/create-team-membership.md | 6 +++--- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index 746aeecfb8..e173f5faac 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -150,7 +150,7 @@ App::get('/v1/teams/:teamId') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_TEAM) - ->param('teamId', '', new UID(), 'Team unique ID.') + ->param('teamId', '', new UID(), 'The unique team ID.') ->inject('response') ->inject('projectDB') ->action(function ($teamId, $response, $projectDB) { @@ -260,11 +260,11 @@ App::post('/v1/teams/:teamId/memberships') ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_MEMBERSHIP) ->label('abuse-limit', 10) - ->param('teamId', '', new UID(), 'Team unique ID.') - ->param('email', '', new Email(), 'New team member email.') - ->param('roles', [], new ArrayList(new Key()), 'Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](/docs/permissions). Max length for each role is 32 chars.') + ->param('teamId', '', new UID(), 'The unique team ID.') + ->param('email', '', new Email(), 'The email address of the new team member.') + ->param('roles', [], new ArrayList(new Key()), 'An Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](/docs/permissions). Max length for each role is 32 chars.') ->param('url', '', function ($clients) { return new Host($clients); }, 'URL to redirect the user back to your app from the invitation email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.', false, ['clients']) // TODO add our own built-in confirm page - ->param('name', '', new Text(128), 'New team member name. Max length: 128 chars.', true) + ->param('name', '', new Text(128), 'The name of the new team member. Max length: 128 chars.', true) ->inject('response') ->inject('project') ->inject('user') @@ -472,7 +472,7 @@ App::patch('/v1/teams/:teamId/memberships/:membershipId') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_MEMBERSHIP) - ->param('teamId', '', new UID(), 'Team unique ID.') + ->param('teamId', '', new UID(), 'The unique team ID.') ->param('membershipId', '', new UID(), 'Membership ID.') ->param('roles', [], new ArrayList(new Key()), 'Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](/docs/permissions). Max length for each role is 32 chars.') ->inject('request') @@ -534,7 +534,7 @@ App::get('/v1/teams/:teamId/memberships') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_MEMBERSHIP_LIST) - ->param('teamId', '', new UID(), 'Team unique ID.') + ->param('teamId', '', new UID(), 'The unique team ID.') ->param('search', '', new Text(256), 'Search term to filter your list results. Max length: 256 chars.', true) ->param('limit', 25, new Range(0, 100), 'Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) ->param('offset', 0, new Range(0, 2000), 'Results offset. The default value is 0. Use this param to manage pagination.', true) @@ -588,7 +588,7 @@ App::patch('/v1/teams/:teamId/memberships/:membershipId/status') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_MEMBERSHIP) - ->param('teamId', '', new UID(), 'Team unique ID.') + ->param('teamId', '', new UID(), 'The unique team ID.') ->param('membershipId', '', new UID(), 'Membership ID.') ->param('userId', '', new UID(), 'User unique ID.') ->param('secret', '', new Text(256), 'Secret key.') @@ -734,7 +734,7 @@ App::delete('/v1/teams/:teamId/memberships/:membershipId') ->label('sdk.description', '/docs/references/teams/delete-team-membership.md') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) ->label('sdk.response.model', Response::MODEL_NONE) - ->param('teamId', '', new UID(), 'Team unique ID.') + ->param('teamId', '', new UID(), 'The unique team ID.') ->param('membershipId', '', new UID(), 'Membership ID.') ->inject('response') ->inject('projectDB') diff --git a/docs/references/teams/create-team-membership.md b/docs/references/teams/create-team-membership.md index c6d81de484..f0bf9e416c 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. 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 this endpoint to invite a new member to join your team. If initiated from the client SDK, an email with a link to join the team will be sent to the member's email address and an account will be created for them should they not be signed up already. If initiated from server-side SDKs, the 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. While calling from side SDKs the redirect url can be empty string. +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. -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 +Please note that to avoid a [Redirect Attack](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 adding your platforms in the console interface. \ No newline at end of file From 4137bdb09820acfce921eff9ee7f816569cb00fd Mon Sep 17 00:00:00 2001 From: Radmacher <66096031+rdmchr@users.noreply.github.com> Date: Wed, 10 Nov 2021 16:43:07 +0100 Subject: [PATCH 004/107] Updated update team membership roles docs --- app/controllers/api/teams.php | 4 ++-- docs/references/teams/update-team-membership-roles.md | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 docs/references/teams/update-team-membership-roles.md diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index e173f5faac..0565131665 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -473,8 +473,8 @@ App::patch('/v1/teams/:teamId/memberships/:membershipId') ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_MEMBERSHIP) ->param('teamId', '', new UID(), 'The unique team ID.') - ->param('membershipId', '', new UID(), 'Membership ID.') - ->param('roles', [], new ArrayList(new Key()), 'Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](/docs/permissions). Max length for each role is 32 chars.') + ->param('membershipId', '', new UID(), 'The membership ID.') + ->param('roles', [], new ArrayList(new Key()), 'An array of strings. Use this param to set the user\'s roles in the team. A role can be any string. Learn more about [roles and permissions](/docs/permissions). Max length for each role is 32 chars.') ->inject('request') ->inject('response') ->inject('user') diff --git a/docs/references/teams/update-team-membership-roles.md b/docs/references/teams/update-team-membership-roles.md new file mode 100644 index 0000000000..add91638bb --- /dev/null +++ b/docs/references/teams/update-team-membership-roles.md @@ -0,0 +1 @@ +Use this endpoint to modify the roles of a team member. Only team members with the owner role have access to this endpoint. Learn more about [roles and permissions](/docs/permissions) \ No newline at end of file From 3ff2cf172fdfc31d0fbbb467cf561ced51504fcf Mon Sep 17 00:00:00 2001 From: Radmacher <66096031+rdmchr@users.noreply.github.com> Date: Wed, 10 Nov 2021 17:13:51 +0100 Subject: [PATCH 005/107] Updated get team members doc --- app/controllers/api/teams.php | 6 +++--- docs/references/teams/get-team-members.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index 0565131665..cc5ffe52ea 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -535,10 +535,10 @@ App::get('/v1/teams/:teamId/memberships') ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_MEMBERSHIP_LIST) ->param('teamId', '', new UID(), 'The unique team ID.') - ->param('search', '', new Text(256), 'Search term to filter your list results. Max length: 256 chars.', true) - ->param('limit', 25, new Range(0, 100), 'Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) + ->param('search', '', new Text(256), 'Search term to filter your results. Max length: 256 chars.', true) + ->param('limit', 25, new Range(0, 100), 'Limit how many results will be returned. By default will return a maximum of 25 results. Maximum of 100 results allowed per request.', true) ->param('offset', 0, new Range(0, 2000), 'Results offset. The default value is 0. Use this param to manage pagination.', true) - ->param('orderType', 'ASC', new WhiteList(['ASC', 'DESC'], true), 'Order result by ASC or DESC order.', true) + ->param('orderType', 'ASC', new WhiteList(['ASC', 'DESC'], true), 'Order results by ASC or DESC order.', true) ->inject('response') ->inject('projectDB') ->action(function ($teamId, $search, $limit, $offset, $orderType, $response, $projectDB) { diff --git a/docs/references/teams/get-team-members.md b/docs/references/teams/get-team-members.md index ee939b9978..f8a5c7839f 100644 --- a/docs/references/teams/get-team-members.md +++ b/docs/references/teams/get-team-members.md @@ -1 +1 @@ -Get a team members by the team unique ID. All team members have read access for this list of resources. \ No newline at end of file +Lists a teams members using the team's unique ID. All team members have read access to this endpoint. \ No newline at end of file From 6ccceb9f326191749c0e93564b0bda3ff0fd6130 Mon Sep 17 00:00:00 2001 From: Radmacher <66096031+rdmchr@users.noreply.github.com> Date: Wed, 10 Nov 2021 17:21:36 +0100 Subject: [PATCH 006/107] Updated update team membership status doc --- app/controllers/api/teams.php | 6 +++--- docs/references/teams/update-team-membership-status.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index cc5ffe52ea..f6fd001cfd 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -589,9 +589,9 @@ App::patch('/v1/teams/:teamId/memberships/:membershipId/status') ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_MEMBERSHIP) ->param('teamId', '', new UID(), 'The unique team ID.') - ->param('membershipId', '', new UID(), 'Membership ID.') - ->param('userId', '', new UID(), 'User unique ID.') - ->param('secret', '', new Text(256), 'Secret key.') + ->param('membershipId', '', new UID(), 'The membership ID.') + ->param('userId', '', new UID(), 'The unique user ID.') + ->param('secret', '', new Text(256), 'The secret key.') ->inject('request') ->inject('response') ->inject('user') diff --git a/docs/references/teams/update-team-membership-status.md b/docs/references/teams/update-team-membership-status.md index ae2da76774..ab8f4ca36a 100644 --- a/docs/references/teams/update-team-membership-status.md +++ b/docs/references/teams/update-team-membership-status.md @@ -1 +1 @@ -Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email recieved by the user. \ No newline at end of file +Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user. \ No newline at end of file From 4f7b699b0cad2621bd8c9db52f8566c5b283286d Mon Sep 17 00:00:00 2001 From: Radmacher <66096031+rdmchr@users.noreply.github.com> Date: Wed, 10 Nov 2021 17:32:47 +0100 Subject: [PATCH 007/107] Updated delete team membership doc --- app/controllers/api/teams.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index f6fd001cfd..bb5a966774 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -735,7 +735,7 @@ App::delete('/v1/teams/:teamId/memberships/:membershipId') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) ->label('sdk.response.model', Response::MODEL_NONE) ->param('teamId', '', new UID(), 'The unique team ID.') - ->param('membershipId', '', new UID(), 'Membership ID.') + ->param('membershipId', '', new UID(), 'The membership ID.') ->inject('response') ->inject('projectDB') ->inject('audits') From ab961597c42c4a5619f62ea64aab08d0df7592ee Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Sun, 28 Nov 2021 07:36:40 +0000 Subject: [PATCH 008/107] fix: upgrade chart.js from 3.5.1 to 3.6.0 Snyk has created this PR to upgrade chart.js from 3.5.1 to 3.6.0. See this package in npm: https://www.npmjs.com/package/chart.js See this project in Snyk: https://app.snyk.io/org/eldadfux/project/8574b5e4-6e89-4ade-bc02-2eaabc43eed0?utm_source=github&utm_medium=referral&page=upgrade-pr --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9d83c0ded3..27f8f09162 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.1.0", "license": "BSD-3-Clause", "dependencies": { - "chart.js": "^3.5.1", + "chart.js": "^3.6.0", "markdown-it": "^12.2.0", "pell": "^1.0.6", "prismjs": "^1.25.0", @@ -549,9 +549,9 @@ } }, "node_modules/chart.js": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.5.1.tgz", - "integrity": "sha512-m5kzt72I1WQ9LILwQC4syla/LD/N413RYv2Dx2nnTkRS9iv/ey1xLTt0DnPc/eWV4zI+BgEgDYBIzbQhZHc/PQ==" + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.6.0.tgz", + "integrity": "sha512-iOzzDKePL+bj+ccIsVAgWQehCXv8xOKGbaU2fO/myivH736zcx535PGJzQGanvcSGVOqX6yuLZsN3ygcQ35UgQ==" }, "node_modules/chokidar": { "version": "2.1.8", @@ -5484,9 +5484,9 @@ "dev": true }, "chart.js": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.5.1.tgz", - "integrity": "sha512-m5kzt72I1WQ9LILwQC4syla/LD/N413RYv2Dx2nnTkRS9iv/ey1xLTt0DnPc/eWV4zI+BgEgDYBIzbQhZHc/PQ==" + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.6.0.tgz", + "integrity": "sha512-iOzzDKePL+bj+ccIsVAgWQehCXv8xOKGbaU2fO/myivH736zcx535PGJzQGanvcSGVOqX6yuLZsN3ygcQ35UgQ==" }, "chokidar": { "version": "2.1.8", diff --git a/package.json b/package.json index 6c71f23a67..135e4ff8a7 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "gulp-less": "^5.0.0" }, "dependencies": { - "chart.js": "^3.5.1", + "chart.js": "^3.6.0", "markdown-it": "^12.2.0", "pell": "^1.0.6", "prismjs": "^1.25.0", From 6ac92c6a598f909e696cb9eca0839def2f5c1593 Mon Sep 17 00:00:00 2001 From: Damodar Lohani Date: Wed, 1 Dec 2021 13:02:55 +0545 Subject: [PATCH 009/107] update missing encrypt filter --- app/config/collections2.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/app/config/collections2.php b/app/config/collections2.php index 4122cd9f06..44aa99bf21 100644 --- a/app/config/collections2.php +++ b/app/config/collections2.php @@ -810,12 +810,12 @@ $collections = [ '$id' => 'secret', 'type' => Database::VAR_STRING, 'format' => '', - 'size' => 256, // var_dump of \bin2hex(\random_bytes(128)) => string(256) + 'size' => 256, // var_dump of \bin2hex(\random_bytes(128)) => string(256) // TODO what will happen after encryption filter? 'signed' => true, 'required' => true, 'default' => null, 'array' => false, - 'filters' => [], + 'filters' => ['encrypt'], ], ], 'indexes' => [ @@ -882,12 +882,12 @@ $collections = [ '$id' => 'httpPass', 'type' => Database::VAR_STRING, 'format' => '', - 'size' => Database::LENGTH_KEY, + 'size' => Database::LENGTH_KEY, // TODO will the length suffice after encryption? 'signed' => true, 'required' => true, 'default' => null, 'array' => false, - 'filters' => [], + 'filters' => ['encrypt'], ], [ '$id' => 'security', @@ -970,7 +970,7 @@ $collections = [ 'required' => false, 'default' => null, 'array' => false, - 'filters' => [], + 'filters' => ['encrypt'], ], [ '$id' => 'passwordUpdate', @@ -1150,23 +1150,23 @@ $collections = [ '$id' => 'providerToken', 'type' => Database::VAR_STRING, 'format' => '', - 'size' => 16384, + 'size' => 16384, // TODO is this required size and will it suffice after encryption? 'signed' => true, 'required' => false, 'default' => null, 'array' => false, - 'filters' => [], + 'filters' => ['encrypt'], ], [ '$id' => 'secret', 'type' => Database::VAR_STRING, 'format' => '', - 'size' => 64, // https://www.tutorialspoint.com/how-long-is-the-sha256-hash-in-mysql + 'size' => 64, // https://www.tutorialspoint.com/how-long-is-the-sha256-hash-in-mysql // TODO what will happen to size after encryption? 'signed' => true, 'required' => false, 'default' => null, 'array' => false, - 'filters' => [], + 'filters' => ['encrypt'], ], [ '$id' => 'expire', From b0762f169d45ffeb7cd1aafc6d65bd0878f34898 Mon Sep 17 00:00:00 2001 From: Damodar Lohani Date: Wed, 1 Dec 2021 13:18:49 +0545 Subject: [PATCH 010/107] encrypt oauth2 providers --- app/config/collections2.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/collections2.php b/app/config/collections2.php index 44aa99bf21..69700c1ebe 100644 --- a/app/config/collections2.php +++ b/app/config/collections2.php @@ -500,7 +500,7 @@ $collections = [ 'required' => false, 'default' => null, 'array' => false, - 'filters' => ['json'], + 'filters' => ['json', 'encrypt'], ], [ '$id' => 'platforms', From d60dc467f821801c2474f40112c4a79a998c4e3b Mon Sep 17 00:00:00 2001 From: Damodar Lohani Date: Thu, 2 Dec 2021 13:34:56 +0545 Subject: [PATCH 011/107] incrementing field size for encrypted fields --- app/config/collections2.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/config/collections2.php b/app/config/collections2.php index 69700c1ebe..49c87e2231 100644 --- a/app/config/collections2.php +++ b/app/config/collections2.php @@ -810,7 +810,7 @@ $collections = [ '$id' => 'secret', 'type' => Database::VAR_STRING, 'format' => '', - 'size' => 256, // var_dump of \bin2hex(\random_bytes(128)) => string(256) // TODO what will happen after encryption filter? + 'size' => 512, // var_dump of \bin2hex(\random_bytes(128)) => string(256) doubling for encryption 'signed' => true, 'required' => true, 'default' => null, @@ -1150,7 +1150,7 @@ $collections = [ '$id' => 'providerToken', 'type' => Database::VAR_STRING, 'format' => '', - 'size' => 16384, // TODO is this required size and will it suffice after encryption? + 'size' => 16384, 'signed' => true, 'required' => false, 'default' => null, @@ -1161,7 +1161,7 @@ $collections = [ '$id' => 'secret', 'type' => Database::VAR_STRING, 'format' => '', - 'size' => 64, // https://www.tutorialspoint.com/how-long-is-the-sha256-hash-in-mysql // TODO what will happen to size after encryption? + 'size' => 256, 'signed' => true, 'required' => false, 'default' => null, From 32b13f113adbfb02a08392a2f495a6000e728af6 Mon Sep 17 00:00:00 2001 From: Damodar Lohani Date: Thu, 2 Dec 2021 15:32:40 +0545 Subject: [PATCH 012/107] session secret field size increase --- app/config/collections.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/collections.php b/app/config/collections.php index 380982889a..9afb8f1d78 100644 --- a/app/config/collections.php +++ b/app/config/collections.php @@ -1161,7 +1161,7 @@ $collections = [ '$id' => 'secret', 'type' => Database::VAR_STRING, 'format' => '', - 'size' => 256, // https://www.tutorialspoint.com/how-long-is-the-sha256-hash-in-mysql (256 for encryption) + 'size' => 512, // https://www.tutorialspoint.com/how-long-is-the-sha256-hash-in-mysql (512 for encryption) 'signed' => true, 'required' => false, 'default' => null, From e6304d71b0c27c9650f94835ac50a76d37f69c63 Mon Sep 17 00:00:00 2001 From: Damodar Lohani Date: Thu, 2 Dec 2021 15:35:19 +0545 Subject: [PATCH 013/107] remove encrypt filter from password as it's already hashed --- app/config/collections.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/collections.php b/app/config/collections.php index 9afb8f1d78..4216c1fa32 100644 --- a/app/config/collections.php +++ b/app/config/collections.php @@ -970,7 +970,7 @@ $collections = [ 'required' => false, 'default' => null, 'array' => false, - 'filters' => ['encrypt'], + 'filters' => [], ], [ '$id' => 'passwordUpdate', From a32351ff7e35ab646a14d5c3af310f0872b2c790 Mon Sep 17 00:00:00 2001 From: Damodar Lohani Date: Thu, 2 Dec 2021 18:44:28 +0545 Subject: [PATCH 014/107] add the filter back --- app/config/collections.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/collections.php b/app/config/collections.php index 4216c1fa32..a5face465b 100644 --- a/app/config/collections.php +++ b/app/config/collections.php @@ -1497,7 +1497,7 @@ $collections = [ 'required' => false, 'default' => null, 'array' => false, - 'filters' => [], + 'filters' => ['encrypt'], ], ], 'indexes' => [ From 244b829c6800c63b05e90ad3e464b0abe80418c6 Mon Sep 17 00:00:00 2001 From: Radmacher <66096031+rdmchr@users.noreply.github.com> Date: Thu, 2 Dec 2021 23:10:14 +0100 Subject: [PATCH 015/107] Update app/controllers/api/teams.php Co-authored-by: kodumbeats --- app/controllers/api/teams.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index bb5a966774..7b06c13d7f 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -114,7 +114,7 @@ App::get('/v1/teams') ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_TEAM_LIST) ->param('search', '', new Text(256), 'Enter any text to search. Max length: 256 chars.', true) - ->param('limit', 25, new Range(0, 100), 'Limit how many results will be returned. Returns 25 results by default. Maximum of 100 results allowed per request.', true) + ->param('limit', 25, new Range(0, 100), 'Limit how many results will be returned. Returns up to 25 results by default. Maximum of 100 results allowed per request.', true) ->param('offset', 0, new Range(0, 2000), 'Use this value to manage pagination. The default value is 0.', true) ->param('orderType', 'ASC', new WhiteList(['ASC', 'DESC'], true), 'Use ASC to order results in ascending and DESC to order results in descending order.', true) ->inject('response') From 18dfe9b4a0a57385ccbdd9924b26a1270e8a009a Mon Sep 17 00:00:00 2001 From: Radmacher <66096031+rdmchr@users.noreply.github.com> Date: Thu, 2 Dec 2021 23:10:36 +0100 Subject: [PATCH 016/107] Update docs/references/teams/get-team-members.md Co-authored-by: kodumbeats --- docs/references/teams/get-team-members.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/references/teams/get-team-members.md b/docs/references/teams/get-team-members.md index f8a5c7839f..d18b2b358e 100644 --- a/docs/references/teams/get-team-members.md +++ b/docs/references/teams/get-team-members.md @@ -1 +1 @@ -Lists a teams members using the team's unique ID. All team members have read access to this endpoint. \ No newline at end of file +Lists a team's members using the team's unique ID. All team members have read access to this endpoint. \ No newline at end of file From c3f06f9a580a8bbfbbd0e72c78594aa59c572c82 Mon Sep 17 00:00:00 2001 From: Radmacher <66096031+rdmchr@users.noreply.github.com> Date: Thu, 2 Dec 2021 23:19:07 +0100 Subject: [PATCH 017/107] Update app/controllers/api/teams.php Co-authored-by: kodumbeats --- app/controllers/api/teams.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index 7b06c13d7f..1b2e998737 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -262,7 +262,7 @@ App::post('/v1/teams/:teamId/memberships') ->label('abuse-limit', 10) ->param('teamId', '', new UID(), 'The unique team ID.') ->param('email', '', new Email(), 'The email address of the new team member.') - ->param('roles', [], new ArrayList(new Key()), 'An Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](/docs/permissions). Max length for each role is 32 chars.') + ->param('roles', [], new ArrayList(new Key()), 'An array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](/docs/permissions). Max length for each role is 32 chars.') ->param('url', '', function ($clients) { return new Host($clients); }, 'URL to redirect the user back to your app from the invitation email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.', false, ['clients']) // TODO add our own built-in confirm page ->param('name', '', new Text(128), 'The name of the new team member. Max length: 128 chars.', true) ->inject('response') From 95e2cb6290c4d35fc61f454af56a123b2094b825 Mon Sep 17 00:00:00 2001 From: Radmacher <66096031+rdmchr@users.noreply.github.com> Date: Thu, 2 Dec 2021 23:20:57 +0100 Subject: [PATCH 018/107] Update app/controllers/api/teams.php Co-authored-by: kodumbeats --- app/controllers/api/teams.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index 1b2e998737..f822a81fed 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -116,7 +116,7 @@ App::get('/v1/teams') ->param('search', '', new Text(256), 'Enter any text to search. Max length: 256 chars.', true) ->param('limit', 25, new Range(0, 100), 'Limit how many results will be returned. Returns up to 25 results by default. Maximum of 100 results allowed per request.', true) ->param('offset', 0, new Range(0, 2000), 'Use this value to manage pagination. The default value is 0.', true) - ->param('orderType', 'ASC', new WhiteList(['ASC', 'DESC'], true), 'Use ASC to order results in ascending and DESC to order results in descending order.', true) + ->param('orderType', 'ASC', new WhiteList(['ASC', 'DESC'], true), 'Order result by ASC or DESC order.', true) ->inject('response') ->inject('projectDB') ->action(function ($search, $limit, $offset, $orderType, $response, $projectDB) { From ea8985d5916e643161d7d1d985690e8b3361a7b8 Mon Sep 17 00:00:00 2001 From: Damodar Lohani Date: Fri, 3 Dec 2021 13:23:21 +0545 Subject: [PATCH 019/107] skip decryption for null --- app/init.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/init.php b/app/init.php index 6992728987..1947856c15 100644 --- a/app/init.php +++ b/app/init.php @@ -332,6 +332,9 @@ Database::addFilter('encrypt', ]); }, function($value) { + if(is_null($value)) { + return null; + } $value = json_decode($value, true); $key = App::getEnv('_APP_OPENSSL_KEY_V'.$value['version']); From e944da2f3e08e2f6b864a0538a9cf2a980d8c02b Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Mon, 6 Dec 2021 13:03:12 +0100 Subject: [PATCH 020/107] feat(realtime): add console channel --- app/controllers/shared/api.php | 8 +- app/init.php | 40 - app/workers/database.php | 72 +- public/dist/scripts/app-all.js | 3 +- public/dist/scripts/app.js | 3 +- public/scripts/init.js | 23 +- src/Appwrite/Messaging/Adapter/Realtime.php | 18 +- tests/e2e/Services/Realtime/RealtimeBase.php | 1041 +---------------- .../Realtime/RealtimeConsoleClientTest.php | 276 +++++ .../Realtime/RealtimeCustomClientTest.php | 1037 ++++++++++++++++ 10 files changed, 1434 insertions(+), 1087 deletions(-) create mode 100644 tests/e2e/Services/Realtime/RealtimeConsoleClientTest.php diff --git a/app/controllers/shared/api.php b/app/controllers/shared/api.php index 210cb46912..3bd1aba579 100644 --- a/app/controllers/shared/api.php +++ b/app/controllers/shared/api.php @@ -166,7 +166,7 @@ App::init(function ($utopia, $request, $project) { throw new Exception('JWT authentication is disabled for this project', 501); } break; - + default: throw new Exception('Unsupported authentication route'); break; @@ -187,7 +187,7 @@ App::shutdown(function ($utopia, $request, $response, $project, $events, $audits /** @var bool $mode */ if (!empty($events->getParam('event'))) { - if(empty($events->getParam('eventData'))) { + if (empty($events->getParam('eventData'))) { $events->setParam('eventData', $response->getPayload()); } @@ -206,10 +206,10 @@ App::shutdown(function ($utopia, $request, $response, $project, $events, $audits if ($project->getId() !== 'console') { $payload = new Document($response->getPayload()); - $target = Realtime::fromPayload($events->getParam('event'), $payload); + $target = Realtime::fromPayload($events->getParam('event'), $payload, $project); Realtime::send( - $project->getId(), + $target['projectId'] ?? $project->getId(), $response->getPayload(), $events->getParam('event'), $target['channels'], diff --git a/app/init.php b/app/init.php index 6992728987..0c7c9e55fc 100644 --- a/app/init.php +++ b/app/init.php @@ -21,9 +21,6 @@ use Appwrite\Extend\PDO; use Ahc\Jwt\JWT; use Ahc\Jwt\JWTException; use Appwrite\Auth\Auth; -use Appwrite\Database\Database as DatabaseOld; -use Appwrite\Database\Adapter\MySQL as MySQLAdapter; -use Appwrite\Database\Adapter\Redis as RedisAdapter; use Appwrite\Event\Event; use Appwrite\Network\Validator\Email; use Appwrite\Network\Validator\IP; @@ -156,43 +153,6 @@ if(!empty($user) || !empty($pass)) { Resque::setBackend(App::getEnv('_APP_REDIS_HOST', '').':'.App::getEnv('_APP_REDIS_PORT', '')); } -/** - * Old DB Filters - */ -DatabaseOld::addFilter('json', - function($value) { - if(!is_array($value)) { - return $value; - } - return json_encode($value); - }, - function($value) { - return json_decode($value, true); - } -); - -DatabaseOld::addFilter('encrypt', - function($value) { - $key = App::getEnv('_APP_OPENSSL_KEY_V1'); - $iv = OpenSSL::randomPseudoBytes(OpenSSL::cipherIVLength(OpenSSL::CIPHER_AES_128_GCM)); - $tag = null; - - return json_encode([ - 'data' => OpenSSL::encrypt($value, OpenSSL::CIPHER_AES_128_GCM, $key, 0, $iv, $tag), - 'method' => OpenSSL::CIPHER_AES_128_GCM, - 'iv' => bin2hex($iv), - 'tag' => bin2hex($tag), - 'version' => '1', - ]); - }, - function($value) { - $value = json_decode($value, true); - $key = App::getEnv('_APP_OPENSSL_KEY_V'.$value['version']); - - return OpenSSL::decrypt($value['data'], $value['method'], $key, 0, hex2bin($value['iv']), hex2bin($value['tag'])); - } -); - /** * New DB Filters */ diff --git a/app/workers/database.php b/app/workers/database.php index 3b9f36afbd..f58502704a 100644 --- a/app/workers/database.php +++ b/app/workers/database.php @@ -1,5 +1,6 @@ isEmpty()) { throw new Exception('Missing document'); } - + switch (strval($type)) { case DATABASE_TYPE_CREATE_ATTRIBUTE: $this->createAttribute($collection, $document, $projectId); @@ -67,9 +68,11 @@ class DatabaseV1 extends Worker */ protected function createAttribute(Document $collection, Document $attribute, string $projectId): void { + $dbForConsole = $this->getConsoleDB(); $dbForInternal = $this->getInternalDB($projectId); $dbForExternal = $this->getExternalDB($projectId); + $event = 'database.attributes.update'; $collectionId = $collection->getId(); $key = $attribute->getAttribute('key', ''); $type = $attribute->getAttribute('type', ''); @@ -81,6 +84,7 @@ class DatabaseV1 extends Worker $format = $attribute->getAttribute('format', ''); $formatOptions = $attribute->getAttribute('formatOptions', []); $filters = $attribute->getAttribute('filters', []); + $project = $dbForConsole->getDocument('projects', $projectId); try { if(!$dbForExternal->createAttribute($collectionId, $key, $type, $size, $required, $default, $signed, $array, $format, $formatOptions, $filters)) { @@ -90,6 +94,20 @@ class DatabaseV1 extends Worker } catch (\Throwable $th) { Console::error($th->getMessage()); $dbForInternal->updateDocument('attributes', $attribute->getId(), $attribute->setAttribute('status', 'failed')); + } finally { + $target = Realtime::fromPayload($event, $attribute, $project); + + Realtime::send( + projectId: 'console', + payload: $attribute->getArrayCopy(), + event: $event, + channels: $target['channels'], + roles: $target['roles'], + options: [ + 'projectId' => $projectId, + 'collectionId' => $collection->getId() + ] + ); } $dbForInternal->deleteCachedDocument('collections', $collectionId); @@ -102,11 +120,15 @@ class DatabaseV1 extends Worker */ protected function deleteAttribute(Document $collection, Document $attribute, string $projectId): void { + $dbForConsole = $this->getConsoleDB(); $dbForInternal = $this->getInternalDB($projectId); $dbForExternal = $this->getExternalDB($projectId); + + $event = 'database.attributes.delete'; $collectionId = $collection->getId(); $key = $attribute->getAttribute('key', ''); $status = $attribute->getAttribute('status', ''); + $project = $dbForConsole->getDocument('projects', $projectId); // possible states at this point: // - available: should not land in queue; controller flips these to 'deleting' @@ -122,6 +144,20 @@ class DatabaseV1 extends Worker } catch (\Throwable $th) { Console::error($th->getMessage()); $dbForInternal->updateDocument('attributes', $attribute->getId(), $attribute->setAttribute('status', 'stuck')); + } finally { + $target = Realtime::fromPayload($event, $attribute, $project); + + Realtime::send( + projectId: 'console', + payload: $attribute->getArrayCopy(), + event: $event, + channels: $target['channels'], + roles: $target['roles'], + options: [ + 'projectId' => $projectId, + 'collectionId' => $collection->getId() + ] + ); } // The underlying database removes/rebuilds indexes when attribute is removed @@ -185,15 +221,18 @@ class DatabaseV1 extends Worker */ protected function createIndex(Document $collection, Document $index, string $projectId): void { + $dbForConsole = $this->getConsoleDB(); $dbForInternal = $this->getInternalDB($projectId); $dbForExternal = $this->getExternalDB($projectId); + $event = 'database.indexes.update'; $collectionId = $collection->getId(); $key = $index->getAttribute('key', ''); $type = $index->getAttribute('type', ''); $attributes = $index->getAttribute('attributes', []); $lengths = $index->getAttribute('lengths', []); $orders = $index->getAttribute('orders', []); + $project = $dbForConsole->getDocument('projects', $projectId); try { if(!$dbForExternal->createIndex($collectionId, $key, $type, $attributes, $lengths, $orders)) { @@ -203,6 +242,20 @@ class DatabaseV1 extends Worker } catch (\Throwable $th) { Console::error($th->getMessage()); $dbForInternal->updateDocument('indexes', $index->getId(), $index->setAttribute('status', 'failed')); + } finally { + $target = Realtime::fromPayload($event, $index, $project); + + Realtime::send( + projectId: 'console', + payload: $index->getArrayCopy(), + event: $event, + channels: $target['channels'], + roles: $target['roles'], + options: [ + 'projectId' => $projectId, + 'collectionId' => $collection->getId() + ] + ); } $dbForInternal->deleteCachedDocument('collections', $collectionId); @@ -215,12 +268,15 @@ class DatabaseV1 extends Worker */ protected function deleteIndex(Document $collection, Document $index, string $projectId): void { + $dbForConsole = $this->getConsoleDB(); $dbForInternal = $this->getInternalDB($projectId); $dbForExternal = $this->getExternalDB($projectId); $collectionId = $collection->getId(); $key = $index->getAttribute('key'); $status = $index->getAttribute('status', ''); + $event = 'database.indexes.delete'; + $project = $dbForConsole->getDocument('projects', $projectId); try { if($status !== 'failed' && !$dbForExternal->deleteIndex($collectionId, $key)) { @@ -230,6 +286,20 @@ class DatabaseV1 extends Worker } catch (\Throwable $th) { Console::error($th->getMessage()); $dbForInternal->updateDocument('indexes', $index->getId(), $index->setAttribute('status', 'stuck')); + } finally { + $target = Realtime::fromPayload($event, $index, $project); + + Realtime::send( + projectId: 'console', + payload: $index->getArrayCopy(), + event: $event, + channels: $target['channels'], + roles: $target['roles'], + options: [ + 'projectId' => $projectId, + 'collectionId' => $collection->getId() + ] + ); } $dbForInternal->deleteCachedDocument('collections', $collectionId); diff --git a/public/dist/scripts/app-all.js b/public/dist/scripts/app-all.js index cbddd2d614..b9632bf90b 100644 --- a/public/dist/scripts/app-all.js +++ b/public/dist/scripts/app-all.js @@ -3427,7 +3427,8 @@ function handler2(){} handler2.inline=(el,{expression},{cleanup:cleanup2})=>{let root=closestRoot(el);if(!root._x_refs) root._x_refs={};root._x_refs[expression]=el;cleanup2(()=>delete root._x_refs[expression]);};directive("ref",handler2);directive("if",(el,{expression},{effect:effect3,cleanup:cleanup2})=>{let evaluate2=evaluateLater(el,expression);let show=()=>{if(el._x_currentIfEl) return el._x_currentIfEl;let clone2=el.content.cloneNode(true).firstElementChild;addScopeToNode(clone2,{},el);mutateDom(()=>{el.after(clone2);initTree(clone2);});el._x_currentIfEl=clone2;el._x_undoIf=()=>{clone2.remove();delete el._x_currentIfEl;};return clone2;};let hide=()=>{if(!el._x_undoIf) -return;el._x_undoIf();delete el._x_undoIf;};effect3(()=>evaluate2((value)=>{value?show():hide();}));cleanup2(()=>el._x_undoIf&&el._x_undoIf());});mapAttributes(startingWith("@",into(prefix("on:"))));directive("on",skipDuringClone((el,{value,modifiers,expression},{cleanup:cleanup2})=>{let evaluate2=expression?evaluateLater(el,expression):()=>{};let removeListener=on(el,value,modifiers,(e)=>{evaluate2(()=>{},{scope:{$event:e},params:[e]});});cleanup2(()=>removeListener());}));alpine_default.setEvaluator(normalEvaluator);alpine_default.setReactivityEngine({reactive:reactive2,effect:effect2,release:stop,raw:toRaw});var src_default=alpine_default;window.Alpine=src_default;queueMicrotask(()=>{src_default.start();});})();window.ls.error=function(){return function(error){window.console.error(error);if(window.location.pathname!=='/console'){window.location='/console';}};};window.addEventListener("error",function(event){console.error("ERROR-EVENT:",event.error.message,event.error.stack);});document.addEventListener("account.deleteSession",function(){window.location="/auth/signin";});document.addEventListener("account.create",function(){let container=window.ls.container;let form=container.get('serviceForm');let sdk=container.get('console');let promise=sdk.account.createSession(form.email,form.password);container.set("serviceForm",{},true,true);promise.then(function(){var subscribe=document.getElementById('newsletter').checked;if(subscribe){let alerts=container.get('alerts');let loaderId=alerts.add({text:'Loading...',class:""},0);fetch('https://appwrite.io/v1/newsletter/subscribe',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({name:form.name,email:form.email,}),}).finally(function(){alerts.remove(loaderId);window.location='/console';});}else{window.location='/console';}},function(error){window.location='/auth/signup?failure=1';});});window.addEventListener("load",async()=>{const bars=12;const realtime=window.ls.container.get('realtime');const sleep=ms=>new Promise(resolve=>setTimeout(resolve,ms));let current={};window.ls.container.get('console').subscribe('project',event=>{for(let project in event.payload){current[project]=event.payload[project]??0;}});while(true){let newHistory={};let createdHistory=false;for(const project in current){let history=realtime?.history??{};if(!(project in history)){history[project]=new Array(bars).fill({percentage:0,value:0});} +return;el._x_undoIf();delete el._x_undoIf;};effect3(()=>evaluate2((value)=>{value?show():hide();}));cleanup2(()=>el._x_undoIf&&el._x_undoIf());});mapAttributes(startingWith("@",into(prefix("on:"))));directive("on",skipDuringClone((el,{value,modifiers,expression},{cleanup:cleanup2})=>{let evaluate2=expression?evaluateLater(el,expression):()=>{};let removeListener=on(el,value,modifiers,(e)=>{evaluate2(()=>{},{scope:{$event:e},params:[e]});});cleanup2(()=>removeListener());}));alpine_default.setEvaluator(normalEvaluator);alpine_default.setReactivityEngine({reactive:reactive2,effect:effect2,release:stop,raw:toRaw});var src_default=alpine_default;window.Alpine=src_default;queueMicrotask(()=>{src_default.start();});})();window.ls.error=function(){return function(error){window.console.error(error);if(window.location.pathname!=='/console'){window.location='/console';}};};window.addEventListener("error",function(event){console.error("ERROR-EVENT:",event.error.message,event.error.stack);});document.addEventListener("account.deleteSession",function(){window.location="/auth/signin";});document.addEventListener("account.create",function(){let container=window.ls.container;let form=container.get('serviceForm');let sdk=container.get('console');let promise=sdk.account.createSession(form.email,form.password);container.set("serviceForm",{},true,true);promise.then(function(){var subscribe=document.getElementById('newsletter').checked;if(subscribe){let alerts=container.get('alerts');let loaderId=alerts.add({text:'Loading...',class:""},0);fetch('https://appwrite.io/v1/newsletter/subscribe',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({name:form.name,email:form.email,}),}).finally(function(){alerts.remove(loaderId);window.location='/console';});}else{window.location='/console';}},function(error){window.location='/auth/signup?failure=1';});});window.addEventListener("load",async()=>{const bars=12;const realtime=window.ls.container.get('realtime');const sleep=ms=>new Promise(resolve=>setTimeout(resolve,ms));let current={};window.ls.container.get('console').subscribe(['project','console'],response=>{switch(response.event){case'stats.connections':for(let project in response.payload){current[project]=response.payload[project]??0;} +break;case'database.attributes.create':case'database.attributes.update':case'database.attributes.delete':document.dispatchEvent(new CustomEvent('database.createAttribute'));break;case'database.indexes.create':case'database.indexes.update':case'database.indexes.delete':document.dispatchEvent(new CustomEvent('database.createIndex'));break;}});while(true){let newHistory={};let createdHistory=false;for(const project in current){let history=realtime?.history??{};if(!(project in history)){history[project]=new Array(bars).fill({percentage:0,value:0});} history=history[project];history.push({percentage:0,value:current[project]});if(history.length>=bars){history.shift();} const highest=history.reduce((prev,curr)=>{return(curr.value>prev)?curr.value:prev;},0);history=history.map(({percentage,value})=>{createdHistory=true;percentage=value===0?0:((Math.round((value/highest)*10)/10)*100);if(percentage>100)percentage=100;else if(percentage==0&&value!=0)percentage=5;return{percentage:percentage,value:value};}) newHistory[project]=history;} diff --git a/public/dist/scripts/app.js b/public/dist/scripts/app.js index c7eb1c9eee..f2f5a08f79 100644 --- a/public/dist/scripts/app.js +++ b/public/dist/scripts/app.js @@ -493,7 +493,8 @@ function handler2(){} handler2.inline=(el,{expression},{cleanup:cleanup2})=>{let root=closestRoot(el);if(!root._x_refs) root._x_refs={};root._x_refs[expression]=el;cleanup2(()=>delete root._x_refs[expression]);};directive("ref",handler2);directive("if",(el,{expression},{effect:effect3,cleanup:cleanup2})=>{let evaluate2=evaluateLater(el,expression);let show=()=>{if(el._x_currentIfEl) return el._x_currentIfEl;let clone2=el.content.cloneNode(true).firstElementChild;addScopeToNode(clone2,{},el);mutateDom(()=>{el.after(clone2);initTree(clone2);});el._x_currentIfEl=clone2;el._x_undoIf=()=>{clone2.remove();delete el._x_currentIfEl;};return clone2;};let hide=()=>{if(!el._x_undoIf) -return;el._x_undoIf();delete el._x_undoIf;};effect3(()=>evaluate2((value)=>{value?show():hide();}));cleanup2(()=>el._x_undoIf&&el._x_undoIf());});mapAttributes(startingWith("@",into(prefix("on:"))));directive("on",skipDuringClone((el,{value,modifiers,expression},{cleanup:cleanup2})=>{let evaluate2=expression?evaluateLater(el,expression):()=>{};let removeListener=on(el,value,modifiers,(e)=>{evaluate2(()=>{},{scope:{$event:e},params:[e]});});cleanup2(()=>removeListener());}));alpine_default.setEvaluator(normalEvaluator);alpine_default.setReactivityEngine({reactive:reactive2,effect:effect2,release:stop,raw:toRaw});var src_default=alpine_default;window.Alpine=src_default;queueMicrotask(()=>{src_default.start();});})();window.ls.error=function(){return function(error){window.console.error(error);if(window.location.pathname!=='/console'){window.location='/console';}};};window.addEventListener("error",function(event){console.error("ERROR-EVENT:",event.error.message,event.error.stack);});document.addEventListener("account.deleteSession",function(){window.location="/auth/signin";});document.addEventListener("account.create",function(){let container=window.ls.container;let form=container.get('serviceForm');let sdk=container.get('console');let promise=sdk.account.createSession(form.email,form.password);container.set("serviceForm",{},true,true);promise.then(function(){var subscribe=document.getElementById('newsletter').checked;if(subscribe){let alerts=container.get('alerts');let loaderId=alerts.add({text:'Loading...',class:""},0);fetch('https://appwrite.io/v1/newsletter/subscribe',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({name:form.name,email:form.email,}),}).finally(function(){alerts.remove(loaderId);window.location='/console';});}else{window.location='/console';}},function(error){window.location='/auth/signup?failure=1';});});window.addEventListener("load",async()=>{const bars=12;const realtime=window.ls.container.get('realtime');const sleep=ms=>new Promise(resolve=>setTimeout(resolve,ms));let current={};window.ls.container.get('console').subscribe('project',event=>{for(let project in event.payload){current[project]=event.payload[project]??0;}});while(true){let newHistory={};let createdHistory=false;for(const project in current){let history=realtime?.history??{};if(!(project in history)){history[project]=new Array(bars).fill({percentage:0,value:0});} +return;el._x_undoIf();delete el._x_undoIf;};effect3(()=>evaluate2((value)=>{value?show():hide();}));cleanup2(()=>el._x_undoIf&&el._x_undoIf());});mapAttributes(startingWith("@",into(prefix("on:"))));directive("on",skipDuringClone((el,{value,modifiers,expression},{cleanup:cleanup2})=>{let evaluate2=expression?evaluateLater(el,expression):()=>{};let removeListener=on(el,value,modifiers,(e)=>{evaluate2(()=>{},{scope:{$event:e},params:[e]});});cleanup2(()=>removeListener());}));alpine_default.setEvaluator(normalEvaluator);alpine_default.setReactivityEngine({reactive:reactive2,effect:effect2,release:stop,raw:toRaw});var src_default=alpine_default;window.Alpine=src_default;queueMicrotask(()=>{src_default.start();});})();window.ls.error=function(){return function(error){window.console.error(error);if(window.location.pathname!=='/console'){window.location='/console';}};};window.addEventListener("error",function(event){console.error("ERROR-EVENT:",event.error.message,event.error.stack);});document.addEventListener("account.deleteSession",function(){window.location="/auth/signin";});document.addEventListener("account.create",function(){let container=window.ls.container;let form=container.get('serviceForm');let sdk=container.get('console');let promise=sdk.account.createSession(form.email,form.password);container.set("serviceForm",{},true,true);promise.then(function(){var subscribe=document.getElementById('newsletter').checked;if(subscribe){let alerts=container.get('alerts');let loaderId=alerts.add({text:'Loading...',class:""},0);fetch('https://appwrite.io/v1/newsletter/subscribe',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({name:form.name,email:form.email,}),}).finally(function(){alerts.remove(loaderId);window.location='/console';});}else{window.location='/console';}},function(error){window.location='/auth/signup?failure=1';});});window.addEventListener("load",async()=>{const bars=12;const realtime=window.ls.container.get('realtime');const sleep=ms=>new Promise(resolve=>setTimeout(resolve,ms));let current={};window.ls.container.get('console').subscribe(['project','console'],response=>{switch(response.event){case'stats.connections':for(let project in response.payload){current[project]=response.payload[project]??0;} +break;case'database.attributes.create':case'database.attributes.update':case'database.attributes.delete':document.dispatchEvent(new CustomEvent('database.createAttribute'));break;case'database.indexes.create':case'database.indexes.update':case'database.indexes.delete':document.dispatchEvent(new CustomEvent('database.createIndex'));break;}});while(true){let newHistory={};let createdHistory=false;for(const project in current){let history=realtime?.history??{};if(!(project in history)){history[project]=new Array(bars).fill({percentage:0,value:0});} history=history[project];history.push({percentage:0,value:current[project]});if(history.length>=bars){history.shift();} const highest=history.reduce((prev,curr)=>{return(curr.value>prev)?curr.value:prev;},0);history=history.map(({percentage,value})=>{createdHistory=true;percentage=value===0?0:((Math.round((value/highest)*10)/10)*100);if(percentage>100)percentage=100;else if(percentage==0&&value!=0)percentage=5;return{percentage:percentage,value:value};}) newHistory[project]=history;} diff --git a/public/scripts/init.js b/public/scripts/init.js index 711c678ac5..fb0e4b5383 100644 --- a/public/scripts/init.js +++ b/public/scripts/init.js @@ -57,10 +57,27 @@ window.addEventListener("load", async () => { const realtime = window.ls.container.get('realtime'); const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); let current = {}; - window.ls.container.get('console').subscribe('project', event => { - for (let project in event.payload) { - current[project] = event.payload[project] ?? 0; + window.ls.container.get('console').subscribe(['project', 'console'], response => { + switch (response.event) { + case 'stats.connections': + for (let project in response.payload) { + current[project] = response.payload[project] ?? 0; + } + break; + case 'database.attributes.create': + case 'database.attributes.update': + case 'database.attributes.delete': + document.dispatchEvent(new CustomEvent('database.createAttribute')); + + break; + case 'database.indexes.create': + case 'database.indexes.update': + case 'database.indexes.delete': + document.dispatchEvent(new CustomEvent('database.createIndex')); + + break; } + }); while (true) { diff --git a/src/Appwrite/Messaging/Adapter/Realtime.php b/src/Appwrite/Messaging/Adapter/Realtime.php index 4269fa04dc..71738e42ba 100644 --- a/src/Appwrite/Messaging/Adapter/Realtime.php +++ b/src/Appwrite/Messaging/Adapter/Realtime.php @@ -233,17 +233,19 @@ class Realtime extends Adapter } /** - * Create channels array based on the event name and payload. - * + * Creae channels array based on the event name and payload. + * * @param string $event * @param Document $payload + * @param Document|null $project * @return array */ - public static function fromPayload(string $event, Document $payload): array + public static function fromPayload(string $event, Document $payload, Document $project = null): array { $channels = []; $roles = []; $permissionsChanged = false; + $projectId = null; switch (true) { case strpos($event, 'account.recovery.') === 0: @@ -279,6 +281,13 @@ class Realtime extends Adapter $channels[] = 'collections.' . $payload->getId(); $roles = $payload->getRead(); + break; + case strpos($event, 'database.attributes.') === 0: + case strpos($event, 'database.indexes.') === 0: + $channels[] = 'console'; + $projectId = 'console'; + $roles = ['team:' . $project->getAttribute('teamId')]; + break; case strpos($event, 'database.documents.') === 0: $channels[] = 'documents'; @@ -306,7 +315,8 @@ class Realtime extends Adapter return [ 'channels' => $channels, 'roles' => $roles, - 'permissionsChanged' => $permissionsChanged + 'permissionsChanged' => $permissionsChanged, + 'projectId' => $projectId ]; } } diff --git a/tests/e2e/Services/Realtime/RealtimeBase.php b/tests/e2e/Services/Realtime/RealtimeBase.php index 68a121df93..1f734333d8 100644 --- a/tests/e2e/Services/Realtime/RealtimeBase.php +++ b/tests/e2e/Services/Realtime/RealtimeBase.php @@ -2,24 +2,26 @@ namespace Tests\E2E\Services\Realtime; -use CURLFile; -use Tests\E2E\Client; -use WebSocket\Client as WebSocketClient; use WebSocket\ConnectionException; +use WebSocket\Client as WebSocketClient; trait RealtimeBase { - - private function getWebsocket($channels = [], $headers = []) + private function getWebsocket($channels = [], $headers = [], $projectId = null) { + if (is_null($projectId)) { + $projectId = $this->getProject()['$id']; + } + $headers = array_merge([ 'Origin' => 'appwrite.test' ], $headers); $query = [ - 'project' => $this->getProject()['$id'], + 'project' => $projectId, 'channels' => $channels ]; + return new WebSocketClient('ws://appwrite-traefik/v1/realtime?' . http_build_query($query), [ 'headers' => $headers, 'timeout' => 30, @@ -38,17 +40,6 @@ trait RealtimeBase /** * Test for FAILURE */ - $client = $this->getWebsocket(['documents'], ['origin' => 'http://appwrite.unknown']); - $payload = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $payload); - $this->assertArrayHasKey('data', $payload); - $this->assertEquals('error', $payload['type']); - $this->assertEquals(1008, $payload['data']['code']); - $this->assertEquals('Invalid Origin. Register your new client (appwrite.unknown) as a new Web platform on your project console dashboard', $payload['data']['message']); - $this->expectException(ConnectionException::class); // Check if server disconnnected client - $client->close(); - $client = $this->getWebsocket(); $payload = json_decode($client->receive(), true); @@ -90,1020 +81,4 @@ trait RealtimeBase $this->expectException(ConnectionException::class); // Check if server disconnnected client $client->close(); } - - public function testChannelParsing() - { - $user = $this->getUser(); - $userId = $user['$id'] ?? ''; - $session = $user['session'] ?? ''; - $headers = [ - 'origin' => 'http://localhost', - 'cookie' => 'a_session_'.$this->getProject()['$id'].'=' . $session - ]; - - $client = $this->getWebsocket(['documents'], $headers); - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('connected', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertNotEmpty($response['data']['user']); - $this->assertCount(1, $response['data']['channels']); - $this->assertContains('documents', $response['data']['channels']); - $this->assertEquals($userId, $response['data']['user']['$id']); - - $client->close(); - - $client = $this->getWebsocket(['account'], $headers); - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('connected', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertNotEmpty($response['data']['user']); - $this->assertCount(2, $response['data']['channels']); - $this->assertContains('account', $response['data']['channels']); - $this->assertContains('account.' . $userId, $response['data']['channels']); - $this->assertEquals($userId, $response['data']['user']['$id']); - - $client->close(); - - $client = $this->getWebsocket(['account', 'documents', 'account.123'], $headers); - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('connected', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertNotEmpty($response['data']['user']); - $this->assertCount(3, $response['data']['channels']); - $this->assertContains('documents', $response['data']['channels']); - $this->assertContains('account', $response['data']['channels']); - $this->assertContains('account.' . $userId, $response['data']['channels']); - $this->assertEquals($userId, $response['data']['user']['$id']); - - $client->close(); - - $client = $this->getWebsocket([ - 'account', - 'files', - 'files.1', - 'collections', - 'collections.1', - 'collections.1.documents', - 'collections.2', - 'collections.2.documents', - 'documents', - 'documents.1', - 'documents.2', - ], $headers); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('connected', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertNotEmpty($response['data']['user']); - $this->assertCount(12, $response['data']['channels']); - $this->assertContains('account', $response['data']['channels']); - $this->assertContains('account.' . $userId, $response['data']['channels']); - $this->assertContains('files', $response['data']['channels']); - $this->assertContains('files.1', $response['data']['channels']); - $this->assertContains('collections', $response['data']['channels']); - $this->assertContains('collections.1', $response['data']['channels']); - $this->assertContains('collections.1.documents', $response['data']['channels']); - $this->assertContains('collections.2', $response['data']['channels']); - $this->assertContains('collections.2.documents', $response['data']['channels']); - $this->assertContains('documents', $response['data']['channels']); - $this->assertContains('documents.1', $response['data']['channels']); - $this->assertContains('documents.2', $response['data']['channels']); - $this->assertEquals($userId, $response['data']['user']['$id']); - - $client->close(); - } - - public function testManualAuthentication() - { - $user = $this->getUser(); - $userId = $user['$id'] ?? ''; - $session = $user['session'] ?? ''; - - /** - * Test for SUCCESS - */ - $client = $this->getWebsocket(['account'], [ - 'origin' => 'http://localhost' - ]); - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('connected', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertCount(1, $response['data']['channels']); - $this->assertContains('account', $response['data']['channels']); - - $client->send(\json_encode([ - 'type' => 'authentication', - 'data' => [ - 'session' => $session - ] - ])); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('response', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertEquals('authentication', $response['data']['to']); - $this->assertTrue($response['data']['success']); - $this->assertNotEmpty($response['data']['user']); - $this->assertEquals($userId, $response['data']['user']['$id']); - - /** - * Test for FAILURE - */ - $client->send(\json_encode([ - 'type' => 'authentication', - 'data' => [ - 'session' => 'invalid_session' - ] - ])); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('error', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertEquals(1003, $response['data']['code']); - $this->assertEquals('Session is not valid.', $response['data']['message']); - - $client->send(\json_encode([ - 'type' => 'authentication', - 'data' => [] - ])); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('error', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertEquals(1003, $response['data']['code']); - $this->assertEquals('Payload is not valid.', $response['data']['message']); - - $client->send(\json_encode([ - 'type' => 'unknown', - 'data' => [ - 'session' => 'invalid_session' - ] - ])); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('error', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertEquals(1003, $response['data']['code']); - $this->assertEquals('Message type is not valid.', $response['data']['message']); - - $client->send(\json_encode([ - 'test' => '123', - ])); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('error', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertEquals(1003, $response['data']['code']); - $this->assertEquals('Message format is not valid.', $response['data']['message']); - - - $client->close(); - } - - public function testChannelAccount() - { - $user = $this->getUser(); - $userId = $user['$id'] ?? ''; - $session = $user['session'] ?? ''; - $projectId = $this->getProject()['$id']; - - $client = $this->getWebsocket(['account'], [ - 'origin' => 'http://localhost', - 'cookie' => 'a_session_'.$projectId.'=' . $session - ]); - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('connected', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertCount(2, $response['data']['channels']); - $this->assertContains('account', $response['data']['channels']); - $this->assertContains('account.' . $userId, $response['data']['channels']); - $this->assertNotEmpty($response['data']['user']); - $this->assertEquals($userId, $response['data']['user']['$id']); - - /** - * Test Account Name Event - */ - $name = "Torsten Dittmann"; - - $this->client->call(Client::METHOD_PATCH, '/account/name', array_merge([ - 'origin' => 'http://localhost', - 'content-type' => 'application/json', - 'x-appwrite-project' => $projectId, - 'cookie' => 'a_session_' . $projectId . '=' . $session, - ]), [ - 'name' => $name - ]); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('event', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertCount(2, $response['data']['channels']); - $this->assertArrayHasKey('timestamp', $response['data']); - $this->assertContains('account', $response['data']['channels']); - $this->assertContains('account.' . $userId, $response['data']['channels']); - $this->assertEquals('account.update.name', $response['data']['event']); - $this->assertNotEmpty($response['data']['payload']); - - $this->assertEquals($name, $response['data']['payload']['name']); - - - /** - * Test Account Password Event - */ - $this->client->call(Client::METHOD_PATCH, '/account/password', array_merge([ - 'origin' => 'http://localhost', - 'content-type' => 'application/json', - 'x-appwrite-project' => $projectId, - 'cookie' => 'a_session_'.$projectId.'=' . $session, - ]), [ - 'password' => 'new-password', - 'oldPassword' => 'password', - ]); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('event', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertCount(2, $response['data']['channels']); - $this->assertArrayHasKey('timestamp', $response['data']); - $this->assertContains('account', $response['data']['channels']); - $this->assertContains('account.' . $userId, $response['data']['channels']); - $this->assertEquals('account.update.password', $response['data']['event']); - $this->assertNotEmpty($response['data']['payload']); - - $this->assertEquals($name, $response['data']['payload']['name']); - - /** - * Test Account Email Update - */ - $this->client->call(Client::METHOD_PATCH, '/account/email', array_merge([ - 'origin' => 'http://localhost', - 'content-type' => 'application/json', - 'x-appwrite-project' => $projectId, - 'cookie' => 'a_session_'.$projectId.'=' . $session, - ]), [ - 'email' => 'torsten@appwrite.io', - 'password' => 'new-password', - ]); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('event', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertCount(2, $response['data']['channels']); - $this->assertArrayHasKey('timestamp', $response['data']); - $this->assertContains('account', $response['data']['channels']); - $this->assertContains('account.' . $userId, $response['data']['channels']); - $this->assertEquals('account.update.email', $response['data']['event']); - $this->assertNotEmpty($response['data']['payload']); - - $this->assertEquals('torsten@appwrite.io', $response['data']['payload']['email']); - - /** - * Test Account Verification Create - */ - $this->client->call(Client::METHOD_POST, '/account/verification', array_merge([ - 'origin' => 'http://localhost', - 'content-type' => 'application/json', - 'x-appwrite-project' => $projectId, - 'cookie' => 'a_session_'.$projectId.'=' . $session, - ]), [ - 'url' => 'http://localhost/verification', - ]); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('event', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertCount(2, $response['data']['channels']); - $this->assertArrayHasKey('timestamp', $response['data']); - $this->assertContains('account', $response['data']['channels']); - $this->assertContains('account.' . $userId, $response['data']['channels']); - $this->assertEquals('account.verification.create', $response['data']['event']); - - $lastEmail = $this->getLastEmail(); - $verification = substr($lastEmail['text'], strpos($lastEmail['text'], '&secret=', 0) + 8, 256); - - /** - * Test Account Verification Complete - */ - $response = $this->client->call(Client::METHOD_PUT, '/account/verification', array_merge([ - 'origin' => 'http://localhost', - 'content-type' => 'application/json', - 'x-appwrite-project' => $projectId, - 'cookie' => 'a_session_'.$projectId.'=' . $session, - ]), [ - 'userId' => $userId, - 'secret' => $verification, - ]); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('event', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertCount(2, $response['data']['channels']); - $this->assertArrayHasKey('timestamp', $response['data']); - $this->assertContains('account', $response['data']['channels']); - $this->assertContains('account.' . $userId, $response['data']['channels']); - $this->assertEquals('account.verification.update', $response['data']['event']); - - /** - * Test Acoount Prefs Update - */ - $this->client->call(Client::METHOD_PATCH, '/account/prefs', array_merge([ - 'origin' => 'http://localhost', - 'content-type' => 'application/json', - 'x-appwrite-project' => $projectId, - 'cookie' => 'a_session_'.$projectId.'=' . $session, - ]), [ - 'prefs' => [ - 'prefKey1' => 'prefValue1', - 'prefKey2' => 'prefValue2', - ] - ]); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('event', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertCount(2, $response['data']['channels']); - $this->assertArrayHasKey('timestamp', $response['data']); - $this->assertContains('account', $response['data']['channels']); - $this->assertContains('account.' . $userId, $response['data']['channels']); - $this->assertEquals('account.update.prefs', $response['data']['event']); - $this->assertNotEmpty($response['data']['payload']); - - /** - * Test Account Session Create - */ - $response = $this->client->call(Client::METHOD_POST, '/account/sessions', array_merge([ - 'origin' => 'http://localhost', - 'content-type' => 'application/json', - 'x-appwrite-project' => $projectId, - ]), [ - 'email' => 'torsten@appwrite.io', - 'password' => 'new-password', - ]); - - $sessionNew = $this->client->parseCookie((string)$response['headers']['set-cookie'])['a_session_'.$projectId]; - $sessionNewId = $response['body']['$id']; - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('event', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertCount(2, $response['data']['channels']); - $this->assertArrayHasKey('timestamp', $response['data']); - $this->assertContains('account', $response['data']['channels']); - $this->assertContains('account.' . $userId, $response['data']['channels']); - $this->assertEquals('account.sessions.create', $response['data']['event']); - $this->assertNotEmpty($response['data']['payload']); - - /** - * Test Account Session Delete - */ - $this->client->call(Client::METHOD_DELETE, '/account/sessions/'.$sessionNewId, array_merge([ - 'origin' => 'http://localhost', - 'content-type' => 'application/json', - 'x-appwrite-project' => $projectId, - 'cookie' => 'a_session_'.$projectId.'=' . $sessionNew, - ])); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('event', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertCount(2, $response['data']['channels']); - $this->assertArrayHasKey('timestamp', $response['data']); - $this->assertContains('account', $response['data']['channels']); - $this->assertContains('account.' . $userId, $response['data']['channels']); - $this->assertEquals('account.sessions.delete', $response['data']['event']); - $this->assertNotEmpty($response['data']['payload']); - - /** - * Test Account Create Recovery - */ - $this->client->call(Client::METHOD_POST, '/account/recovery', array_merge([ - 'origin' => 'http://localhost', - 'content-type' => 'application/json', - 'x-appwrite-project' => $projectId, - ]), [ - 'email' => 'torsten@appwrite.io', - 'url' => 'http://localhost/recovery', - ]); - - $response = json_decode($client->receive(), true); - - $lastEmail = $this->getLastEmail(); - $recovery = substr($lastEmail['text'], strpos($lastEmail['text'], '&secret=', 0) + 8, 256); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('event', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertCount(2, $response['data']['channels']); - $this->assertArrayHasKey('timestamp', $response['data']); - $this->assertContains('account', $response['data']['channels']); - $this->assertContains('account.' . $userId, $response['data']['channels']); - $this->assertEquals('account.recovery.create', $response['data']['event']); - $this->assertNotEmpty($response['data']['payload']); - - $response = $this->client->call(Client::METHOD_PUT, '/account/recovery', array_merge([ - 'origin' => 'http://localhost', - 'content-type' => 'application/json', - 'x-appwrite-project' => $projectId, - ]), [ - 'userId' => $userId, - 'secret' => $recovery, - 'password' => 'test-recovery', - 'passwordAgain' => 'test-recovery', - ]); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('event', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertCount(2, $response['data']['channels']); - $this->assertArrayHasKey('timestamp', $response['data']); - $this->assertContains('account', $response['data']['channels']); - $this->assertContains('account.' . $userId, $response['data']['channels']); - $this->assertEquals('account.recovery.update', $response['data']['event']); - $this->assertNotEmpty($response['data']['payload']); - - $client->close(); - } - - public function testChannelDatabase() - { - $user = $this->getUser(); - $session = $user['session'] ?? ''; - $projectId = $this->getProject()['$id']; - - $client = $this->getWebsocket(['documents', 'collections'], [ - 'origin' => 'http://localhost', - 'cookie' => 'a_session_'.$projectId.'=' . $session - ]); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('connected', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertCount(2, $response['data']['channels']); - $this->assertContains('documents', $response['data']['channels']); - $this->assertContains('collections', $response['data']['channels']); - $this->assertNotEmpty($response['data']['user']); - $this->assertEquals($user['$id'], $response['data']['user']['$id']); - - /** - * Test Collection Create - */ - $actors = $this->client->call(Client::METHOD_POST, '/database/collections', array_merge([ - 'content-type' => 'application/json', - 'x-appwrite-project' => $this->getProject()['$id'], - 'x-appwrite-key' => $this->getProject()['apiKey'] - ]), [ - 'collectionId' => 'unique()', - 'name' => 'Actors', - 'read' => ['role:all'], - 'write' => ['role:all'], - 'permission' => 'collection' - ]); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('event', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertArrayHasKey('timestamp', $response['data']); - $this->assertCount(2, $response['data']['channels']); - $this->assertContains('collections', $response['data']['channels']); - $this->assertContains('collections.' . $actors['body']['$id'], $response['data']['channels']); - $this->assertEquals('database.collections.create', $response['data']['event']); - $this->assertNotEmpty($response['data']['payload']); - - $data = ['actorsId' => $actors['body']['$id']]; - - $name = $this->client->call(Client::METHOD_POST, '/database/collections/' . $data['actorsId'] . '/attributes/string', array_merge([ - 'content-type' => 'application/json', - 'x-appwrite-project' => $this->getProject()['$id'], - 'x-appwrite-key' => $this->getProject()['apiKey'] - ]), [ - 'attributeId' => 'name', - 'size' => 256, - 'required' => true, - ]); - - $this->assertEquals($name['headers']['status-code'], 201); - $this->assertEquals($name['body']['key'], 'name'); - $this->assertEquals($name['body']['type'], 'string'); - $this->assertEquals($name['body']['size'], 256); - $this->assertEquals($name['body']['required'], true); - - sleep(2); - - /** - * Test Document Create - */ - $document = $this->client->call(Client::METHOD_POST, '/database/collections/' . $data['actorsId'] . '/documents', array_merge([ - 'content-type' => 'application/json', - 'x-appwrite-project' => $this->getProject()['$id'], - ], $this->getHeaders()), [ - 'documentId' => 'unique()', - 'data' => [ - 'name' => 'Chris Evans' - ], - 'read' => ['role:all'], - 'write' => ['role:all'], - ]); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('event', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertArrayHasKey('timestamp', $response['data']); - $this->assertCount(3, $response['data']['channels']); - $this->assertContains('documents', $response['data']['channels']); - $this->assertContains('documents.' . $document['body']['$id'], $response['data']['channels']); - $this->assertContains('collections.' . $actors['body']['$id'] . '.documents', $response['data']['channels']); - $this->assertEquals('database.documents.create', $response['data']['event']); - $this->assertNotEmpty($response['data']['payload']); - $this->assertEquals($response['data']['payload']['name'], 'Chris Evans'); - - $data['documentId'] = $document['body']['$id']; - - /** - * Test Document Update - */ - $document = $this->client->call(Client::METHOD_PATCH, '/database/collections/' . $data['actorsId'] . '/documents/' . $data['documentId'], array_merge([ - 'content-type' => 'application/json', - 'x-appwrite-project' => $this->getProject()['$id'], - ], $this->getHeaders()), [ - 'documentId' => 'unique()', - 'data' => [ - 'name' => 'Chris Evans 2' - ], - 'read' => ['role:all'], - 'write' => ['role:all'], - ]); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('event', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertArrayHasKey('timestamp', $response['data']); - $this->assertCount(3, $response['data']['channels']); - $this->assertContains('documents', $response['data']['channels']); - $this->assertContains('documents.' . $data['documentId'], $response['data']['channels']); - $this->assertContains('collections.' . $data['actorsId'] . '.documents', $response['data']['channels']); - $this->assertEquals('database.documents.update', $response['data']['event']); - $this->assertNotEmpty($response['data']['payload']); - - $this->assertEquals($response['data']['payload']['name'], 'Chris Evans 2'); - - - /** - * Test Document Delete - */ - $document = $this->client->call(Client::METHOD_POST, '/database/collections/' . $data['actorsId'] . '/documents', array_merge([ - 'content-type' => 'application/json', - 'x-appwrite-project' => $this->getProject()['$id'], - ], $this->getHeaders()), [ - 'documentId' => 'unique()', - 'data' => [ - 'name' => 'Bradley Cooper' - ], - 'read' => ['role:all'], - 'write' => ['role:all'], - ]); - - $client->receive(); - - $this->client->call(Client::METHOD_DELETE, '/database/collections/' . $data['actorsId'] . '/documents/' . $document['body']['$id'], array_merge([ - 'content-type' => 'application/json', - 'x-appwrite-project' => $this->getProject()['$id'], - ], $this->getHeaders())); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('event', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertArrayHasKey('timestamp', $response['data']); - $this->assertCount(3, $response['data']['channels']); - $this->assertContains('documents', $response['data']['channels']); - $this->assertContains('documents.' . $document['body']['$id'], $response['data']['channels']); - $this->assertContains('collections.' . $data['actorsId'] . '.documents', $response['data']['channels']); - $this->assertEquals('database.documents.delete', $response['data']['event']); - $this->assertNotEmpty($response['data']['payload']); - $this->assertEquals($response['data']['payload']['name'], 'Bradley Cooper'); - - $client->close(); - } - - public function testChannelFiles() - { - $user = $this->getUser(); - $session = $user['session'] ?? ''; - $projectId = $this->getProject()['$id']; - - $client = $this->getWebsocket(['files'], [ - 'origin' => 'http://localhost', - 'cookie' => 'a_session_'.$projectId.'=' . $session - ]); - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('connected', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertCount(1, $response['data']['channels']); - $this->assertContains('files', $response['data']['channels']); - $this->assertNotEmpty($response['data']['user']); - $this->assertEquals($user['$id'], $response['data']['user']['$id']); - - /** - * Test File Create - */ - $file = $this->client->call(Client::METHOD_POST, '/storage/files', array_merge([ - 'content-type' => 'multipart/form-data', - 'x-appwrite-project' => $this->getProject()['$id'], - ], $this->getHeaders()), [ - 'fileId' => 'unique()', - 'file' => new CURLFile(realpath(__DIR__ . '/../../../resources/logo.png'), 'image/png', 'logo.png'), - 'read' => ['role:all'], - 'write' => ['role:all'], - 'folderId' => 'xyz', - ]); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('event', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertArrayHasKey('timestamp', $response['data']); - $this->assertCount(2, $response['data']['channels']); - $this->assertContains('files', $response['data']['channels']); - $this->assertContains('files.' . $file['body']['$id'], $response['data']['channels']); - $this->assertEquals('storage.files.create', $response['data']['event']); - $this->assertNotEmpty($response['data']['payload']); - - $data = ['fileId' => $file['body']['$id']]; - - /** - * Test File Update - */ - $this->client->call(Client::METHOD_PUT, '/storage/files/' . $data['fileId'], array_merge([ - 'content-type' => 'application/json', - 'x-appwrite-project' => $this->getProject()['$id'], - ], $this->getHeaders()), [ - 'read' => ['role:all'], - 'write' => ['role:all'], - ]); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('event', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertArrayHasKey('timestamp', $response['data']); - $this->assertCount(2, $response['data']['channels']); - $this->assertContains('files', $response['data']['channels']); - $this->assertContains('files.' . $file['body']['$id'], $response['data']['channels']); - $this->assertEquals('storage.files.update', $response['data']['event']); - $this->assertNotEmpty($response['data']['payload']); - - /** - * Test File Delete - */ - $this->client->call(Client::METHOD_DELETE, '/storage/files/' . $data['fileId'], array_merge([ - 'content-type' => 'application/json', - 'x-appwrite-project' => $this->getProject()['$id'], - ], $this->getHeaders())); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('event', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertArrayHasKey('timestamp', $response['data']); - $this->assertCount(2, $response['data']['channels']); - $this->assertContains('files', $response['data']['channels']); - $this->assertContains('files.' . $file['body']['$id'], $response['data']['channels']); - $this->assertEquals('storage.files.delete', $response['data']['event']); - $this->assertNotEmpty($response['data']['payload']); - - $client->close(); - } - - public function testChannelExecutions() - { - $user = $this->getUser(); - $session = $user['session'] ?? ''; - $projectId = $this->getProject()['$id']; - - $client = $this->getWebsocket(['executions'], [ - 'origin' => 'http://localhost', - 'cookie' => 'a_session_'.$projectId.'=' . $session - ]); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('connected', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertCount(1, $response['data']['channels']); - $this->assertContains('executions', $response['data']['channels']); - $this->assertNotEmpty($response['data']['user']); - $this->assertEquals($user['$id'], $response['data']['user']['$id']); - - /** - * Test Functions Create - */ - $function = $this->client->call(Client::METHOD_POST, '/functions', [ - 'content-type' => 'application/json', - 'x-appwrite-project' => $this->getProject()['$id'], - 'x-appwrite-key' => $this->getProject()['apiKey'] - ], [ - 'functionId' => 'unique()', - 'name' => 'Test', - 'execute' => ['role:member'], - 'runtime' => 'php-8.0', - 'timeout' => 10, - ]); - - $functionId = $function['body']['$id'] ?? ''; - - $this->assertEquals($function['headers']['status-code'], 201); - $this->assertNotEmpty($function['body']['$id']); - - $tag = $this->client->call(Client::METHOD_POST, '/functions/'.$functionId.'/tags', array_merge([ - 'content-type' => 'multipart/form-data', - 'x-appwrite-project' => $this->getProject()['$id'], - 'x-appwrite-key' => $this->getProject()['apiKey'] - ]), [ - 'command' => 'php index.php', - 'code' => new CURLFile(realpath(__DIR__ . '/../../../resources/functions/timeout.tar.gz'), 'application/x-gzip', 'php-fx.tar.gz'), - ]); - - $tagId = $tag['body']['$id'] ?? ''; - - $this->assertEquals($tag['headers']['status-code'], 201); - $this->assertNotEmpty($tag['body']['$id']); - - $response = $this->client->call(Client::METHOD_PATCH, '/functions/'.$functionId.'/tag', array_merge([ - 'content-type' => 'application/json', - 'x-appwrite-project' => $this->getProject()['$id'], - 'x-appwrite-key' => $this->getProject()['apiKey'] - ]), [ - 'tag' => $tagId, - ]); - - $this->assertEquals($response['headers']['status-code'], 200); - $this->assertNotEmpty($response['body']['$id']); - - $execution = $this->client->call(Client::METHOD_POST, '/functions/'.$functionId.'/executions', array_merge([ - 'content-type' => 'application/json', - 'x-appwrite-project' => $this->getProject()['$id'] - ], $this->getHeaders()), []); - - $this->assertEquals($execution['headers']['status-code'], 201); - $this->assertNotEmpty($execution['body']['$id']); - - $response = json_decode($client->receive(), true); - $responseUpdate = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('event', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertArrayHasKey('timestamp', $response['data']); - $this->assertCount(3, $response['data']['channels']); - $this->assertContains('executions', $response['data']['channels']); - $this->assertContains('executions.' . $execution['body']['$id'], $response['data']['channels']); - $this->assertContains('functions.' . $execution['body']['functionId'], $response['data']['channels']); - $this->assertEquals('functions.executions.create', $response['data']['event']); - $this->assertNotEmpty($response['data']['payload']); - - $this->assertArrayHasKey('type', $responseUpdate); - $this->assertArrayHasKey('data', $responseUpdate); - $this->assertEquals('event', $responseUpdate['type']); - $this->assertNotEmpty($responseUpdate['data']); - $this->assertArrayHasKey('timestamp', $responseUpdate['data']); - $this->assertCount(3, $responseUpdate['data']['channels']); - $this->assertContains('executions', $responseUpdate['data']['channels']); - $this->assertContains('executions.' . $execution['body']['$id'], $responseUpdate['data']['channels']); - $this->assertContains('functions.' . $execution['body']['functionId'], $responseUpdate['data']['channels']); - $this->assertEquals('functions.executions.update', $responseUpdate['data']['event']); - $this->assertNotEmpty($responseUpdate['data']['payload']); - - $client->close(); - } - - public function testChannelTeams(): array - { - $user = $this->getUser(); - $session = $user['session'] ?? ''; - $projectId = $this->getProject()['$id']; - - $client = $this->getWebsocket(['teams'], [ - 'origin' => 'http://localhost', - 'cookie' => 'a_session_'.$projectId.'=' . $session - ]); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('connected', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertCount(1, $response['data']['channels']); - $this->assertContains('teams', $response['data']['channels']); - $this->assertNotEmpty($response['data']['user']); - $this->assertEquals($user['$id'], $response['data']['user']['$id']); - - /** - * Test Team Create - */ - $team = $this->client->call(Client::METHOD_POST, '/teams', array_merge([ - 'content-type' => 'application/json', - 'x-appwrite-project' => $projectId, - ], $this->getHeaders()), [ - 'teamId' => 'unique()', - 'name' => 'Arsenal' - ]); - - $teamId = $team['body']['$id'] ?? ''; - - $this->assertEquals(201, $team['headers']['status-code']); - $this->assertNotEmpty($team['body']['$id']); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('event', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertArrayHasKey('timestamp', $response['data']); - $this->assertCount(2, $response['data']['channels']); - $this->assertContains('teams', $response['data']['channels']); - $this->assertContains('teams.' . $teamId, $response['data']['channels']); - $this->assertEquals('teams.create', $response['data']['event']); - $this->assertNotEmpty($response['data']['payload']); - - /** - * Test Team Update - */ - $team = $this->client->call(Client::METHOD_PUT, '/teams/'.$teamId, array_merge([ - 'content-type' => 'application/json', - 'x-appwrite-project' => $projectId, - ], $this->getHeaders()), [ - 'name' => 'Manchester' - ]); - - $this->assertEquals($team['headers']['status-code'], 200); - $this->assertNotEmpty($team['body']['$id']); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('event', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertArrayHasKey('timestamp', $response['data']); - $this->assertCount(2, $response['data']['channels']); - $this->assertContains('teams', $response['data']['channels']); - $this->assertContains('teams.' . $teamId, $response['data']['channels']); - $this->assertEquals('teams.update', $response['data']['event']); - $this->assertNotEmpty($response['data']['payload']); - - $client->close(); - - return ['teamId' => $teamId]; - } - - /** - * @depends testChannelTeams - */ - public function testChannelMemberships(array $data) - { - $teamId = $data['teamId'] ?? ''; - - $user = $this->getUser(); - $session = $user['session'] ?? ''; - $projectId = $this->getProject()['$id']; - - $client = $this->getWebsocket(['memberships'], [ - 'origin' => 'http://localhost', - 'cookie' => 'a_session_'.$projectId.'='.$session - ]); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('connected', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertCount(1, $response['data']['channels']); - $this->assertContains('memberships', $response['data']['channels']); - $this->assertNotEmpty($response['data']['user']); - $this->assertEquals($user['$id'], $response['data']['user']['$id']); - - $response = $this->client->call(Client::METHOD_GET, '/teams/'.$teamId.'/memberships', array_merge([ - 'content-type' => 'application/json', - 'x-appwrite-project' => $this->getProject()['$id'], - ], $this->getHeaders())); - - $membershipId = $response['body']['memberships'][0]['$id']; - - /** - * Test Update Membership - */ - $roles = ['admin', 'editor', 'uncle']; - $this->client->call(Client::METHOD_PATCH, '/teams/'.$teamId.'/memberships/'.$membershipId, array_merge([ - 'origin' => 'http://localhost', - 'content-type' => 'application/json', - 'x-appwrite-project' => $this->getProject()['$id'], - ], $this->getHeaders()), [ - 'roles' => $roles - ]); - - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('event', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertArrayHasKey('timestamp', $response['data']); - $this->assertCount(2, $response['data']['channels']); - $this->assertContains('memberships', $response['data']['channels']); - $this->assertContains('memberships.' . $membershipId, $response['data']['channels']); - $this->assertEquals('teams.memberships.update', $response['data']['event']); - $this->assertNotEmpty($response['data']['payload']); - - $client->close(); - } } diff --git a/tests/e2e/Services/Realtime/RealtimeConsoleClientTest.php b/tests/e2e/Services/Realtime/RealtimeConsoleClientTest.php new file mode 100644 index 0000000000..00c39c5d05 --- /dev/null +++ b/tests/e2e/Services/Realtime/RealtimeConsoleClientTest.php @@ -0,0 +1,276 @@ +getUser(); + $session = $user['session'] ?? ''; + $projectId = 'console'; + + $client = $this->getWebsocket(['console'], [ + 'origin' => 'http://localhost', + 'cookie' => 'a_session_console='. $this->getRoot()['session'], + ], $projectId); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('connected', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertCount(1, $response['data']['channels']); + $this->assertContains('console', $response['data']['channels']); + $this->assertNotEmpty($response['data']['user']); + + /** + * Test Attributes + */ + $actors = $this->client->call(Client::METHOD_POST, '/database/collections', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'collectionId' => 'unique()', + 'name' => 'Actors', + 'read' => ['role:all'], + 'write' => ['role:all'], + 'permission' => 'collection' + ]); + + $data = ['actorsId' => $actors['body']['$id']]; + + $name = $this->client->call(Client::METHOD_POST, '/database/collections/' . $data['actorsId'] . '/attributes/string', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'attributeId' => 'name', + 'size' => 256, + 'required' => true, + ]); + + $this->assertEquals($name['headers']['status-code'], 201); + $this->assertEquals($name['body']['key'], 'name'); + $this->assertEquals($name['body']['type'], 'string'); + $this->assertEquals($name['body']['size'], 256); + $this->assertEquals($name['body']['required'], true); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertCount(1, $response['data']['channels']); + $this->assertContains('console', $response['data']['channels']); + $this->assertEquals('database.attributes.create', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + $this->assertEquals('processing', $response['data']['payload']['status']); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertCount(1, $response['data']['channels']); + $this->assertContains('console', $response['data']['channels']); + $this->assertEquals('database.attributes.update', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + $this->assertEquals('available', $response['data']['payload']['status']); + + $client->close(); + + return $data; + } + + /** + * @depends testAttributes + */ + public function testIndexes(array $data) + { + $user = $this->getUser(); + $session = $user['session'] ?? ''; + $projectId = 'console'; + + $client = $this->getWebsocket(['console'], [ + 'origin' => 'http://localhost', + 'cookie' => 'a_session_console='. $this->getRoot()['session'], + ], $projectId); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('connected', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertCount(1, $response['data']['channels']); + $this->assertContains('console', $response['data']['channels']); + $this->assertNotEmpty($response['data']['user']); + + /** + * Test Indexes + */ + $index = $this->client->call(Client::METHOD_POST, '/database/collections/' . $data['actorsId'] . '/indexes', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'indexId' => 'key_name', + 'type' => 'key', + 'attributes' => [ + 'name', + ], + ]); + + $this->assertEquals($index['headers']['status-code'], 201); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertCount(1, $response['data']['channels']); + $this->assertContains('console', $response['data']['channels']); + $this->assertEquals('database.indexes.create', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + $this->assertEquals('processing', $response['data']['payload']['status']); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertCount(1, $response['data']['channels']); + $this->assertContains('console', $response['data']['channels']); + $this->assertEquals('database.indexes.update', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + $this->assertEquals('available', $response['data']['payload']['status']); + + $client->close(); + + return $data; + } + + /** + * @depends testIndexes + */ + public function testDeleteIndex(array $data) + { + $user = $this->getUser(); + $session = $user['session'] ?? ''; + $projectId = 'console'; + + $client = $this->getWebsocket(['console'], [ + 'origin' => 'http://localhost', + 'cookie' => 'a_session_console='. $this->getRoot()['session'], + ], $projectId); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('connected', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertCount(1, $response['data']['channels']); + $this->assertContains('console', $response['data']['channels']); + $this->assertNotEmpty($response['data']['user']); + + /** + * Test Delete Index + */ + $attribute = $this->client->call(Client::METHOD_DELETE, '/database/collections/' . $data['actorsId'] . '/indexes/key_name', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals($attribute['headers']['status-code'], 204); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertCount(1, $response['data']['channels']); + $this->assertContains('console', $response['data']['channels']); + $this->assertEquals('database.indexes.delete', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + + $client->close(); + + return $data; + } + + /** + * @depends testDeleteIndex + */ + public function testDeleteAttribute(array $data) + { + $user = $this->getUser(); + $session = $user['session'] ?? ''; + $projectId = 'console'; + + $client = $this->getWebsocket(['console'], [ + 'origin' => 'http://localhost', + 'cookie' => 'a_session_console='. $this->getRoot()['session'], + ], $projectId); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('connected', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertCount(1, $response['data']['channels']); + $this->assertContains('console', $response['data']['channels']); + $this->assertNotEmpty($response['data']['user']); + + /** + * Test Delete Attribute + */ + $attribute = $this->client->call(Client::METHOD_DELETE, '/database/collections/' . $data['actorsId'] . '/attributes/name', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals($attribute['headers']['status-code'], 204); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertCount(1, $response['data']['channels']); + $this->assertContains('console', $response['data']['channels']); + $this->assertEquals('database.attributes.delete', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + + $client->close(); + } +} \ No newline at end of file diff --git a/tests/e2e/Services/Realtime/RealtimeCustomClientTest.php b/tests/e2e/Services/Realtime/RealtimeCustomClientTest.php index 8822c493b2..ed10aefa59 100644 --- a/tests/e2e/Services/Realtime/RealtimeCustomClientTest.php +++ b/tests/e2e/Services/Realtime/RealtimeCustomClientTest.php @@ -2,9 +2,12 @@ namespace Tests\E2E\Services\Realtime; +use CURLFile; +use Tests\E2E\Client; use Tests\E2E\Scopes\Scope; use Tests\E2E\Scopes\ProjectCustom; use Tests\E2E\Scopes\SideClient; +use WebSocket\ConnectionException; class RealtimeCustomClientTest extends Scope @@ -12,4 +15,1038 @@ class RealtimeCustomClientTest extends Scope use RealtimeBase; use ProjectCustom; use SideClient; + + public function testChannelParsing() + { + $user = $this->getUser(); + $userId = $user['$id'] ?? ''; + $session = $user['session'] ?? ''; + + $headers = [ + 'origin' => 'http://localhost', + 'cookie' => 'a_session_'.$this->getProject()['$id'].'=' . $session + ]; + + $client = $this->getWebsocket(['documents'], $headers); + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('connected', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertNotEmpty($response['data']['user']); + $this->assertCount(1, $response['data']['channels']); + $this->assertContains('documents', $response['data']['channels']); + $this->assertEquals($userId, $response['data']['user']['$id']); + + $client->close(); + + $client = $this->getWebsocket(['account'], $headers); + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('connected', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertNotEmpty($response['data']['user']); + $this->assertCount(2, $response['data']['channels']); + $this->assertContains('account', $response['data']['channels']); + $this->assertContains('account.' . $userId, $response['data']['channels']); + $this->assertEquals($userId, $response['data']['user']['$id']); + + $client->close(); + + $client = $this->getWebsocket(['account', 'documents', 'account.123'], $headers); + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('connected', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertNotEmpty($response['data']['user']); + $this->assertCount(3, $response['data']['channels']); + $this->assertContains('documents', $response['data']['channels']); + $this->assertContains('account', $response['data']['channels']); + $this->assertContains('account.' . $userId, $response['data']['channels']); + $this->assertEquals($userId, $response['data']['user']['$id']); + + $client->close(); + + $client = $this->getWebsocket([ + 'account', + 'files', + 'files.1', + 'collections', + 'collections.1', + 'collections.1.documents', + 'collections.2', + 'collections.2.documents', + 'documents', + 'documents.1', + 'documents.2', + ], $headers); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('connected', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertNotEmpty($response['data']['user']); + $this->assertCount(12, $response['data']['channels']); + $this->assertContains('account', $response['data']['channels']); + $this->assertContains('account.' . $userId, $response['data']['channels']); + $this->assertContains('files', $response['data']['channels']); + $this->assertContains('files.1', $response['data']['channels']); + $this->assertContains('collections', $response['data']['channels']); + $this->assertContains('collections.1', $response['data']['channels']); + $this->assertContains('collections.1.documents', $response['data']['channels']); + $this->assertContains('collections.2', $response['data']['channels']); + $this->assertContains('collections.2.documents', $response['data']['channels']); + $this->assertContains('documents', $response['data']['channels']); + $this->assertContains('documents.1', $response['data']['channels']); + $this->assertContains('documents.2', $response['data']['channels']); + $this->assertEquals($userId, $response['data']['user']['$id']); + + $client->close(); + } + + public function testManualAuthentication() + { + $user = $this->getUser(); + $userId = $user['$id'] ?? ''; + $session = $user['session'] ?? ''; + + /** + * Test for SUCCESS + */ + $client = $this->getWebsocket(['account'], [ + 'origin' => 'http://localhost' + ]); + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('connected', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertCount(1, $response['data']['channels']); + $this->assertContains('account', $response['data']['channels']); + + $client->send(\json_encode([ + 'type' => 'authentication', + 'data' => [ + 'session' => $session + ] + ])); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('response', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertEquals('authentication', $response['data']['to']); + $this->assertTrue($response['data']['success']); + $this->assertNotEmpty($response['data']['user']); + $this->assertEquals($userId, $response['data']['user']['$id']); + + /** + * Test for FAILURE + */ + $client->send(\json_encode([ + 'type' => 'authentication', + 'data' => [ + 'session' => 'invalid_session' + ] + ])); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('error', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertEquals(1003, $response['data']['code']); + $this->assertEquals('Session is not valid.', $response['data']['message']); + + $client->send(\json_encode([ + 'type' => 'authentication', + 'data' => [] + ])); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('error', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertEquals(1003, $response['data']['code']); + $this->assertEquals('Payload is not valid.', $response['data']['message']); + + $client->send(\json_encode([ + 'type' => 'unknown', + 'data' => [ + 'session' => 'invalid_session' + ] + ])); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('error', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertEquals(1003, $response['data']['code']); + $this->assertEquals('Message type is not valid.', $response['data']['message']); + + $client->send(\json_encode([ + 'test' => '123', + ])); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('error', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertEquals(1003, $response['data']['code']); + $this->assertEquals('Message format is not valid.', $response['data']['message']); + + + $client->close(); + } + + public function testConnectionPlatform() + { + /** + * Test for FAILURE + */ + $client = $this->getWebsocket(['documents'], ['origin' => 'http://appwrite.unknown']); + $payload = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $payload); + $this->assertArrayHasKey('data', $payload); + $this->assertEquals('error', $payload['type']); + $this->assertEquals(1008, $payload['data']['code']); + $this->assertEquals('Invalid Origin. Register your new client (appwrite.unknown) as a new Web platform on your project console dashboard', $payload['data']['message']); + $this->expectException(ConnectionException::class); // Check if server disconnnected client + $client->close(); + } + + public function testChannelAccount() + { + $user = $this->getUser(); + $userId = $user['$id'] ?? ''; + $session = $user['session'] ?? ''; + $projectId = $this->getProject()['$id']; + + $client = $this->getWebsocket(['account'], [ + 'origin' => 'http://localhost', + 'cookie' => 'a_session_'.$projectId.'=' . $session + ]); + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('connected', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertCount(2, $response['data']['channels']); + $this->assertContains('account', $response['data']['channels']); + $this->assertContains('account.' . $userId, $response['data']['channels']); + $this->assertNotEmpty($response['data']['user']); + $this->assertEquals($userId, $response['data']['user']['$id']); + + /** + * Test Account Name Event + */ + $name = "Torsten Dittmann"; + + $this->client->call(Client::METHOD_PATCH, '/account/name', array_merge([ + 'origin' => 'http://localhost', + 'content-type' => 'application/json', + 'x-appwrite-project' => $projectId, + 'cookie' => 'a_session_' . $projectId . '=' . $session, + ]), [ + 'name' => $name + ]); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertCount(2, $response['data']['channels']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertContains('account', $response['data']['channels']); + $this->assertContains('account.' . $userId, $response['data']['channels']); + $this->assertEquals('account.update.name', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + + $this->assertEquals($name, $response['data']['payload']['name']); + + + /** + * Test Account Password Event + */ + $this->client->call(Client::METHOD_PATCH, '/account/password', array_merge([ + 'origin' => 'http://localhost', + 'content-type' => 'application/json', + 'x-appwrite-project' => $projectId, + 'cookie' => 'a_session_'.$projectId.'=' . $session, + ]), [ + 'password' => 'new-password', + 'oldPassword' => 'password', + ]); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertCount(2, $response['data']['channels']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertContains('account', $response['data']['channels']); + $this->assertContains('account.' . $userId, $response['data']['channels']); + $this->assertEquals('account.update.password', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + + $this->assertEquals($name, $response['data']['payload']['name']); + + /** + * Test Account Email Update + */ + $this->client->call(Client::METHOD_PATCH, '/account/email', array_merge([ + 'origin' => 'http://localhost', + 'content-type' => 'application/json', + 'x-appwrite-project' => $projectId, + 'cookie' => 'a_session_'.$projectId.'=' . $session, + ]), [ + 'email' => 'torsten@appwrite.io', + 'password' => 'new-password', + ]); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertCount(2, $response['data']['channels']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertContains('account', $response['data']['channels']); + $this->assertContains('account.' . $userId, $response['data']['channels']); + $this->assertEquals('account.update.email', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + + $this->assertEquals('torsten@appwrite.io', $response['data']['payload']['email']); + + /** + * Test Account Verification Create + */ + $this->client->call(Client::METHOD_POST, '/account/verification', array_merge([ + 'origin' => 'http://localhost', + 'content-type' => 'application/json', + 'x-appwrite-project' => $projectId, + 'cookie' => 'a_session_'.$projectId.'=' . $session, + ]), [ + 'url' => 'http://localhost/verification', + ]); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertCount(2, $response['data']['channels']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertContains('account', $response['data']['channels']); + $this->assertContains('account.' . $userId, $response['data']['channels']); + $this->assertEquals('account.verification.create', $response['data']['event']); + + $lastEmail = $this->getLastEmail(); + $verification = substr($lastEmail['text'], strpos($lastEmail['text'], '&secret=', 0) + 8, 256); + + /** + * Test Account Verification Complete + */ + $response = $this->client->call(Client::METHOD_PUT, '/account/verification', array_merge([ + 'origin' => 'http://localhost', + 'content-type' => 'application/json', + 'x-appwrite-project' => $projectId, + 'cookie' => 'a_session_'.$projectId.'=' . $session, + ]), [ + 'userId' => $userId, + 'secret' => $verification, + ]); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertCount(2, $response['data']['channels']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertContains('account', $response['data']['channels']); + $this->assertContains('account.' . $userId, $response['data']['channels']); + $this->assertEquals('account.verification.update', $response['data']['event']); + + /** + * Test Acoount Prefs Update + */ + $this->client->call(Client::METHOD_PATCH, '/account/prefs', array_merge([ + 'origin' => 'http://localhost', + 'content-type' => 'application/json', + 'x-appwrite-project' => $projectId, + 'cookie' => 'a_session_'.$projectId.'=' . $session, + ]), [ + 'prefs' => [ + 'prefKey1' => 'prefValue1', + 'prefKey2' => 'prefValue2', + ] + ]); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertCount(2, $response['data']['channels']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertContains('account', $response['data']['channels']); + $this->assertContains('account.' . $userId, $response['data']['channels']); + $this->assertEquals('account.update.prefs', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + + /** + * Test Account Session Create + */ + $response = $this->client->call(Client::METHOD_POST, '/account/sessions', array_merge([ + 'origin' => 'http://localhost', + 'content-type' => 'application/json', + 'x-appwrite-project' => $projectId, + ]), [ + 'email' => 'torsten@appwrite.io', + 'password' => 'new-password', + ]); + + $sessionNew = $this->client->parseCookie((string)$response['headers']['set-cookie'])['a_session_'.$projectId]; + $sessionNewId = $response['body']['$id']; + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertCount(2, $response['data']['channels']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertContains('account', $response['data']['channels']); + $this->assertContains('account.' . $userId, $response['data']['channels']); + $this->assertEquals('account.sessions.create', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + + /** + * Test Account Session Delete + */ + $this->client->call(Client::METHOD_DELETE, '/account/sessions/'.$sessionNewId, array_merge([ + 'origin' => 'http://localhost', + 'content-type' => 'application/json', + 'x-appwrite-project' => $projectId, + 'cookie' => 'a_session_'.$projectId.'=' . $sessionNew, + ])); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertCount(2, $response['data']['channels']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertContains('account', $response['data']['channels']); + $this->assertContains('account.' . $userId, $response['data']['channels']); + $this->assertEquals('account.sessions.delete', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + + /** + * Test Account Create Recovery + */ + $this->client->call(Client::METHOD_POST, '/account/recovery', array_merge([ + 'origin' => 'http://localhost', + 'content-type' => 'application/json', + 'x-appwrite-project' => $projectId, + ]), [ + 'email' => 'torsten@appwrite.io', + 'url' => 'http://localhost/recovery', + ]); + + $response = json_decode($client->receive(), true); + + $lastEmail = $this->getLastEmail(); + $recovery = substr($lastEmail['text'], strpos($lastEmail['text'], '&secret=', 0) + 8, 256); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertCount(2, $response['data']['channels']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertContains('account', $response['data']['channels']); + $this->assertContains('account.' . $userId, $response['data']['channels']); + $this->assertEquals('account.recovery.create', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + + $response = $this->client->call(Client::METHOD_PUT, '/account/recovery', array_merge([ + 'origin' => 'http://localhost', + 'content-type' => 'application/json', + 'x-appwrite-project' => $projectId, + ]), [ + 'userId' => $userId, + 'secret' => $recovery, + 'password' => 'test-recovery', + 'passwordAgain' => 'test-recovery', + ]); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertCount(2, $response['data']['channels']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertContains('account', $response['data']['channels']); + $this->assertContains('account.' . $userId, $response['data']['channels']); + $this->assertEquals('account.recovery.update', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + + $client->close(); + } + + public function testChannelDatabase() + { + $user = $this->getUser(); + $session = $user['session'] ?? ''; + $projectId = $this->getProject()['$id']; + + $client = $this->getWebsocket(['documents', 'collections'], [ + 'origin' => 'http://localhost', + 'cookie' => 'a_session_'.$projectId.'=' . $session + ]); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('connected', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertCount(2, $response['data']['channels']); + $this->assertContains('documents', $response['data']['channels']); + $this->assertContains('collections', $response['data']['channels']); + $this->assertNotEmpty($response['data']['user']); + $this->assertEquals($user['$id'], $response['data']['user']['$id']); + + /** + * Test Collection Create + */ + $actors = $this->client->call(Client::METHOD_POST, '/database/collections', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'collectionId' => 'unique()', + 'name' => 'Actors', + 'read' => ['role:all'], + 'write' => ['role:all'], + 'permission' => 'collection' + ]); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertCount(2, $response['data']['channels']); + $this->assertContains('collections', $response['data']['channels']); + $this->assertContains('collections.' . $actors['body']['$id'], $response['data']['channels']); + $this->assertEquals('database.collections.create', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + + $data = ['actorsId' => $actors['body']['$id']]; + + $name = $this->client->call(Client::METHOD_POST, '/database/collections/' . $data['actorsId'] . '/attributes/string', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'attributeId' => 'name', + 'size' => 256, + 'required' => true, + ]); + + $this->assertEquals($name['headers']['status-code'], 201); + $this->assertEquals($name['body']['key'], 'name'); + $this->assertEquals($name['body']['type'], 'string'); + $this->assertEquals($name['body']['size'], 256); + $this->assertEquals($name['body']['required'], true); + + sleep(2); + + /** + * Test Document Create + */ + $document = $this->client->call(Client::METHOD_POST, '/database/collections/' . $data['actorsId'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'documentId' => 'unique()', + 'data' => [ + 'name' => 'Chris Evans' + ], + 'read' => ['role:all'], + 'write' => ['role:all'], + ]); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertCount(3, $response['data']['channels']); + $this->assertContains('documents', $response['data']['channels']); + $this->assertContains('documents.' . $document['body']['$id'], $response['data']['channels']); + $this->assertContains('collections.' . $actors['body']['$id'] . '.documents', $response['data']['channels']); + $this->assertEquals('database.documents.create', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + $this->assertEquals($response['data']['payload']['name'], 'Chris Evans'); + + $data['documentId'] = $document['body']['$id']; + + /** + * Test Document Update + */ + $document = $this->client->call(Client::METHOD_PATCH, '/database/collections/' . $data['actorsId'] . '/documents/' . $data['documentId'], array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'documentId' => 'unique()', + 'data' => [ + 'name' => 'Chris Evans 2' + ], + 'read' => ['role:all'], + 'write' => ['role:all'], + ]); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertCount(3, $response['data']['channels']); + $this->assertContains('documents', $response['data']['channels']); + $this->assertContains('documents.' . $data['documentId'], $response['data']['channels']); + $this->assertContains('collections.' . $data['actorsId'] . '.documents', $response['data']['channels']); + $this->assertEquals('database.documents.update', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + + $this->assertEquals($response['data']['payload']['name'], 'Chris Evans 2'); + + + /** + * Test Document Delete + */ + $document = $this->client->call(Client::METHOD_POST, '/database/collections/' . $data['actorsId'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'documentId' => 'unique()', + 'data' => [ + 'name' => 'Bradley Cooper' + ], + 'read' => ['role:all'], + 'write' => ['role:all'], + ]); + + $client->receive(); + + $this->client->call(Client::METHOD_DELETE, '/database/collections/' . $data['actorsId'] . '/documents/' . $document['body']['$id'], array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertCount(3, $response['data']['channels']); + $this->assertContains('documents', $response['data']['channels']); + $this->assertContains('documents.' . $document['body']['$id'], $response['data']['channels']); + $this->assertContains('collections.' . $data['actorsId'] . '.documents', $response['data']['channels']); + $this->assertEquals('database.documents.delete', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + $this->assertEquals($response['data']['payload']['name'], 'Bradley Cooper'); + + $client->close(); + } + + public function testChannelFiles() + { + $user = $this->getUser(); + $session = $user['session'] ?? ''; + $projectId = $this->getProject()['$id']; + + $client = $this->getWebsocket(['files'], [ + 'origin' => 'http://localhost', + 'cookie' => 'a_session_'.$projectId.'=' . $session + ]); + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('connected', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertCount(1, $response['data']['channels']); + $this->assertContains('files', $response['data']['channels']); + $this->assertNotEmpty($response['data']['user']); + $this->assertEquals($user['$id'], $response['data']['user']['$id']); + + /** + * Test File Create + */ + $file = $this->client->call(Client::METHOD_POST, '/storage/files', array_merge([ + 'content-type' => 'multipart/form-data', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'fileId' => 'unique()', + 'file' => new CURLFile(realpath(__DIR__ . '/../../../resources/logo.png'), 'image/png', 'logo.png'), + 'read' => ['role:all'], + 'write' => ['role:all'], + 'folderId' => 'xyz', + ]); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertCount(2, $response['data']['channels']); + $this->assertContains('files', $response['data']['channels']); + $this->assertContains('files.' . $file['body']['$id'], $response['data']['channels']); + $this->assertEquals('storage.files.create', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + + $data = ['fileId' => $file['body']['$id']]; + + /** + * Test File Update + */ + $this->client->call(Client::METHOD_PUT, '/storage/files/' . $data['fileId'], array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'read' => ['role:all'], + 'write' => ['role:all'], + ]); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertCount(2, $response['data']['channels']); + $this->assertContains('files', $response['data']['channels']); + $this->assertContains('files.' . $file['body']['$id'], $response['data']['channels']); + $this->assertEquals('storage.files.update', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + + /** + * Test File Delete + */ + $this->client->call(Client::METHOD_DELETE, '/storage/files/' . $data['fileId'], array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertCount(2, $response['data']['channels']); + $this->assertContains('files', $response['data']['channels']); + $this->assertContains('files.' . $file['body']['$id'], $response['data']['channels']); + $this->assertEquals('storage.files.delete', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + + $client->close(); + } + + public function testChannelExecutions() + { + $user = $this->getUser(); + $session = $user['session'] ?? ''; + $projectId = $this->getProject()['$id']; + + $client = $this->getWebsocket(['executions'], [ + 'origin' => 'http://localhost', + 'cookie' => 'a_session_'.$projectId.'=' . $session + ]); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('connected', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertCount(1, $response['data']['channels']); + $this->assertContains('executions', $response['data']['channels']); + $this->assertNotEmpty($response['data']['user']); + $this->assertEquals($user['$id'], $response['data']['user']['$id']); + + /** + * Test Functions Create + */ + $function = $this->client->call(Client::METHOD_POST, '/functions', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ], [ + 'functionId' => 'unique()', + 'name' => 'Test', + 'execute' => ['role:member'], + 'runtime' => 'php-8.0', + 'timeout' => 10, + ]); + + $functionId = $function['body']['$id'] ?? ''; + + $this->assertEquals($function['headers']['status-code'], 201); + $this->assertNotEmpty($function['body']['$id']); + + $tag = $this->client->call(Client::METHOD_POST, '/functions/'.$functionId.'/tags', array_merge([ + 'content-type' => 'multipart/form-data', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'command' => 'php index.php', + 'code' => new CURLFile(realpath(__DIR__ . '/../../../resources/functions/timeout.tar.gz'), 'application/x-gzip', 'php-fx.tar.gz'), + ]); + + $tagId = $tag['body']['$id'] ?? ''; + + $this->assertEquals($tag['headers']['status-code'], 201); + $this->assertNotEmpty($tag['body']['$id']); + + $response = $this->client->call(Client::METHOD_PATCH, '/functions/'.$functionId.'/tag', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'tag' => $tagId, + ]); + + $this->assertEquals($response['headers']['status-code'], 200); + $this->assertNotEmpty($response['body']['$id']); + + $execution = $this->client->call(Client::METHOD_POST, '/functions/'.$functionId.'/executions', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'] + ], $this->getHeaders()), []); + + $this->assertEquals($execution['headers']['status-code'], 201); + $this->assertNotEmpty($execution['body']['$id']); + + $response = json_decode($client->receive(), true); + $responseUpdate = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertCount(3, $response['data']['channels']); + $this->assertContains('executions', $response['data']['channels']); + $this->assertContains('executions.' . $execution['body']['$id'], $response['data']['channels']); + $this->assertContains('functions.' . $execution['body']['functionId'], $response['data']['channels']); + $this->assertEquals('functions.executions.create', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + + $this->assertArrayHasKey('type', $responseUpdate); + $this->assertArrayHasKey('data', $responseUpdate); + $this->assertEquals('event', $responseUpdate['type']); + $this->assertNotEmpty($responseUpdate['data']); + $this->assertArrayHasKey('timestamp', $responseUpdate['data']); + $this->assertCount(3, $responseUpdate['data']['channels']); + $this->assertContains('executions', $responseUpdate['data']['channels']); + $this->assertContains('executions.' . $execution['body']['$id'], $responseUpdate['data']['channels']); + $this->assertContains('functions.' . $execution['body']['functionId'], $responseUpdate['data']['channels']); + $this->assertEquals('functions.executions.update', $responseUpdate['data']['event']); + $this->assertNotEmpty($responseUpdate['data']['payload']); + + $client->close(); + } + + public function testChannelTeams(): array + { + $user = $this->getUser(); + $session = $user['session'] ?? ''; + $projectId = $this->getProject()['$id']; + + $client = $this->getWebsocket(['teams'], [ + 'origin' => 'http://localhost', + 'cookie' => 'a_session_'.$projectId.'=' . $session + ]); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('connected', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertCount(1, $response['data']['channels']); + $this->assertContains('teams', $response['data']['channels']); + $this->assertNotEmpty($response['data']['user']); + $this->assertEquals($user['$id'], $response['data']['user']['$id']); + + /** + * Test Team Create + */ + $team = $this->client->call(Client::METHOD_POST, '/teams', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $projectId, + ], $this->getHeaders()), [ + 'teamId' => 'unique()', + 'name' => 'Arsenal' + ]); + + $teamId = $team['body']['$id'] ?? ''; + + $this->assertEquals(201, $team['headers']['status-code']); + $this->assertNotEmpty($team['body']['$id']); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertCount(2, $response['data']['channels']); + $this->assertContains('teams', $response['data']['channels']); + $this->assertContains('teams.' . $teamId, $response['data']['channels']); + $this->assertEquals('teams.create', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + + /** + * Test Team Update + */ + $team = $this->client->call(Client::METHOD_PUT, '/teams/'.$teamId, array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $projectId, + ], $this->getHeaders()), [ + 'name' => 'Manchester' + ]); + + $this->assertEquals($team['headers']['status-code'], 200); + $this->assertNotEmpty($team['body']['$id']); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertCount(2, $response['data']['channels']); + $this->assertContains('teams', $response['data']['channels']); + $this->assertContains('teams.' . $teamId, $response['data']['channels']); + $this->assertEquals('teams.update', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + + $client->close(); + + return ['teamId' => $teamId]; + } + + /** + * @depends testChannelTeams + */ + public function testChannelMemberships(array $data) + { + $teamId = $data['teamId'] ?? ''; + + $user = $this->getUser(); + $session = $user['session'] ?? ''; + $projectId = $this->getProject()['$id']; + + $client = $this->getWebsocket(['memberships'], [ + 'origin' => 'http://localhost', + 'cookie' => 'a_session_'.$projectId.'='.$session + ]); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('connected', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertCount(1, $response['data']['channels']); + $this->assertContains('memberships', $response['data']['channels']); + $this->assertNotEmpty($response['data']['user']); + $this->assertEquals($user['$id'], $response['data']['user']['$id']); + + $response = $this->client->call(Client::METHOD_GET, '/teams/'.$teamId.'/memberships', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $membershipId = $response['body']['memberships'][0]['$id']; + + /** + * Test Update Membership + */ + $roles = ['admin', 'editor', 'uncle']; + $this->client->call(Client::METHOD_PATCH, '/teams/'.$teamId.'/memberships/'.$membershipId, array_merge([ + 'origin' => 'http://localhost', + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'roles' => $roles + ]); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertCount(2, $response['data']['channels']); + $this->assertContains('memberships', $response['data']['channels']); + $this->assertContains('memberships.' . $membershipId, $response['data']['channels']); + $this->assertEquals('teams.memberships.update', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + + $client->close(); + } } \ No newline at end of file From 277d397a41ee33b3d3e2d677313b39bb689f8a6e Mon Sep 17 00:00:00 2001 From: Matej Baco Date: Mon, 6 Dec 2021 16:03:11 +0100 Subject: [PATCH 021/107] Attempt to fix tests --- tests/e2e/Services/Locale/LocaleBase.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/e2e/Services/Locale/LocaleBase.php b/tests/e2e/Services/Locale/LocaleBase.php index 5624571c41..98df97a706 100644 --- a/tests/e2e/Services/Locale/LocaleBase.php +++ b/tests/e2e/Services/Locale/LocaleBase.php @@ -205,15 +205,15 @@ trait LocaleBase $this->assertEquals($response['headers']['status-code'], 200); $this->assertIsArray($response['body']); - $this->assertEquals(185, $response['body']['sum']); + $this->assertEquals(184, $response['body']['sum']); $this->assertEquals($response['body']['languages'][0]['code'], 'aa'); $this->assertEquals($response['body']['languages'][0]['name'], 'Afar'); $this->assertEquals($response['body']['languages'][0]['nativeName'], 'Afar'); - $this->assertEquals($response['body']['languages'][184]['code'], 'zu'); - $this->assertEquals($response['body']['languages'][184]['name'], 'Zulu'); - $this->assertEquals($response['body']['languages'][184]['nativeName'], 'isiZulu'); + $this->assertEquals($response['body']['languages'][183]['code'], 'zu'); + $this->assertEquals($response['body']['languages'][183]['name'], 'Zulu'); + $this->assertEquals($response['body']['languages'][183]['nativeName'], 'isiZulu'); /** * Test for FAILURE From 27b7b73b929d174d41601c78f88b40494e8969ab Mon Sep 17 00:00:00 2001 From: "Eldad A. Fux" Date: Tue, 7 Dec 2021 18:27:56 +0200 Subject: [PATCH 022/107] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e71cbf57e9..5d2652cf19 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@

[![Hacktoberfest](https://img.shields.io/static/v1?label=hacktoberfest&message=friendly&color=90a88b&style=flat-square)](https://hacktoberfest.appwrite.io) -[![Discord](https://img.shields.io/discord/564160730845151244?label=discord&style=flat-square)](https://appwrite.io/discord) +[![Discord](https://img.shields.io/discord/564160730845151244?label=discord&style=flat-square)](https://appwrite.io/discord?r=Github) [![Docker Pulls](https://img.shields.io/docker/pulls/appwrite/appwrite?color=f02e65&style=flat-square)](https://hub.docker.com/r/appwrite/appwrite) [![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) From 34f6aea63bd1508ccac697a48e7b38fccb4e2b47 Mon Sep 17 00:00:00 2001 From: Radmacher <66096031+rdmchr@users.noreply.github.com> Date: Wed, 8 Dec 2021 23:16:45 +0100 Subject: [PATCH 023/107] Update app/controllers/api/teams.php Co-authored-by: kodumbeats --- app/controllers/api/teams.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index f822a81fed..bcf081eedc 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -113,7 +113,7 @@ App::get('/v1/teams') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_TEAM_LIST) - ->param('search', '', new Text(256), 'Enter any text to search. Max length: 256 chars.', true) + ->param('search', '', new Text(256), 'Search term to filter results. Max length: 256 chars.', true) ->param('limit', 25, new Range(0, 100), 'Limit how many results will be returned. Returns up to 25 results by default. Maximum of 100 results allowed per request.', true) ->param('offset', 0, new Range(0, 2000), 'Use this value to manage pagination. The default value is 0.', true) ->param('orderType', 'ASC', new WhiteList(['ASC', 'DESC'], true), 'Order result by ASC or DESC order.', true) From 9fb460396c29c5d979f2896b559ad8917535e2e3 Mon Sep 17 00:00:00 2001 From: Radmacher <66096031+rdmchr@users.noreply.github.com> Date: Wed, 8 Dec 2021 23:22:52 +0100 Subject: [PATCH 024/107] Fixed inconsistency --- docs/references/teams/delete-team.md | 2 +- docs/references/teams/get-team-members.md | 2 +- docs/references/teams/get-team.md | 2 +- docs/references/teams/list-teams.md | 2 +- docs/references/teams/update-team.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/references/teams/delete-team.md b/docs/references/teams/delete-team.md index 6b73736e9a..19dfe40969 100644 --- a/docs/references/teams/delete-team.md +++ b/docs/references/teams/delete-team.md @@ -1 +1 @@ -Delete a team using its unique ID. Only members with the owner role can delete the team. \ No newline at end of file +Use this endpoint to delete a team using its unique ID. Only team members with the owner role can delete the team. \ No newline at end of file diff --git a/docs/references/teams/get-team-members.md b/docs/references/teams/get-team-members.md index d18b2b358e..e4de1c9788 100644 --- a/docs/references/teams/get-team-members.md +++ b/docs/references/teams/get-team-members.md @@ -1 +1 @@ -Lists a team's members using the team's unique ID. All team members have read access to this endpoint. \ No newline at end of file +Use this endpoint to list a team's members using the team's unique ID. All team members have read access to this endpoint. \ No newline at end of file diff --git a/docs/references/teams/get-team.md b/docs/references/teams/get-team.md index 800612ab15..5449bf2153 100644 --- a/docs/references/teams/get-team.md +++ b/docs/references/teams/get-team.md @@ -1 +1 @@ -Get a team by its unique ID. All team members have read access for this resource. \ No newline at end of file +Use this endpoint to get a team by its unique ID. All team members have read access for this resource. \ No newline at end of file diff --git a/docs/references/teams/list-teams.md b/docs/references/teams/list-teams.md index feab2d45a4..68c3621cbd 100644 --- a/docs/references/teams/list-teams.md +++ b/docs/references/teams/list-teams.md @@ -1,3 +1,3 @@ -Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results. +Use this endpoint to get a list of all the teams in which the current user is a member. You can use the parameters to filter your results. On admin mode, this endpoint returns a list of all the teams in the current project. [Learn more about different API modes](/docs/admin). \ No newline at end of file diff --git a/docs/references/teams/update-team.md b/docs/references/teams/update-team.md index 0acb528e1c..aa88d0e242 100644 --- a/docs/references/teams/update-team.md +++ b/docs/references/teams/update-team.md @@ -1 +1 @@ -Update a team using its unique ID. Only members with the owner role can update the team. \ No newline at end of file +Use this endpoint to update a team using its unique ID. Only members with the owner role can update the team. \ No newline at end of file From 43ef3c060b5c3804c018fdca858a2e4dcd10c0e3 Mon Sep 17 00:00:00 2001 From: Christy Jacob Date: Thu, 9 Dec 2021 17:02:12 +0400 Subject: [PATCH 025/107] feat: add new endpoint --- app/controllers/api/functions.php | 29 ++++ composer.lock | 155 +++++++++++++----- docs/references/functions/list-runtimes.md | 1 + src/Appwrite/Utopia/Response.php | 5 + .../Utopia/Response/Model/Runtime.php | 78 +++++++++ .../Functions/FunctionsCustomServerTest.php | 23 +++ 6 files changed, 250 insertions(+), 41 deletions(-) create mode 100644 docs/references/functions/list-runtimes.md create mode 100644 src/Appwrite/Utopia/Response/Model/Runtime.php diff --git a/app/controllers/api/functions.php b/app/controllers/api/functions.php index 480b1223d9..7d7d3537be 100644 --- a/app/controllers/api/functions.php +++ b/app/controllers/api/functions.php @@ -119,6 +119,35 @@ App::get('/v1/functions') ]), Response::MODEL_FUNCTION_LIST); }); +App::get('/v1/functions/runtimes') + ->groups(['api', 'functions']) + ->desc('List the currently active function runtimes.') + ->label('scope', 'functions.read') + ->label('sdk.auth', [APP_AUTH_TYPE_KEY]) + ->label('sdk.namespace', 'functions') + ->label('sdk.method', 'listRuntimes') + ->label('sdk.description', '/docs/references/functions/list-runtimes.md') + ->label('sdk.response.code', Response::STATUS_CODE_OK) + ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) + ->label('sdk.response.model', Response::MODEL_RUNTIME_LIST) + ->inject('response') + ->action(function ($response) { + /** @var Appwrite\Utopia\Response $response */ + /** @var Utopia\Database\Database $dbForInternal */ + + $runtimes = Config::getParam('runtimes'); + + $runtimes = array_map(function ($key) use ($runtimes) { + $runtimes[$key]['$id'] = $key; + return $runtimes[$key]; + }, array_keys($runtimes)); + + $response->dynamic(new Document([ + 'sum' => count($runtimes), + 'runtimes' => $runtimes + ]), Response::MODEL_RUNTIME_LIST); + }); + App::get('/v1/functions/:functionId') ->groups(['api', 'functions']) ->desc('Get Function') diff --git a/composer.lock b/composer.lock index 1b8f47e179..b541ac91de 100644 --- a/composer.lock +++ b/composer.lock @@ -489,16 +489,16 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.4.0", + "version": "7.4.1", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "868b3571a039f0ebc11ac8f344f4080babe2cb94" + "reference": "ee0a041b1760e6a53d2a39c8c34115adc2af2c79" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/868b3571a039f0ebc11ac8f344f4080babe2cb94", - "reference": "868b3571a039f0ebc11ac8f344f4080babe2cb94", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ee0a041b1760e6a53d2a39c8c34115adc2af2c79", + "reference": "ee0a041b1760e6a53d2a39c8c34115adc2af2c79", "shasum": "" }, "require": { @@ -507,7 +507,7 @@ "guzzlehttp/psr7": "^1.8.3 || ^2.1", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", - "symfony/deprecation-contracts": "^2.2" + "symfony/deprecation-contracts": "^2.2 || ^3.0" }, "provide": { "psr/http-client-implementation": "1.0" @@ -593,7 +593,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.4.0" + "source": "https://github.com/guzzle/guzzle/tree/7.4.1" }, "funding": [ { @@ -609,7 +609,7 @@ "type": "tidelift" } ], - "time": "2021-10-18T09:52:00+00:00" + "time": "2021-12-06T18:43:05+00:00" }, { "name": "guzzlehttp/promises", @@ -1591,25 +1591,25 @@ }, { "name": "symfony/deprecation-contracts", - "version": "v2.5.0", + "version": "v3.0.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8" + "reference": "c726b64c1ccfe2896cb7df2e1331c357ad1c8ced" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/6f981ee24cf69ee7ce9736146d1c57c2780598a8", - "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/c726b64c1ccfe2896cb7df2e1331c357ad1c8ced", + "reference": "c726b64c1ccfe2896cb7df2e1331c357ad1c8ced", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.0.2" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.0-dev" }, "thanks": { "name": "symfony/contracts", @@ -1638,7 +1638,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.0" }, "funding": [ { @@ -1654,7 +1654,7 @@ "type": "tidelift" } ], - "time": "2021-07-12T14:48:14+00:00" + "time": "2021-11-01T23:48:49+00:00" }, { "name": "symfony/polyfill-ctype", @@ -3061,6 +3061,77 @@ }, "time": "2021-11-12T11:09:38+00:00" }, + { + "name": "composer/pcre", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/composer/pcre.git", + "reference": "3d322d715c43a1ac36c7fe215fa59336265500f2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/pcre/zipball/3d322d715c43a1ac36c7fe215fa59336265500f2", + "reference": "3d322d715c43a1ac36c7fe215fa59336265500f2", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/phpunit-bridge": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Pcre\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "PCRE wrapping library that offers type-safe preg_* replacements.", + "keywords": [ + "PCRE", + "preg", + "regex", + "regular expression" + ], + "support": { + "issues": "https://github.com/composer/pcre/issues", + "source": "https://github.com/composer/pcre/tree/1.0.0" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2021-12-06T15:17:27+00:00" + }, { "name": "composer/semver", "version": "3.2.6", @@ -3144,25 +3215,27 @@ }, { "name": "composer/xdebug-handler", - "version": "2.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "84674dd3a7575ba617f5a76d7e9e29a7d3891339" + "reference": "6555461e76962fd0379c444c46fd558a0fcfb65e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/84674dd3a7575ba617f5a76d7e9e29a7d3891339", - "reference": "84674dd3a7575ba617f5a76d7e9e29a7d3891339", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6555461e76962fd0379c444c46fd558a0fcfb65e", + "reference": "6555461e76962fd0379c444c46fd558a0fcfb65e", "shasum": "" }, "require": { + "composer/pcre": "^1", "php": "^5.3.2 || ^7.0 || ^8.0", "psr/log": "^1 || ^2 || ^3" }, "require-dev": { - "phpstan/phpstan": "^0.12.55", - "symfony/phpunit-bridge": "^4.2 || ^5" + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/phpunit-bridge": "^4.2 || ^5.0 || ^6.0" }, "type": "library", "autoload": { @@ -3188,7 +3261,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/2.0.2" + "source": "https://github.com/composer/xdebug-handler/tree/2.0.3" }, "funding": [ { @@ -3204,7 +3277,7 @@ "type": "tidelift" } ], - "time": "2021-07-31T17:03:58+00:00" + "time": "2021-12-08T13:07:32+00:00" }, { "name": "dnoegel/php-xdg-base-dir", @@ -4035,16 +4108,16 @@ }, { "name": "phpspec/prophecy", - "version": "1.14.0", + "version": "v1.15.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e" + "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e", - "reference": "d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13", + "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13", "shasum": "" }, "require": { @@ -4096,22 +4169,22 @@ ], "support": { "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/1.14.0" + "source": "https://github.com/phpspec/prophecy/tree/v1.15.0" }, - "time": "2021-09-10T09:02:12+00:00" + "time": "2021-12-08T12:19:24+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "9.2.9", + "version": "9.2.10", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "f301eb1453c9e7a1bc912ee8b0ea9db22c60223b" + "reference": "d5850aaf931743067f4bfc1ae4cbd06468400687" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f301eb1453c9e7a1bc912ee8b0ea9db22c60223b", - "reference": "f301eb1453c9e7a1bc912ee8b0ea9db22c60223b", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/d5850aaf931743067f4bfc1ae4cbd06468400687", + "reference": "d5850aaf931743067f4bfc1ae4cbd06468400687", "shasum": "" }, "require": { @@ -4167,7 +4240,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.9" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.10" }, "funding": [ { @@ -4175,20 +4248,20 @@ "type": "github" } ], - "time": "2021-11-19T15:21:02+00:00" + "time": "2021-12-05T09:12:13+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "3.0.5", + "version": "3.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8" + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8", - "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", "shasum": "" }, "require": { @@ -4227,7 +4300,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.5" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" }, "funding": [ { @@ -4235,7 +4308,7 @@ "type": "github" } ], - "time": "2020-09-28T05:57:25+00:00" + "time": "2021-12-02T12:48:52+00:00" }, { "name": "phpunit/php-invoker", diff --git a/docs/references/functions/list-runtimes.md b/docs/references/functions/list-runtimes.md new file mode 100644 index 0000000000..3ffb657911 --- /dev/null +++ b/docs/references/functions/list-runtimes.md @@ -0,0 +1 @@ +Get a list of all runtimes that are currently active in your project. \ No newline at end of file diff --git a/src/Appwrite/Utopia/Response.php b/src/Appwrite/Utopia/Response.php index badddf21a6..025e7d8e06 100644 --- a/src/Appwrite/Utopia/Response.php +++ b/src/Appwrite/Utopia/Response.php @@ -54,6 +54,7 @@ use Appwrite\Utopia\Response\Model\Token; use Appwrite\Utopia\Response\Model\Webhook; use Appwrite\Utopia\Response\Model\Preferences; use Appwrite\Utopia\Response\Model\Mock; // Keep last +use Appwrite\Utopia\Response\Model\Runtime; use Appwrite\Utopia\Response\Model\UsageBuckets; use Appwrite\Utopia\Response\Model\UsageCollection; use Appwrite\Utopia\Response\Model\UsageDatabase; @@ -141,6 +142,8 @@ class Response extends SwooleResponse // Functions const MODEL_FUNCTION = 'function'; const MODEL_FUNCTION_LIST = 'functionList'; + const MODEL_RUNTIME = 'runtime'; + const MODEL_RUNTIME_LIST = 'runtimeList'; const MODEL_TAG = 'tag'; const MODEL_TAG_LIST = 'tagList'; const MODEL_EXECUTION = 'execution'; @@ -201,6 +204,7 @@ class Response extends SwooleResponse ->setModel(new BaseList('Teams List', self::MODEL_TEAM_LIST, 'teams', self::MODEL_TEAM)) ->setModel(new BaseList('Memberships List', self::MODEL_MEMBERSHIP_LIST, 'memberships', self::MODEL_MEMBERSHIP)) ->setModel(new BaseList('Functions List', self::MODEL_FUNCTION_LIST, 'functions', self::MODEL_FUNCTION)) + ->setModel(new BaseList('Runtimes List', self::MODEL_RUNTIME_LIST, 'runtimes', self::MODEL_RUNTIME)) ->setModel(new BaseList('Tags List', self::MODEL_TAG_LIST, 'tags', self::MODEL_TAG)) ->setModel(new BaseList('Executions List', self::MODEL_EXECUTION_LIST, 'executions', self::MODEL_EXECUTION)) ->setModel(new BaseList('Projects List', self::MODEL_PROJECT_LIST, 'projects', self::MODEL_PROJECT, true, false)) @@ -239,6 +243,7 @@ class Response extends SwooleResponse ->setModel(new Team()) ->setModel(new Membership()) ->setModel(new Func()) + ->setModel(new Runtime()) ->setModel(new FuncPermissions()) ->setModel(new Tag()) ->setModel(new Execution()) diff --git a/src/Appwrite/Utopia/Response/Model/Runtime.php b/src/Appwrite/Utopia/Response/Model/Runtime.php new file mode 100644 index 0000000000..2aae2f95ef --- /dev/null +++ b/src/Appwrite/Utopia/Response/Model/Runtime.php @@ -0,0 +1,78 @@ +addRule('$id', [ + 'type' => self::TYPE_STRING, + 'description' => 'Runtime ID.', + 'default' => '', + 'example' => 'python-3.8', + ]) + ->addRule('name', [ + 'type' => self::TYPE_STRING, + 'description' => 'Runtime Name.', + 'default' => '', + 'example' => 'Python' + ]) + ->addRule('version', [ + 'type' => self::TYPE_STRING, + 'description' => 'Runtime version.', + 'default' => '', + 'example' => '3.8', + ]) + ->addRule('base', [ + 'type' => self::TYPE_STRING, + 'description' => 'Base Docker image used to build the runtime.', + 'default' => '', + 'example' => 'python:3.8-alpine', + ]) + ->addRule('image', [ + 'type' => self::TYPE_STRING, + 'description' => 'Image name of Docker Hub.', + 'default' => '', + 'example' => 'appwrite\/runtime-for-python:3.8', + ]) + ->addRule('logo', [ + 'type' => self::TYPE_STRING, + 'description' => 'Name of the logo image.', + 'default' => '', + 'example' => 'python.png', + ]) + ->addRule('supports', [ + 'type' => self::TYPE_STRING, + 'description' => 'List of supported architectures.', + 'default' => '', + 'example' => 'amd64', + 'array' => true, + ]) + ; + } + + /** + * Get Name + * + * @return string + */ + public function getName():string + { + return 'Runtime'; + } + + /** + * Get Type + * + * @return string + */ + public function getType():string + { + return Response::MODEL_RUNTIME; + } +} diff --git a/tests/e2e/Services/Functions/FunctionsCustomServerTest.php b/tests/e2e/Services/Functions/FunctionsCustomServerTest.php index 0291de1725..e8541a2c54 100644 --- a/tests/e2e/Services/Functions/FunctionsCustomServerTest.php +++ b/tests/e2e/Services/Functions/FunctionsCustomServerTest.php @@ -795,4 +795,27 @@ class FunctionsCustomServerTest extends Scope $this->assertEquals($executions['body']['executions'][0]['trigger'], 'http'); $this->assertStringContainsString('foobar', $executions['body']['executions'][0]['stdout']); } + + public function testGetRuntimes() + { + + $runtimes = $this->client->call(Client::METHOD_GET, '/functions/runtimes', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals(200, $runtimes['headers']['status-code']); + $this->assertEquals(12, $runtimes['body']['sum']); + + $runtime = $runtimes['body']['runtimes'][0]; + + $this->assertArrayHasKey('$id', $runtime); + $this->assertArrayHasKey('name', $runtime); + $this->assertArrayHasKey('version', $runtime); + $this->assertArrayHasKey('logo', $runtime); + $this->assertArrayHasKey('image', $runtime); + $this->assertArrayHasKey('base', $runtime); + $this->assertArrayHasKey('supports', $runtime); + + } } From 653dfb292b1eec606e8a8091248f0020d04ffe36 Mon Sep 17 00:00:00 2001 From: Christy Jacob Date: Thu, 9 Dec 2021 19:53:37 +0400 Subject: [PATCH 026/107] feat: address review comments --- app/controllers/api/functions.php | 1 - tests/e2e/Services/Functions/FunctionsCustomServerTest.php | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/app/controllers/api/functions.php b/app/controllers/api/functions.php index 7d7d3537be..76c9ef47ba 100644 --- a/app/controllers/api/functions.php +++ b/app/controllers/api/functions.php @@ -133,7 +133,6 @@ App::get('/v1/functions/runtimes') ->inject('response') ->action(function ($response) { /** @var Appwrite\Utopia\Response $response */ - /** @var Utopia\Database\Database $dbForInternal */ $runtimes = Config::getParam('runtimes'); diff --git a/tests/e2e/Services/Functions/FunctionsCustomServerTest.php b/tests/e2e/Services/Functions/FunctionsCustomServerTest.php index e8541a2c54..c2452c08bd 100644 --- a/tests/e2e/Services/Functions/FunctionsCustomServerTest.php +++ b/tests/e2e/Services/Functions/FunctionsCustomServerTest.php @@ -805,7 +805,7 @@ class FunctionsCustomServerTest extends Scope ], $this->getHeaders())); $this->assertEquals(200, $runtimes['headers']['status-code']); - $this->assertEquals(12, $runtimes['body']['sum']); + $this->assertGreaterThan(0, $runtimes['body']['sum']); $runtime = $runtimes['body']['runtimes'][0]; From 0d60e826667f53a0033449df6b78b28b7a150ad9 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Fri, 10 Dec 2021 11:56:11 +0100 Subject: [PATCH 027/107] fix(database): permissions using an admin user --- app/controllers/api/database.php | 38 ++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/app/controllers/api/database.php b/app/controllers/api/database.php index d60d055912..8c4f2d20be 100644 --- a/app/controllers/api/database.php +++ b/app/controllers/api/database.php @@ -1640,16 +1640,19 @@ App::post('/v1/database/collections/:collectionId/documents') $data['$read'] = (is_null($read) && !$user->isEmpty()) ? ['user:'.$user->getId()] : $read ?? []; // By default set read permissions for user $data['$write'] = (is_null($write) && !$user->isEmpty()) ? ['user:'.$user->getId()] : $write ?? []; // By default set write permissions for user - // Users can only add their roles to documents, API keys can add any + // Users can only add their roles to documents, API keys and Admin users can add any $roles = \array_fill_keys(Authorization::getRoles(), true); // Auth::isAppUser expects roles to be keys, not values of assoc array - foreach ($data['$read'] as $read) { - if (!Auth::isAppUser($roles) && !Authorization::isRole($read)) { - throw new Exception('Read permissions must be one of: ('.\implode(', ', $roles).')', 400); + + if (!Auth::isAppUser($roles) && !Auth::isPrivilegedUser($roles)) { + foreach ($data['$read'] as $read) { + if (!Authorization::isRole($read)) { + throw new Exception('Read permissions must be one of: ('.\implode(', ', array_keys($roles)).')', 400); + } } - } - foreach ($data['$write'] as $write) { - if (!Auth::isAppUser($roles) && !Authorization::isRole($write)) { - throw new Exception('Write permissions must be one of: ('.\implode(', ', $roles).')', 400); + foreach ($data['$write'] as $write) { + if (!Authorization::isRole($write)) { + throw new Exception('Write permissions must be one of: ('.\implode(', ', array_keys($roles)).')', 400); + } } } @@ -1998,16 +2001,19 @@ App::patch('/v1/database/collections/:collectionId/documents/:documentId') $data['$read'] = (is_null($read)) ? ($document->getRead() ?? []) : $read; // By default inherit read permissions $data['$write'] = (is_null($write)) ? ($document->getWrite() ?? []) : $write; // By default inherit write permissions - // Users can only add their roles to documents, API keys can add any + // Users can only add their roles to documents, API keys and Admin users can add any $roles = \array_fill_keys(Authorization::getRoles(), true); // Auth::isAppUser expects roles to be keys, not values of assoc array - foreach ($data['$read'] as $read) { - if (!Auth::isAppUser($roles) && !Authorization::isRole($read)) { - throw new Exception('Read permissions must be one of: ('.\implode(', ', $roles).')', 400); + + if (!Auth::isAppUser($roles) && !Auth::isPrivilegedUser($roles)) { + foreach ($data['$read'] as $read) { + if (!Authorization::isRole($read)) { + throw new Exception('Read permissions must be one of: ('.\implode(', ', array_keys($roles)).')', 400); + } } - } - foreach ($data['$write'] as $write) { - if (!Auth::isAppUser($roles) && !Authorization::isRole($write)) { - throw new Exception('Write permissions must be one of: ('.\implode(', ', $roles).')', 400); + foreach ($data['$write'] as $write) { + if (!Authorization::isRole($write)) { + throw new Exception('Write permissions must be one of: ('.\implode(', ', array_keys($roles)).')', 400); + } } } From adffae7cf74f239db1d7f442a6ffcc65205eaf83 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Fri, 10 Dec 2021 13:27:11 +0100 Subject: [PATCH 028/107] docs(api): reviewed in-line docs of endpoints --- app/controllers/api/account.php | 24 ++++---- app/controllers/api/database.php | 92 +++++++++++++++---------------- app/controllers/api/functions.php | 56 +++++++++---------- app/controllers/api/storage.php | 28 +++++----- app/controllers/api/teams.php | 38 ++++++------- app/controllers/api/users.php | 40 +++++++------- 6 files changed, 139 insertions(+), 139 deletions(-) diff --git a/app/controllers/api/account.php b/app/controllers/api/account.php index 5c86755813..e7f6eb508f 100644 --- a/app/controllers/api/account.php +++ b/app/controllers/api/account.php @@ -317,7 +317,7 @@ App::get('/v1/account/sessions/oauth2/callback/:provider/:projectId') ->label('error', __DIR__ . '/../../views/general/error.phtml') ->label('scope', 'public') ->label('docs', false) - ->param('projectId', '', new Text(1024), 'Project unique ID.') + ->param('projectId', '', new Text(1024), 'Project ID.') ->param('provider', '', new WhiteList(\array_keys(Config::getParam('providers')), true), 'OAuth2 provider.') ->param('code', '', new Text(1024), 'OAuth2 code.') ->param('state', '', new Text(2048), 'Login state params.', true) @@ -344,7 +344,7 @@ App::post('/v1/account/sessions/oauth2/callback/:provider/:projectId') ->label('scope', 'public') ->label('origin', '*') ->label('docs', false) - ->param('projectId', '', new Text(1024), 'Project unique ID.') + ->param('projectId', '', new Text(1024), 'Project ID.') ->param('provider', '', new WhiteList(\array_keys(Config::getParam('providers')), true), 'OAuth2 provider.') ->param('code', '', new Text(1024), 'OAuth2 code.') ->param('state', '', new Text(2048), 'Login state params.', true) @@ -771,7 +771,7 @@ App::put('/v1/account/sessions/magic-url') ->label('sdk.response.model', Response::MODEL_SESSION) ->label('abuse-limit', 10) ->label('abuse-key', 'url:{url},userId:{param-userId}') - ->param('userId', '', new CustomId(), 'User unique ID.') + ->param('userId', '', new CustomId(), 'User ID.') ->param('secret', '', new Text(256), 'Valid verification token.') ->inject('request') ->inject('response') @@ -1185,7 +1185,7 @@ App::get('/v1/account/logs') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_LOG_LIST) - ->param('limit', 25, new Range(0, 100), 'Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) + ->param('limit', 25, new Range(0, 100), 'Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) ->param('offset', 0, new Range(0, APP_LIMIT_COUNT), 'Offset value. The default value is 0. Use this param to manage pagination.', true) ->inject('response') ->inject('user') @@ -1271,7 +1271,7 @@ App::get('/v1/account/sessions/:sessionId') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_SESSION) - ->param('sessionId', null, new UID(), 'Session unique ID. Use the string \'current\' to get the current device session.') + ->param('sessionId', null, new UID(), 'Session ID. Use the string \'current\' to get the current device session.') ->inject('response') ->inject('user') ->inject('locale') @@ -1367,8 +1367,8 @@ App::patch('/v1/account/password') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_USER) - ->param('password', '', new Password(), 'User password. Must be at least 8 chars.') - ->param('oldPassword', '', new Password(), 'Old user password. Must be at least 8 chars.', true) + ->param('password', '', new Password(), 'New user password. Must be at least 8 chars.') + ->param('oldPassword', '', new Password(), 'Current user password. Must be at least 8 chars.', true) ->inject('response') ->inject('user') ->inject('dbForInternal') @@ -1585,7 +1585,7 @@ App::delete('/v1/account/sessions/:sessionId') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) ->label('sdk.response.model', Response::MODEL_NONE) ->label('abuse-limit', 100) - ->param('sessionId', null, new UID(), 'Session unique ID. Use the string \'current\' to delete the current device session.') + ->param('sessionId', null, new UID(), 'Session ID. Use the string \'current\' to delete the current device session.') ->inject('request') ->inject('response') ->inject('user') @@ -1867,10 +1867,10 @@ App::put('/v1/account/recovery') ->label('sdk.response.model', Response::MODEL_TOKEN) ->label('abuse-limit', 10) ->label('abuse-key', 'url:{url},userId:{param-userId}') - ->param('userId', '', new UID(), 'User account UID address.') + ->param('userId', '', new UID(), 'User ID.') ->param('secret', '', new Text(256), 'Valid reset token.') - ->param('password', '', new Password(), 'User password. Must be at least 8 chars.') - ->param('passwordAgain', '', new Password(), 'New password again. Must be at least 8 chars.') + ->param('password', '', new Password(), 'New user password. Must be at least 8 chars.') + ->param('passwordAgain', '', new Password(), 'Repeat new user password. Must be at least 8 chars.') ->inject('response') ->inject('dbForInternal') ->inject('audits') @@ -2049,7 +2049,7 @@ App::put('/v1/account/verification') ->label('sdk.response.model', Response::MODEL_TOKEN) ->label('abuse-limit', 10) ->label('abuse-key', 'url:{url},userId:{param-userId}') - ->param('userId', '', new UID(), 'User unique ID.') + ->param('userId', '', new UID(), 'User ID.') ->param('secret', '', new Text(256), 'Valid verification token.') ->inject('response') ->inject('user') diff --git a/app/controllers/api/database.php b/app/controllers/api/database.php index d60d055912..7bff2d9392 100644 --- a/app/controllers/api/database.php +++ b/app/controllers/api/database.php @@ -149,9 +149,9 @@ App::post('/v1/database/collections') ->label('sdk.response.model', Response::MODEL_COLLECTION) ->param('collectionId', '', new CustomId(), 'Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can\'t start with a special char. Max length is 36 chars.') ->param('name', '', new Text(128), 'Collection name. Max length: 128 chars.') - ->param('permission', null, new WhiteList(['document', 'collection']), 'Permissions type model to use for reading documents in this collection. You can use collection-level permission set once on the collection using the `read` and `write` params, or you can set document-level permission where each document read and write params will decide who has access to read and write to each document individually. [learn more about permissions](/docs/permissions) and get a full list of available permissions.') - ->param('read', null, new Permissions(), 'An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](/docs/permissions) and get a full list of available permissions.') - ->param('write', null, new Permissions(), 'An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](/docs/permissions) and get a full list of available permissions.') + ->param('permission', null, new WhiteList(['document', 'collection']), 'Permissions type model to use for reading documents in this collection. You can use collection-level permission set once on the collection using the `read` and `write` params, or you can set document-level permission where each document read and write params will decide who has access to read and write to each document individually. [learn more about permissions](https://appwrite.io/docs/permissions) and get a full list of available permissions.') + ->param('read', null, new Permissions(), 'An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](https://appwrite.io/docs/permissions) and get a full list of available permissions.') + ->param('write', null, new Permissions(), 'An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](https://appwrite.io/docs/permissions) and get a full list of available permissions.') ->inject('response') ->inject('dbForInternal') ->inject('dbForExternal') @@ -206,8 +206,8 @@ App::get('/v1/database/collections') ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_COLLECTION_LIST) ->param('search', '', new Text(256), 'Search term to filter your list results. Max length: 256 chars.', true) - ->param('limit', 25, new Range(0, 100), 'Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) - ->param('offset', 0, new Range(0, APP_LIMIT_COUNT), 'Results offset. The default value is 0. Use this param to manage pagination.', true) + ->param('limit', 25, new Range(0, 100), 'Maximum number of collection to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) + ->param('offset', 0, new Range(0, APP_LIMIT_COUNT), 'Offset value. The default value is 0. Use this param to manage pagination.', true) ->param('cursor', '', new UID(), 'ID of the collection used as the starting point for the query, excluding the collection itself. Should be used for efficient pagination when working with large sets of data.', true) ->param('cursorDirection', Database::CURSOR_AFTER, new WhiteList([Database::CURSOR_AFTER, Database::CURSOR_BEFORE]), 'Direction of the cursor.', true) ->param('orderType', 'ASC', new WhiteList(['ASC', 'DESC'], true), 'Order result by ASC or DESC order.', true) @@ -251,7 +251,7 @@ App::get('/v1/database/collections/:collectionId') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_COLLECTION) - ->param('collectionId', '', new UID(), 'Collection unique ID.') + ->param('collectionId', '', new UID(), 'Collection ID.') ->inject('response') ->inject('dbForInternal') ->inject('usage') @@ -391,7 +391,7 @@ App::get('/v1/database/:collectionId/usage') ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_USAGE_COLLECTION) ->param('range', '30d', new WhiteList(['24h', '7d', '30d', '90d'], true), 'Date range.', true) - ->param('collectionId', '', new UID(), 'Collection unique ID.') + ->param('collectionId', '', new UID(), 'Collection ID.') ->inject('response') ->inject('dbForInternal') ->inject('dbForExternal') @@ -498,8 +498,8 @@ App::get('/v1/database/collections/:collectionId/logs') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_LOG_LIST) - ->param('collectionId', '', new UID(), 'Collection unique ID.') - ->param('limit', 25, new Range(0, 100), 'Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) + ->param('collectionId', '', new UID(), 'Collection ID.') + ->param('limit', 25, new Range(0, 100), 'Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) ->param('offset', 0, new Range(0, APP_LIMIT_COUNT), 'Offset value. The default value is 0. Use this param to manage pagination.', true) ->inject('response') ->inject('dbForInternal') @@ -600,11 +600,11 @@ App::put('/v1/database/collections/:collectionId') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_COLLECTION) - ->param('collectionId', '', new UID(), 'Collection unique ID.') + ->param('collectionId', '', new UID(), 'Collection ID.') ->param('name', null, new Text(128), 'Collection name. Max length: 128 chars.') - ->param('permission', null, new WhiteList(['document', 'collection']), 'Permissions type model to use for reading documents in this collection. You can use collection-level permission set once on the collection using the `read` and `write` params, or you can set document-level permission where each document read and write params will decide who has access to read and write to each document individually. [learn more about permissions](/docs/permissions) and get a full list of available permissions.') - ->param('read', null, new Permissions(), 'An array of strings with read permissions. By default inherits the existing read permissions. [learn more about permissions](/docs/permissions) and get a full list of available permissions.', true) - ->param('write', null, new Permissions(), 'An array of strings with write permissions. By default inherits the existing write permissions. [learn more about permissions](/docs/permissions) and get a full list of available permissions.', true) + ->param('permission', null, new WhiteList(['document', 'collection']), 'Permissions type model to use for reading documents in this collection. You can use collection-level permission set once on the collection using the `read` and `write` params, or you can set document-level permission where each document read and write params will decide who has access to read and write to each document individually. [learn more about permissions](https://appwrite.io/docs/permissions) and get a full list of available permissions.') + ->param('read', null, new Permissions(), 'An array of strings with read permissions. By default inherits the existing read permissions. [learn more about permissions](https://appwrite.io/docs/permissions) and get a full list of available permissions.', true) + ->param('write', null, new Permissions(), 'An array of strings with write permissions. By default inherits the existing write permissions. [learn more about permissions](https://appwrite.io/docs/permissions) and get a full list of available permissions.', true) ->inject('response') ->inject('dbForInternal') ->inject('audits') @@ -663,7 +663,7 @@ App::delete('/v1/database/collections/:collectionId') ->label('sdk.description', '/docs/references/database/delete-collection.md') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) ->label('sdk.response.model', Response::MODEL_NONE) - ->param('collectionId', '', new UID(), 'Collection unique ID.') + ->param('collectionId', '', new UID(), 'Collection ID.') ->inject('response') ->inject('dbForInternal') ->inject('dbForExternal') @@ -723,7 +723,7 @@ App::post('/v1/database/collections/:collectionId/attributes/string') ->label('sdk.response.code', Response::STATUS_CODE_CREATED) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_ATTRIBUTE_STRING) - ->param('collectionId', '', new UID(), 'Collection unique ID. You can create a new collection using the Database service [server integration](/docs/server/database#createCollection).') + ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') ->param('attributeId', '', new Key(), 'Attribute ID.') ->param('size', null, new Range(1, APP_DATABASE_ATTRIBUTE_STRING_MAX_LENGTH, Range::TYPE_INTEGER), 'Attribute size for text attributes, in number of characters.') ->param('required', null, new Boolean(), 'Is attribute required?') @@ -773,7 +773,7 @@ App::post('/v1/database/collections/:collectionId/attributes/email') ->label('sdk.response.code', Response::STATUS_CODE_CREATED) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_ATTRIBUTE_EMAIL) - ->param('collectionId', '', new UID(), 'Collection unique ID. You can create a new collection using the Database service [server integration](/docs/server/database#createCollection).') + ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https:///docs/server/database#createCollection).') ->param('attributeId', '', new Key(), 'Attribute ID.') ->param('required', null, new Boolean(), 'Is attribute required?') ->param('default', null, new Email(), 'Default value for attribute when not provided. Cannot be set when attribute is required.', true) @@ -817,7 +817,7 @@ App::post('/v1/database/collections/:collectionId/attributes/enum') ->label('sdk.response.code', Response::STATUS_CODE_CREATED) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_ATTRIBUTE_ENUM) - ->param('collectionId', '', new UID(), 'Collection unique ID. You can create a new collection using the Database service [server integration](/docs/server/database#createCollection).') + ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') ->param('attributeId', '', new Key(), 'Attribute ID.') ->param('elements', [], new ArrayList(new Text(0)), 'Array of elements in enumerated type. Uses length of longest element to determine size.') ->param('required', null, new Boolean(), 'Is attribute required?') @@ -874,7 +874,7 @@ App::post('/v1/database/collections/:collectionId/attributes/ip') ->label('sdk.response.code', Response::STATUS_CODE_CREATED) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_ATTRIBUTE_IP) - ->param('collectionId', '', new UID(), 'Collection unique ID. You can create a new collection using the Database service [server integration](/docs/server/database#createCollection).') + ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') ->param('attributeId', '', new Key(), 'Attribute ID.') ->param('required', null, new Boolean(), 'Is attribute required?') ->param('default', null, new IP(), 'Default value for attribute when not provided. Cannot be set when attribute is required.', true) @@ -918,7 +918,7 @@ App::post('/v1/database/collections/:collectionId/attributes/url') ->label('sdk.response.code', Response::STATUS_CODE_CREATED) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_ATTRIBUTE_URL) - ->param('collectionId', '', new UID(), 'Collection unique ID. You can create a new collection using the Database service [server integration](/docs/server/database#createCollection).') + ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') ->param('attributeId', '', new Key(), 'Attribute ID.') ->param('required', null, new Boolean(), 'Is attribute required?') ->param('default', null, new URL(), 'Default value for attribute when not provided. Cannot be set when attribute is required.', true) @@ -961,7 +961,7 @@ App::post('/v1/database/collections/:collectionId/attributes/integer') ->label('sdk.response.code', Response::STATUS_CODE_CREATED) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_ATTRIBUTE_INTEGER) - ->param('collectionId', '', new UID(), 'Collection unique ID. You can create a new collection using the Database service [server integration](/docs/server/database#createCollection).') + ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') ->param('attributeId', '', new Key(), 'Attribute ID.') ->param('required', null, new Boolean(), 'Is attribute required?') ->param('min', null, new Integer(), 'Minimum value to enforce on new documents', true) @@ -1032,7 +1032,7 @@ App::post('/v1/database/collections/:collectionId/attributes/float') ->label('sdk.response.code', Response::STATUS_CODE_CREATED) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_ATTRIBUTE_FLOAT) - ->param('collectionId', '', new UID(), 'Collection unique ID. You can create a new collection using the Database service [server integration](/docs/server/database#createCollection).') + ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') ->param('attributeId', '', new Key(), 'Attribute ID.') ->param('required', null, new Boolean(), 'Is attribute required?') ->param('min', null, new FloatValidator(), 'Minimum value to enforce on new documents', true) @@ -1103,7 +1103,7 @@ App::post('/v1/database/collections/:collectionId/attributes/boolean') ->label('sdk.response.code', Response::STATUS_CODE_CREATED) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_ATTRIBUTE_BOOLEAN) - ->param('collectionId', '', new UID(), 'Collection unique ID. You can create a new collection using the Database service [server integration](/docs/server/database#createCollection).') + ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') ->param('attributeId', '', new Key(), 'Attribute ID.') ->param('required', null, new Boolean(), 'Is attribute required?') ->param('default', null, new Boolean(), 'Default value for attribute when not provided. Cannot be set when attribute is required.', true) @@ -1144,7 +1144,7 @@ App::get('/v1/database/collections/:collectionId/attributes') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_ATTRIBUTE_LIST) - ->param('collectionId', '', new UID(), 'Collection unique ID. You can create a new collection using the Database service [server integration](/docs/server/database#createCollection).') + ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') ->inject('response') ->inject('dbForInternal') ->inject('usage') @@ -1187,7 +1187,7 @@ App::get('/v1/database/collections/:collectionId/attributes/:attributeId') Response::MODEL_ATTRIBUTE_URL, Response::MODEL_ATTRIBUTE_IP, Response::MODEL_ATTRIBUTE_STRING,])// needs to be last, since its condition would dominate any other string attribute - ->param('collectionId', '', new UID(), 'Collection unique ID. You can create a new collection using the Database service [server integration](/docs/server/database#createCollection).') + ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') ->param('attributeId', '', new Key(), 'Attribute ID.') ->inject('response') ->inject('dbForInternal') @@ -1242,7 +1242,7 @@ App::delete('/v1/database/collections/:collectionId/attributes/:attributeId') ->label('sdk.description', '/docs/references/database/delete-attribute.md') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) ->label('sdk.response.model', Response::MODEL_NONE) - ->param('collectionId', '', new UID(), 'Collection unique ID. You can create a new collection using the Database service [server integration](/docs/server/database#createCollection).') + ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') ->param('attributeId', '', new Key(), 'Attribute ID.') ->inject('response') ->inject('dbForInternal') @@ -1331,7 +1331,7 @@ App::post('/v1/database/collections/:collectionId/indexes') ->label('sdk.response.code', Response::STATUS_CODE_CREATED) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_INDEX) - ->param('collectionId', '', new UID(), 'Collection unique ID. You can create a new collection using the Database service [server integration](/docs/server/database#createCollection).') + ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') ->param('indexId', null, new Key(), 'Index ID.') ->param('type', null, new WhiteList([Database::INDEX_KEY, Database::INDEX_FULLTEXT, Database::INDEX_UNIQUE, Database::INDEX_SPATIAL, Database::INDEX_ARRAY]), 'Index type.') ->param('attributes', null, new ArrayList(new Key()), 'Array of attributes to index.') @@ -1439,7 +1439,7 @@ App::get('/v1/database/collections/:collectionId/indexes') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_INDEX_LIST) - ->param('collectionId', '', new UID(), 'Collection unique ID. You can create a new collection using the Database service [server integration](/docs/server/database#createCollection).') + ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') ->inject('response') ->inject('dbForInternal') ->inject('usage') @@ -1480,7 +1480,7 @@ App::get('/v1/database/collections/:collectionId/indexes/:indexId') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_INDEX) - ->param('collectionId', '', new UID(), 'Collection unique ID. You can create a new collection using the Database service [server integration](/docs/server/database#createCollection).') + ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') ->param('indexId', null, new Key(), 'Index ID.') ->inject('response') ->inject('dbForInternal') @@ -1524,7 +1524,7 @@ App::delete('/v1/database/collections/:collectionId/indexes/:indexId') ->label('sdk.description', '/docs/references/database/delete-index.md') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) ->label('sdk.response.model', Response::MODEL_NONE) - ->param('collectionId', null, new UID(), 'Collection unique ID. You can create a new collection using the Database service [server integration](/docs/server/database#createCollection).') + ->param('collectionId', null, new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') ->param('indexId', '', new Key(), 'Index ID.') ->inject('response') ->inject('dbForInternal') @@ -1592,11 +1592,11 @@ App::post('/v1/database/collections/:collectionId/documents') ->label('sdk.response.code', Response::STATUS_CODE_CREATED) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_DOCUMENT) - ->param('documentId', '', new CustomId(), 'Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can\'t start with a special char. Max length is 36 chars.') - ->param('collectionId', null, new UID(), 'Collection unique ID. You can create a new collection with validation rules using the Database service [server integration](/docs/server/database#createCollection).') + ->param('documentId', '', new CustomId(), 'Document ID. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can\'t start with a special char. Max length is 36 chars.') + ->param('collectionId', null, new UID(), 'Collection ID. You can create a new collection with validation rules using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') ->param('data', [], new JSON(), 'Document data as JSON object.') - ->param('read', null, new Permissions(), 'An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](/docs/permissions) and get a full list of available permissions.', true) - ->param('write', null, new Permissions(), 'An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](/docs/permissions) and get a full list of available permissions.', true) + ->param('read', null, new Permissions(), 'An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](https://appwrite.io/docs/permissions) and get a full list of available permissions.', true) + ->param('write', null, new Permissions(), 'An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](https://appwrite.io/docs/permissions) and get a full list of available permissions.', true) ->inject('response') ->inject('dbForInternal') ->inject('dbForExternal') @@ -1696,9 +1696,9 @@ App::get('/v1/database/collections/:collectionId/documents') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_DOCUMENT_LIST) - ->param('collectionId', '', new UID(), 'Collection unique ID. You can create a new collection using the Database service [server integration](/docs/server/database#createCollection).') + ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') ->param('queries', [], new ArrayList(new Text(128)), 'Array of query strings.', true) - ->param('limit', 25, new Range(0, 100), 'Maximum number of documents to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) + ->param('limit', 25, new Range(0, 100), 'Maximum number of documents to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) ->param('offset', 0, new Range(0, APP_LIMIT_COUNT), 'Offset value. The default value is 0. Use this param to manage pagination.', true) ->param('cursor', '', new UID(), 'ID of the document used as the starting point for the query, excluding the document itself. Should be used for efficient pagination when working with large sets of data.', true) ->param('cursorDirection', Database::CURSOR_AFTER, new WhiteList([Database::CURSOR_AFTER, Database::CURSOR_BEFORE]), 'Direction of the cursor.', true) @@ -1779,8 +1779,8 @@ App::get('/v1/database/collections/:collectionId/documents/:documentId') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_DOCUMENT) - ->param('collectionId', null, new UID(), 'Collection unique ID. You can create a new collection using the Database service [server integration](/docs/server/database#createCollection).') - ->param('documentId', null, new UID(), 'Document unique ID.') + ->param('collectionId', null, new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') + ->param('documentId', null, new UID(), 'Document ID.') ->inject('response') ->inject('dbForInternal') ->inject('dbForExternal') @@ -1836,9 +1836,9 @@ App::get('/v1/database/collections/:collectionId/documents/:documentId/logs') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_LOG_LIST) - ->param('collectionId', '', new UID(), 'Collection unique ID.') - ->param('documentId', null, new UID(), 'Document unique ID.') - ->param('limit', 25, new Range(0, 100), 'Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) + ->param('collectionId', '', new UID(), 'Collection ID.') + ->param('documentId', null, new UID(), 'Document ID.') + ->param('limit', 25, new Range(0, 100), 'Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) ->param('offset', 0, new Range(0, APP_LIMIT_COUNT), 'Offset value. The default value is 0. Use this param to manage pagination.', true) ->inject('response') ->inject('dbForInternal') @@ -1944,11 +1944,11 @@ App::patch('/v1/database/collections/:collectionId/documents/:documentId') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_DOCUMENT) - ->param('collectionId', null, new UID(), 'Collection unique ID. You can create a new collection with validation rules using the Database service [server integration](/docs/server/database#createCollection).') - ->param('documentId', null, new UID(), 'Document unique ID.') + ->param('collectionId', null, new UID(), 'Collection ID. You can create a new collection with validation rules using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') + ->param('documentId', null, new UID(), 'Document ID.') ->param('data', [], new JSON(), 'Document data as JSON object.') - ->param('read', null, new Permissions(), 'An array of strings with read permissions. By default inherits the existing read permissions. [learn more about permissions](/docs/permissions) and get a full list of available permissions.', true) - ->param('write', null, new Permissions(), 'An array of strings with write permissions. By default inherits the existing write permissions. [learn more about permissions](/docs/permissions) and get a full list of available permissions.', true) + ->param('read', null, new Permissions(), 'An array of strings with read permissions. By default inherits the existing read permissions. [learn more about permissions](https://appwrite.io/docs/permissions) and get a full list of available permissions.', true) + ->param('write', null, new Permissions(), 'An array of strings with write permissions. By default inherits the existing write permissions. [learn more about permissions](https://appwrite.io/docs/permissions) and get a full list of available permissions.', true) ->inject('response') ->inject('dbForInternal') ->inject('dbForExternal') @@ -2056,8 +2056,8 @@ App::delete('/v1/database/collections/:collectionId/documents/:documentId') ->label('sdk.description', '/docs/references/database/delete-document.md') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) ->label('sdk.response.model', Response::MODEL_NONE) - ->param('collectionId', null, new UID(), 'Collection unique ID. You can create a new collection using the Database service [server integration](/docs/server/database#createCollection).') - ->param('documentId', null, new UID(), 'Document unique ID.') + ->param('collectionId', null, new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') + ->param('documentId', null, new UID(), 'Document ID.') ->inject('response') ->inject('dbForInternal') ->inject('dbForExternal') diff --git a/app/controllers/api/functions.php b/app/controllers/api/functions.php index 480b1223d9..16a2d42592 100644 --- a/app/controllers/api/functions.php +++ b/app/controllers/api/functions.php @@ -39,11 +39,11 @@ App::post('/v1/functions') ->label('sdk.response.code', Response::STATUS_CODE_CREATED) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_FUNCTION) - ->param('functionId', '', new CustomId(), 'Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can\'t start with a special char. Max length is 36 chars.') + ->param('functionId', '', new CustomId(), 'Function ID. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can\'t start with a special char. Max length is 36 chars.') ->param('name', '', new Text(128), 'Function name. Max length: 128 chars.') - ->param('execute', [], new ArrayList(new Text(64)), 'An array of strings with execution permissions. By default no user is granted with any execute permissions. [learn more about permissions](/docs/permissions) and get a full list of available permissions.') + ->param('execute', [], new ArrayList(new Text(64)), 'An array of strings with execution permissions. By default no user is granted with any execute permissions. [learn more about permissions](https://appwrite.io/docs/permissions) and get a full list of available permissions.') ->param('runtime', '', new WhiteList(array_keys(Config::getParam('runtimes')), true), 'Execution runtime.') - ->param('vars', [], new Assoc(), 'Key-value JSON object.', true) + ->param('vars', [], new Assoc(), 'Key-value JSON object that will be passed to the function as environment variables.', true) ->param('events', [], new ArrayList(new WhiteList(array_keys(Config::getParam('events')), true)), 'Events list.', true) ->param('schedule', '', new Cron(), 'Schedule CRON syntax.', true) ->param('timeout', 15, new Range(1, 900), 'Function maximum execution time in seconds.', true) @@ -88,8 +88,8 @@ App::get('/v1/functions') ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_FUNCTION_LIST) ->param('search', '', new Text(256), 'Search term to filter your list results. Max length: 256 chars.', true) - ->param('limit', 25, new Range(0, 100), 'Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) - ->param('offset', 0, new Range(0, APP_LIMIT_COUNT), 'Results offset. The default value is 0. Use this param to manage pagination.', true) + ->param('limit', 25, new Range(0, 100), 'Maximum number of functions to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) + ->param('offset', 0, new Range(0, APP_LIMIT_COUNT), 'Offset value. The default value is 0. Use this param to manage pagination.', true) ->param('cursor', '', new UID(), 'ID of the function used as the starting point for the query, excluding the function itself. Should be used for efficient pagination when working with large sets of data.', true) ->param('cursorDirection', Database::CURSOR_AFTER, new WhiteList([Database::CURSOR_AFTER, Database::CURSOR_BEFORE]), 'Direction of the cursor.', true) ->param('orderType', 'ASC', new WhiteList(['ASC', 'DESC'], true), 'Order result by ASC or DESC order.', true) @@ -130,7 +130,7 @@ App::get('/v1/functions/:functionId') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_FUNCTION) - ->param('functionId', '', new UID(), 'Function unique ID.') + ->param('functionId', '', new UID(), 'Function ID.') ->inject('response') ->inject('dbForInternal') ->action(function ($functionId, $response, $dbForInternal) { @@ -156,7 +156,7 @@ App::get('/v1/functions/:functionId/usage') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_USAGE_FUNCTIONS) - ->param('functionId', '', new UID(), 'Function unique ID.') + ->param('functionId', '', new UID(), 'Function ID.') ->param('range', '30d', new WhiteList(['24h', '7d', '30d', '90d']), 'Date range.', true) ->inject('response') ->inject('project') @@ -262,13 +262,13 @@ App::put('/v1/functions/:functionId') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_FUNCTION) - ->param('functionId', '', new UID(), 'Function unique ID.') + ->param('functionId', '', new UID(), 'Function ID.') ->param('name', '', new Text(128), 'Function name. Max length: 128 chars.') - ->param('execute', [], new ArrayList(new Text(64)), 'An array of strings with execution permissions. By default no user is granted with any execute permissions. [learn more about permissions](/docs/permissions) and get a full list of available permissions.') - ->param('vars', [], new Assoc(), 'Key-value JSON object.', true) + ->param('execute', [], new ArrayList(new Text(64)), 'An array of strings with execution permissions. By default no user is granted with any execute permissions. [learn more about permissions](https://appwrite.io/docs/permissions) and get a full list of available permissions.') + ->param('vars', [], new Assoc(), 'Key-value JSON object that will be passed to the function as environment variables.', true) ->param('events', [], new ArrayList(new WhiteList(array_keys(Config::getParam('events')), true)), 'Events list.', true) ->param('schedule', '', new Cron(), 'Schedule CRON syntax.', true) - ->param('timeout', 15, new Range(1, 900), 'Function maximum execution time in seconds.', true) + ->param('timeout', 15, new Range(1, 900), 'Maximum execution time in seconds.', true) ->inject('response') ->inject('dbForInternal') ->inject('project') @@ -324,8 +324,8 @@ App::patch('/v1/functions/:functionId/tag') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_FUNCTION) - ->param('functionId', '', new UID(), 'Function unique ID.') - ->param('tag', '', new UID(), 'Tag unique ID.') + ->param('functionId', '', new UID(), 'Function ID.') + ->param('tag', '', new UID(), 'Tag ID.') ->inject('response') ->inject('dbForInternal') ->inject('project') @@ -378,7 +378,7 @@ App::delete('/v1/functions/:functionId') ->label('sdk.description', '/docs/references/functions/delete-function.md') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) ->label('sdk.response.model', Response::MODEL_NONE) - ->param('functionId', '', new UID(), 'Function unique ID.') + ->param('functionId', '', new UID(), 'Function ID.') ->inject('response') ->inject('dbForInternal') ->inject('deletes') @@ -419,7 +419,7 @@ App::post('/v1/functions/:functionId/tags') ->label('sdk.response.code', Response::STATUS_CODE_CREATED) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_TAG) - ->param('functionId', '', new UID(), 'Function unique ID.') + ->param('functionId', '', new UID(), 'Function ID.') ->param('command', '', new Text('1028'), 'Code execution command.') ->param('code', [], new File(), 'Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.', false) ->inject('request') @@ -505,10 +505,10 @@ App::get('/v1/functions/:functionId/tags') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_TAG_LIST) - ->param('functionId', '', new UID(), 'Function unique ID.') + ->param('functionId', '', new UID(), 'Function ID.') ->param('search', '', new Text(256), 'Search term to filter your list results. Max length: 256 chars.', true) - ->param('limit', 25, new Range(0, 100), 'Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) - ->param('offset', 0, new Range(0, APP_LIMIT_COUNT), 'Results offset. The default value is 0. Use this param to manage pagination.', true) + ->param('limit', 25, new Range(0, 100), 'Maximum number of tags to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) + ->param('offset', 0, new Range(0, APP_LIMIT_COUNT), 'Offset value. The default value is 0. Use this param to manage pagination.', true) ->param('cursor', '', new UID(), 'ID of the tag used as the starting point for the query, excluding the tag itself. Should be used for efficient pagination when working with large sets of data.', true) ->param('cursorDirection', Database::CURSOR_AFTER, new WhiteList([Database::CURSOR_AFTER, Database::CURSOR_BEFORE]), 'Direction of the cursor.', true) ->param('orderType', 'ASC', new WhiteList(['ASC', 'DESC'], true), 'Order result by ASC or DESC order.', true) @@ -560,8 +560,8 @@ App::get('/v1/functions/:functionId/tags/:tagId') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_TAG) - ->param('functionId', '', new UID(), 'Function unique ID.') - ->param('tagId', '', new UID(), 'Tag unique ID.') + ->param('functionId', '', new UID(), 'Function ID.') + ->param('tagId', '', new UID(), 'Tag ID.') ->inject('response') ->inject('dbForInternal') ->action(function ($functionId, $tagId, $response, $dbForInternal) { @@ -598,8 +598,8 @@ App::delete('/v1/functions/:functionId/tags/:tagId') ->label('sdk.description', '/docs/references/functions/delete-tag.md') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) ->label('sdk.response.model', Response::MODEL_NONE) - ->param('functionId', '', new UID(), 'Function unique ID.') - ->param('tagId', '', new UID(), 'Tag unique ID.') + ->param('functionId', '', new UID(), 'Function ID.') + ->param('tagId', '', new UID(), 'Tag ID.') ->inject('response') ->inject('dbForInternal') ->inject('usage') @@ -659,7 +659,7 @@ App::post('/v1/functions/:functionId/executions') ->label('sdk.response.model', Response::MODEL_EXECUTION) ->label('abuse-limit', 60) ->label('abuse-time', 60) - ->param('functionId', '', new UID(), 'Function unique ID.') + ->param('functionId', '', new UID(), 'Function ID.') ->param('data', '', new Text(8192), 'String of custom data to send to function.', true) // ->param('async', 1, new Range(0, 1), 'Execute code asynchronously. Pass 1 for true, 0 for false. Default value is 1.', true) ->inject('response') @@ -767,9 +767,9 @@ App::get('/v1/functions/:functionId/executions') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_EXECUTION_LIST) - ->param('functionId', '', new UID(), 'Function unique ID.') - ->param('limit', 25, new Range(0, 100), 'Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) - ->param('offset', 0, new Range(0, APP_LIMIT_COUNT), 'Results offset. The default value is 0. Use this param to manage pagination.', true) + ->param('functionId', '', new UID(), 'Function ID.') + ->param('limit', 25, new Range(0, 100), 'Maximum number of executions to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) + ->param('offset', 0, new Range(0, APP_LIMIT_COUNT), 'Offset value. The default value is 0. Use this param to manage pagination.', true) ->param('search', '', new Text(256), 'Search term to filter your list results. Max length: 256 chars.', true) ->param('cursor', '', new UID(), 'ID of the execution used as the starting point for the query, excluding the execution itself. Should be used for efficient pagination when working with large sets of data.', true) ->param('cursorDirection', Database::CURSOR_AFTER, new WhiteList([Database::CURSOR_AFTER, Database::CURSOR_BEFORE]), 'Direction of the cursor.', true) @@ -823,8 +823,8 @@ App::get('/v1/functions/:functionId/executions/:executionId') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_EXECUTION) - ->param('functionId', '', new UID(), 'Function unique ID.') - ->param('executionId', '', new UID(), 'Execution unique ID.') + ->param('functionId', '', new UID(), 'Function ID.') + ->param('executionId', '', new UID(), 'Execution ID.') ->inject('response') ->inject('dbForInternal') ->action(function ($functionId, $executionId, $response, $dbForInternal) { diff --git a/app/controllers/api/storage.php b/app/controllers/api/storage.php index 732e061c3f..c671f8e01e 100644 --- a/app/controllers/api/storage.php +++ b/app/controllers/api/storage.php @@ -40,10 +40,10 @@ App::post('/v1/storage/files') ->label('sdk.response.code', Response::STATUS_CODE_CREATED) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_FILE) - ->param('fileId', '', new CustomId(), 'Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can\'t start with a special char. Max length is 36 chars.') + ->param('fileId', '', new CustomId(), 'File ID. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can\'t start with a special char. Max length is 36 chars.') ->param('file', [], new File(), 'Binary file.', false) - ->param('read', null, new ArrayList(new Text(64)), 'An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](/docs/permissions) and get a full list of available permissions.', true) - ->param('write', null, new ArrayList(new Text(64)), 'An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](/docs/permissions) and get a full list of available permissions.', true) + ->param('read', null, new ArrayList(new Text(64)), 'An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](https://appwrite.io/docs/permissions) and get a full list of available permissions.', true) + ->param('write', null, new ArrayList(new Text(64)), 'An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](https://appwrite.io/docs/permissions) and get a full list of available permissions.', true) ->inject('request') ->inject('response') ->inject('dbForInternal') @@ -175,8 +175,8 @@ App::get('/v1/storage/files') ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_FILE_LIST) ->param('search', '', new Text(256), 'Search term to filter your list results. Max length: 256 chars.', true) - ->param('limit', 25, new Range(0, 100), 'Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) - ->param('offset', 0, new Range(0, APP_LIMIT_COUNT), 'Results offset. The default value is 0. Use this param to manage pagination.', true) + ->param('limit', 25, new Range(0, 100), 'Maximum number of files to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) + ->param('offset', 0, new Range(0, APP_LIMIT_COUNT), 'Offset value. The default value is 0. Use this param to manage pagination.', true) ->param('cursor', '', new UID(), 'ID of the file used as the starting point for the query, excluding the file itself. Should be used for efficient pagination when working with large sets of data.', true) ->param('cursorDirection', Database::CURSOR_AFTER, new WhiteList([Database::CURSOR_AFTER, Database::CURSOR_BEFORE]), 'Direction of the cursor.', true) ->param('orderType', 'ASC', new WhiteList(['ASC', 'DESC'], true), 'Order result by ASC or DESC order.', true) @@ -224,7 +224,7 @@ App::get('/v1/storage/files/:fileId') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_FILE) - ->param('fileId', '', new UID(), 'File unique ID.') + ->param('fileId', '', new UID(), 'File ID.') ->inject('response') ->inject('dbForInternal') ->inject('usage') @@ -256,7 +256,7 @@ App::get('/v1/storage/files/:fileId/preview') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_IMAGE) ->label('sdk.methodType', 'location') - ->param('fileId', '', new UID(), 'File unique ID') + ->param('fileId', '', new UID(), 'File ID.') ->param('width', 0, new Range(0, 4000), 'Resize preview image width, Pass an integer between 0 to 4000.', true) ->param('height', 0, new Range(0, 4000), 'Resize preview image height, Pass an integer between 0 to 4000.', true) ->param('gravity', Image::GRAVITY_CENTER, new WhiteList(Image::getGravityTypes()), 'Image crop gravity. Can be one of ' . implode(",", Image::getGravityTypes()), true) @@ -417,7 +417,7 @@ App::get('/v1/storage/files/:fileId/download') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', '*/*') ->label('sdk.methodType', 'location') - ->param('fileId', '', new UID(), 'File unique ID.') + ->param('fileId', '', new UID(), 'File ID.') ->inject('response') ->inject('dbForInternal') ->inject('usage') @@ -482,7 +482,7 @@ App::get('/v1/storage/files/:fileId/view') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', '*/*') ->label('sdk.methodType', 'location') - ->param('fileId', '', new UID(), 'File unique ID.') + ->param('fileId', '', new UID(), 'File ID.') ->inject('response') ->inject('dbForInternal') ->inject('usage') @@ -558,9 +558,9 @@ App::put('/v1/storage/files/:fileId') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_FILE) - ->param('fileId', '', new UID(), 'File unique ID.') - ->param('read', [], new ArrayList(new Text(64)), 'An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](/docs/permissions) and get a full list of available permissions.') - ->param('write', [], new ArrayList(new Text(64)), 'An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](/docs/permissions) and get a full list of available permissions.') + ->param('fileId', '', new UID(), 'File ID.') + ->param('read', [], new ArrayList(new Text(64)), 'An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](https://appwrite.io/docs/permissions) and get a full list of available permissions.') + ->param('write', [], new ArrayList(new Text(64)), 'An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](https://appwrite.io/docs/permissions) and get a full list of available permissions.') ->inject('response') ->inject('dbForInternal') ->inject('audits') @@ -606,7 +606,7 @@ App::delete('/v1/storage/files/:fileId') ->label('sdk.description', '/docs/references/storage/delete-file.md') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) ->label('sdk.response.model', Response::MODEL_NONE) - ->param('fileId', '', new UID(), 'File unique ID.') + ->param('fileId', '', new UID(), 'File ID.') ->inject('response') ->inject('dbForInternal') ->inject('events') @@ -752,7 +752,7 @@ App::get('/v1/storage/:bucketId/usage') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_USAGE_BUCKETS) - ->param('bucketId', '', new UID(), 'Bucket unique ID.') + ->param('bucketId', '', new UID(), 'Bucket ID.') ->param('range', '30d', new WhiteList(['24h', '7d', '30d', '90d'], true), 'Date range.', true) ->inject('response') ->inject('dbForInternal') diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index 5d8e1781b7..02370df76b 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -34,7 +34,7 @@ App::post('/v1/teams') ->label('sdk.response.code', Response::STATUS_CODE_CREATED) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_TEAM) - ->param('teamId', '', new CustomId(), 'Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can\'t start with a special char. Max length is 36 chars.') + ->param('teamId', '', new CustomId(), 'Team ID. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can\'t start with a special char. Max length is 36 chars.') ->param('name', null, new Text(128), 'Team name. Max length: 128 chars.') ->param('roles', ['owner'], new ArrayList(new Key()), 'Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](/docs/permissions). Max length for each role is 32 chars.', true) ->inject('response') @@ -105,8 +105,8 @@ App::get('/v1/teams') ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_TEAM_LIST) ->param('search', '', new Text(256), 'Search term to filter your list results. Max length: 256 chars.', true) - ->param('limit', 25, new Range(0, 100), 'Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) - ->param('offset', 0, new Range(0, APP_LIMIT_COUNT), 'Results offset. The default value is 0. Use this param to manage pagination.', true) + ->param('limit', 25, new Range(0, 100), 'Maximum number of teams to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) + ->param('offset', 0, new Range(0, APP_LIMIT_COUNT), 'Offset value. The default value is 0. Use this param to manage pagination.', true) ->param('cursor', '', new UID(), 'ID of the team used as the starting point for the query, excluding the team itself. Should be used for efficient pagination when working with large sets of data.', true) ->param('cursorDirection', Database::CURSOR_AFTER, new WhiteList([Database::CURSOR_AFTER, Database::CURSOR_BEFORE]), 'Direction of the cursor.', true) ->param('orderType', 'ASC', new WhiteList(['ASC', 'DESC'], true), 'Order result by ASC or DESC order.', true) @@ -150,7 +150,7 @@ App::get('/v1/teams/:teamId') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_TEAM) - ->param('teamId', '', new UID(), 'Team unique ID.') + ->param('teamId', '', new UID(), 'Team ID.') ->inject('response') ->inject('dbForInternal') ->action(function ($teamId, $response, $dbForInternal) { @@ -178,7 +178,7 @@ App::put('/v1/teams/:teamId') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_TEAM) - ->param('teamId', '', new UID(), 'Team unique ID.') + ->param('teamId', '', new UID(), 'Team ID.') ->param('name', null, new Text(128), 'Team name. Max length: 128 chars.') ->inject('response') ->inject('dbForInternal') @@ -211,7 +211,7 @@ App::delete('/v1/teams/:teamId') ->label('sdk.description', '/docs/references/teams/delete-team.md') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) ->label('sdk.response.model', Response::MODEL_NONE) - ->param('teamId', '', new UID(), 'Team unique ID.') + ->param('teamId', '', new UID(), 'Team ID.') ->inject('response') ->inject('dbForInternal') ->inject('events') @@ -269,11 +269,11 @@ App::post('/v1/teams/:teamId/memberships') ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_MEMBERSHIP) ->label('abuse-limit', 10) - ->param('teamId', '', new UID(), 'Team unique ID.') - ->param('email', '', new Email(), 'New team member email.') + ->param('teamId', '', new UID(), 'Team ID.') + ->param('email', '', new Email(), 'Team member email.') ->param('roles', [], new ArrayList(new Key()), 'Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](/docs/permissions). Max length for each role is 32 chars.') ->param('url', '', function ($clients) { return new Host($clients); }, 'URL to redirect the user back to your app from the invitation email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.', false, ['clients']) // TODO add our own built-in confirm page - ->param('name', '', new Text(128), 'New team member name. Max length: 128 chars.', true) + ->param('name', '', new Text(128), 'Team member name. Max length: 128 chars.', true) ->inject('response') ->inject('project') ->inject('user') @@ -441,10 +441,10 @@ App::get('/v1/teams/:teamId/memberships') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_MEMBERSHIP_LIST) - ->param('teamId', '', new UID(), 'Team unique ID.') + ->param('teamId', '', new UID(), 'Team ID.') ->param('search', '', new Text(256), 'Search term to filter your list results. Max length: 256 chars.', true) - ->param('limit', 25, new Range(0, 100), 'Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) - ->param('offset', 0, new Range(0, APP_LIMIT_COUNT), 'Results offset. The default value is 0. Use this param to manage pagination.', true) + ->param('limit', 25, new Range(0, 100), 'Maximum number of memberships to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) + ->param('offset', 0, new Range(0, APP_LIMIT_COUNT), 'Offset value. The default value is 0. Use this param to manage pagination.', true) ->param('cursor', '', new UID(), 'ID of the membership used as the starting point for the query, excluding the membership itself. Should be used for efficient pagination when working with large sets of data.', true) ->param('cursorDirection', Database::CURSOR_AFTER, new WhiteList([Database::CURSOR_AFTER, Database::CURSOR_BEFORE]), 'Direction of the cursor.', true) ->param('orderType', 'ASC', new WhiteList(['ASC', 'DESC'], true), 'Order result by ASC or DESC order.', true) @@ -499,8 +499,8 @@ App::get('/v1/teams/:teamId/memberships/:membershipId') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_MEMBERSHIP_LIST) - ->param('teamId', '', new UID(), 'Team unique ID.') - ->param('membershipId', '', new UID(), 'membership unique ID.') + ->param('teamId', '', new UID(), 'Team ID.') + ->param('membershipId', '', new UID(), 'Membership ID.') ->inject('response') ->inject('dbForInternal') ->action(function ($teamId, $membershipId, $response, $dbForInternal) { @@ -536,9 +536,9 @@ App::patch('/v1/teams/:teamId/memberships/:membershipId') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_MEMBERSHIP) - ->param('teamId', '', new UID(), 'Team unique ID.') + ->param('teamId', '', new UID(), 'Team ID.') ->param('membershipId', '', new UID(), 'Membership ID.') - ->param('roles', [], new ArrayList(new Key()), 'Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](/docs/permissions). Max length for each role is 32 chars.') + ->param('roles', [], new ArrayList(new Key()), 'Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](https://appwrite.io/docs/permissions). Max length for each role is 32 chars.') ->inject('request') ->inject('response') ->inject('user') @@ -601,9 +601,9 @@ App::patch('/v1/teams/:teamId/memberships/:membershipId/status') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_MEMBERSHIP) - ->param('teamId', '', new UID(), 'Team unique ID.') + ->param('teamId', '', new UID(), 'Team ID.') ->param('membershipId', '', new UID(), 'Membership ID.') - ->param('userId', '', new UID(), 'User unique ID.') + ->param('userId', '', new UID(), 'User ID.') ->param('secret', '', new Text(256), 'Secret key.') ->inject('request') ->inject('response') @@ -739,7 +739,7 @@ App::delete('/v1/teams/:teamId/memberships/:membershipId') ->label('sdk.description', '/docs/references/teams/delete-team-membership.md') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) ->label('sdk.response.model', Response::MODEL_NONE) - ->param('teamId', '', new UID(), 'Team unique ID.') + ->param('teamId', '', new UID(), 'Team ID.') ->param('membershipId', '', new UID(), 'Membership ID.') ->inject('response') ->inject('dbForInternal') diff --git a/app/controllers/api/users.php b/app/controllers/api/users.php index a5d412d5b6..400bbd5a16 100644 --- a/app/controllers/api/users.php +++ b/app/controllers/api/users.php @@ -34,7 +34,7 @@ App::post('/v1/users') ->label('sdk.response.code', Response::STATUS_CODE_CREATED) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_USER) - ->param('userId', '', new CustomId(), 'Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can\'t start with a special char. Max length is 36 chars.') + ->param('userId', '', new CustomId(), 'User ID. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can\'t start with a special char. Max length is 36 chars.') ->param('email', '', new Email(), 'User email.') ->param('password', '', new Password(), 'User password. Must be at least 8 chars.') ->param('name', '', new Text(128), 'User name. Max length: 128 chars.', true) @@ -93,8 +93,8 @@ App::get('/v1/users') ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_USER_LIST) ->param('search', '', new Text(256), 'Search term to filter your list results. Max length: 256 chars.', true) - ->param('limit', 25, new Range(0, 100), 'Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) - ->param('offset', 0, new Range(0, APP_LIMIT_COUNT), 'Results offset. The default value is 0. Use this param to manage pagination.', true) + ->param('limit', 25, new Range(0, 100), 'Maximum number of users to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) + ->param('offset', 0, new Range(0, APP_LIMIT_COUNT), 'Offset value. The default value is 0. Use this param to manage pagination.', true) ->param('cursor', '', new UID(), 'ID of the user used as the starting point for the query, excluding the user itself. Should be used for efficient pagination when working with large sets of data.', true) ->param('cursorDirection', Database::CURSOR_AFTER, new WhiteList([Database::CURSOR_AFTER, Database::CURSOR_BEFORE]), 'Direction of the cursor.', true) ->param('orderType', 'ASC', new WhiteList(['ASC', 'DESC'], true), 'Order result by ASC or DESC order.', true) @@ -143,7 +143,7 @@ App::get('/v1/users/:userId') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_USER) - ->param('userId', '', new UID(), 'User unique ID.') + ->param('userId', '', new UID(), 'User ID.') ->inject('response') ->inject('dbForInternal') ->inject('usage') @@ -175,7 +175,7 @@ App::get('/v1/users/:userId/prefs') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_PREFERENCES) - ->param('userId', '', new UID(), 'User unique ID.') + ->param('userId', '', new UID(), 'User ID.') ->inject('response') ->inject('dbForInternal') ->inject('usage') @@ -209,7 +209,7 @@ App::get('/v1/users/:userId/sessions') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_SESSION_LIST) - ->param('userId', '', new UID(), 'User unique ID.') + ->param('userId', '', new UID(), 'User ID.') ->inject('response') ->inject('dbForInternal') ->inject('locale') @@ -258,7 +258,7 @@ App::get('/v1/users/:userId/logs') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_LOG_LIST) - ->param('userId', '', new UID(), 'User unique ID.') + ->param('userId', '', new UID(), 'User ID.') ->param('limit', 25, new Range(0, 100), 'Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.', true) ->param('offset', 0, new Range(0, APP_LIMIT_COUNT), 'Offset value. The default value is 0. Use this param to manage pagination.', true) ->inject('response') @@ -377,8 +377,8 @@ App::patch('/v1/users/:userId/status') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_USER) - ->param('userId', '', new UID(), 'User unique ID.') - ->param('status', null, new Boolean(true), 'User Status. To activate the user pass `true` and to block the user pass `false`') + ->param('userId', '', new UID(), 'User ID.') + ->param('status', null, new Boolean(true), 'User Status. To activate the user pass `true` and to block the user pass `false`.') ->inject('response') ->inject('dbForInternal') ->inject('usage') @@ -413,8 +413,8 @@ App::patch('/v1/users/:userId/verification') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_USER) - ->param('userId', '', new UID(), 'User unique ID.') - ->param('emailVerification', false, new Boolean(), 'User Email Verification Status.') + ->param('userId', '', new UID(), 'User ID.') + ->param('emailVerification', false, new Boolean(), 'User email verification status.') ->inject('response') ->inject('dbForInternal') ->inject('usage') @@ -449,7 +449,7 @@ App::patch('/v1/users/:userId/name') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_USER) - ->param('userId', '', new UID(), 'User unique ID.') + ->param('userId', '', new UID(), 'User ID.') ->param('name', '', new Text(128), 'User name. Max length: 128 chars.') ->inject('response') ->inject('dbForInternal') @@ -488,8 +488,8 @@ App::patch('/v1/users/:userId/password') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_USER) - ->param('userId', '', new UID(), 'User unique ID.') - ->param('password', '', new Password(), 'New user password. Must be between 6 to 32 chars.') + ->param('userId', '', new UID(), 'User ID.') + ->param('password', '', new Password(), 'New user password. Must be at least 8 chars.') ->inject('response') ->inject('dbForInternal') ->inject('audits') @@ -531,7 +531,7 @@ App::patch('/v1/users/:userId/email') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_USER) - ->param('userId', '', new UID(), 'User unique ID.') + ->param('userId', '', new UID(), 'User ID.') ->param('email', '', new Email(), 'User email.') ->inject('response') ->inject('dbForInternal') @@ -581,7 +581,7 @@ App::patch('/v1/users/:userId/prefs') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_PREFERENCES) - ->param('userId', '', new UID(), 'User unique ID.') + ->param('userId', '', new UID(), 'User ID.') ->param('prefs', '', new Assoc(), 'Prefs key-value JSON object.') ->inject('response') ->inject('dbForInternal') @@ -616,8 +616,8 @@ App::delete('/v1/users/:userId/sessions/:sessionId') ->label('sdk.description', '/docs/references/users/delete-user-session.md') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) ->label('sdk.response.model', Response::MODEL_NONE) - ->param('userId', '', new UID(), 'User unique ID.') - ->param('sessionId', null, new UID(), 'User unique session ID.') + ->param('userId', '', new UID(), 'User ID.') + ->param('sessionId', null, new UID(), 'Session ID.') ->inject('response') ->inject('dbForInternal') ->inject('events') @@ -672,7 +672,7 @@ App::delete('/v1/users/:userId/sessions') ->label('sdk.description', '/docs/references/users/delete-user-sessions.md') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) ->label('sdk.response.model', Response::MODEL_NONE) - ->param('userId', '', new UID(), 'User unique ID.') + ->param('userId', '', new UID(), 'User ID.') ->inject('response') ->inject('dbForInternal') ->inject('events') @@ -719,7 +719,7 @@ App::delete('/v1/users/:userId') ->label('sdk.description', '/docs/references/users/delete.md') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) ->label('sdk.response.model', Response::MODEL_NONE) - ->param('userId', '', function () {return new UID();}, 'User unique ID.') + ->param('userId', '', function () {return new UID();}, 'User ID.') ->inject('response') ->inject('dbForInternal') ->inject('events') From bfbf0e54b9696de48f5279655f68955619106754 Mon Sep 17 00:00:00 2001 From: Radmacher <66096031+rdmchr@users.noreply.github.com> Date: Fri, 10 Dec 2021 16:44:54 +0100 Subject: [PATCH 029/107] Rolled back addition of articles --- app/controllers/api/teams.php | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index bcf081eedc..6c9ac4fd42 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -32,7 +32,7 @@ App::post('/v1/teams') ->label('sdk.response.code', Response::STATUS_CODE_CREATED) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_TEAM) - ->param('name', null, new Text(128), 'The name of the team. Max length: 128 chars.') + ->param('name', null, new Text(128), 'Team name. Max length: 128 chars.') ->param('roles', ['owner'], new ArrayList(new Key()), 'Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](/docs/permissions). Max length for each role is 32 chars.', true) ->inject('response') ->inject('user') @@ -178,8 +178,8 @@ App::put('/v1/teams/:teamId') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_TEAM) - ->param('teamId', '', new UID(), 'The unique team ID.') - ->param('name', null, new Text(128), 'The new team name. Max length: 128 chars.') + ->param('teamId', '', new UID(), 'Unique team ID.') + ->param('name', null, new Text(128), 'New team name. Max length: 128 chars.') ->inject('response') ->inject('projectDB') ->action(function ($teamId, $name, $response, $projectDB) { @@ -214,7 +214,7 @@ App::delete('/v1/teams/:teamId') ->label('sdk.description', '/docs/references/teams/delete-team.md') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) ->label('sdk.response.model', Response::MODEL_NONE) - ->param('teamId', '', new UID(), 'The unique team ID.') + ->param('teamId', '', new UID(), 'Unique team ID.') ->inject('response') ->inject('projectDB') ->inject('events') @@ -260,11 +260,11 @@ App::post('/v1/teams/:teamId/memberships') ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_MEMBERSHIP) ->label('abuse-limit', 10) - ->param('teamId', '', new UID(), 'The unique team ID.') - ->param('email', '', new Email(), 'The email address of the new team member.') + ->param('teamId', '', new UID(), 'Unique team ID.') + ->param('email', '', new Email(), 'Email address of the new team member.') ->param('roles', [], new ArrayList(new Key()), 'An array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](/docs/permissions). Max length for each role is 32 chars.') ->param('url', '', function ($clients) { return new Host($clients); }, 'URL to redirect the user back to your app from the invitation email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.', false, ['clients']) // TODO add our own built-in confirm page - ->param('name', '', new Text(128), 'The name of the new team member. Max length: 128 chars.', true) + ->param('name', '', new Text(128), 'Name of the new team member. Max length: 128 chars.', true) ->inject('response') ->inject('project') ->inject('user') @@ -472,8 +472,8 @@ App::patch('/v1/teams/:teamId/memberships/:membershipId') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_MEMBERSHIP) - ->param('teamId', '', new UID(), 'The unique team ID.') - ->param('membershipId', '', new UID(), 'The membership ID.') + ->param('teamId', '', new UID(), 'Unique team ID.') + ->param('membershipId', '', new UID(), 'Membership ID.') ->param('roles', [], new ArrayList(new Key()), 'An array of strings. Use this param to set the user\'s roles in the team. A role can be any string. Learn more about [roles and permissions](/docs/permissions). Max length for each role is 32 chars.') ->inject('request') ->inject('response') @@ -534,7 +534,7 @@ App::get('/v1/teams/:teamId/memberships') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_MEMBERSHIP_LIST) - ->param('teamId', '', new UID(), 'The unique team ID.') + ->param('teamId', '', new UID(), 'Unique team ID.') ->param('search', '', new Text(256), 'Search term to filter your results. Max length: 256 chars.', true) ->param('limit', 25, new Range(0, 100), 'Limit how many results will be returned. By default will return a maximum of 25 results. Maximum of 100 results allowed per request.', true) ->param('offset', 0, new Range(0, 2000), 'Results offset. The default value is 0. Use this param to manage pagination.', true) @@ -588,10 +588,10 @@ App::patch('/v1/teams/:teamId/memberships/:membershipId/status') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_MEMBERSHIP) - ->param('teamId', '', new UID(), 'The unique team ID.') - ->param('membershipId', '', new UID(), 'The membership ID.') - ->param('userId', '', new UID(), 'The unique user ID.') - ->param('secret', '', new Text(256), 'The secret key.') + ->param('teamId', '', new UID(), 'Unique team ID.') + ->param('membershipId', '', new UID(), 'Membership ID.') + ->param('userId', '', new UID(), 'Unique user ID.') + ->param('secret', '', new Text(256), 'Secret key.') ->inject('request') ->inject('response') ->inject('user') @@ -734,8 +734,8 @@ App::delete('/v1/teams/:teamId/memberships/:membershipId') ->label('sdk.description', '/docs/references/teams/delete-team-membership.md') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) ->label('sdk.response.model', Response::MODEL_NONE) - ->param('teamId', '', new UID(), 'The unique team ID.') - ->param('membershipId', '', new UID(), 'The membership ID.') + ->param('teamId', '', new UID(), 'Unique team ID.') + ->param('membershipId', '', new UID(), 'Membership ID.') ->inject('response') ->inject('projectDB') ->inject('audits') From eb9d258be77206a9c20811a2ea9950140df10be9 Mon Sep 17 00:00:00 2001 From: Radmacher <66096031+rdmchr@users.noreply.github.com> Date: Fri, 10 Dec 2021 16:45:21 +0100 Subject: [PATCH 030/107] Changed "On admin mode" to "In admin mode" --- docs/references/teams/list-teams.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/references/teams/list-teams.md b/docs/references/teams/list-teams.md index 68c3621cbd..a360974998 100644 --- a/docs/references/teams/list-teams.md +++ b/docs/references/teams/list-teams.md @@ -1,3 +1,3 @@ Use this endpoint to get a list of all the teams in which the current user is a member. You can use the parameters to filter your results. -On admin mode, this endpoint returns a list of all the teams in the current project. [Learn more about different API modes](/docs/admin). \ No newline at end of file +In admin mode, this endpoint returns a list of all the teams in the current project. [Learn more about different API modes](/docs/admin). \ No newline at end of file From f02c1d01c5626e260e738fbee19b471f8b8db540 Mon Sep 17 00:00:00 2001 From: Radmacher <66096031+rdmchr@users.noreply.github.com> Date: Fri, 10 Dec 2021 16:48:47 +0100 Subject: [PATCH 031/107] Removed "Use this endpoint" to avoid repetition --- docs/references/teams/create-team-membership.md | 2 +- docs/references/teams/create-team.md | 2 +- docs/references/teams/delete-team.md | 2 +- docs/references/teams/get-team.md | 2 +- docs/references/teams/list-teams.md | 2 +- docs/references/teams/update-team-membership-roles.md | 2 +- docs/references/teams/update-team.md | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/references/teams/create-team-membership.md b/docs/references/teams/create-team-membership.md index f0bf9e416c..7668c69b99 100644 --- a/docs/references/teams/create-team-membership.md +++ b/docs/references/teams/create-team-membership.md @@ -1,4 +1,4 @@ -Use this endpoint to invite a new member to join your team. If initiated from the client SDK, an email with a link to join the team will be sent to the member's email address and an account will be created for them should they not be signed up already. If initiated from server-side SDKs, the new member will automatically be added to the team. +Invite a new member to join your team. If initiated from the client SDK, an email with a link to join the team will be sent to the member's email address and an account will be created for them should they not be signed up already. If initiated from server-side SDKs, the 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. diff --git a/docs/references/teams/create-team.md b/docs/references/teams/create-team.md index 3ff3a30c8e..eaa8b1d9a1 100644 --- a/docs/references/teams/create-team.md +++ b/docs/references/teams/create-team.md @@ -1 +1 @@ -Use this endpoint to create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team. \ No newline at end of file +Create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team. \ No newline at end of file diff --git a/docs/references/teams/delete-team.md b/docs/references/teams/delete-team.md index 19dfe40969..82bcc24cdf 100644 --- a/docs/references/teams/delete-team.md +++ b/docs/references/teams/delete-team.md @@ -1 +1 @@ -Use this endpoint to delete a team using its unique ID. Only team members with the owner role can delete the team. \ No newline at end of file +Delete a team using its unique ID. Only team members with the owner role can delete the team. \ No newline at end of file diff --git a/docs/references/teams/get-team.md b/docs/references/teams/get-team.md index 5449bf2153..800612ab15 100644 --- a/docs/references/teams/get-team.md +++ b/docs/references/teams/get-team.md @@ -1 +1 @@ -Use this endpoint to get a team by its unique ID. All team members have read access for this resource. \ No newline at end of file +Get a team by its unique ID. All team members have read access for this resource. \ No newline at end of file diff --git a/docs/references/teams/list-teams.md b/docs/references/teams/list-teams.md index a360974998..5b59bcbaae 100644 --- a/docs/references/teams/list-teams.md +++ b/docs/references/teams/list-teams.md @@ -1,3 +1,3 @@ -Use this endpoint to get a list of all the teams in which the current user is a member. You can use the parameters to filter your results. +Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results. In admin mode, this endpoint returns a list of all the teams in the current project. [Learn more about different API modes](/docs/admin). \ No newline at end of file diff --git a/docs/references/teams/update-team-membership-roles.md b/docs/references/teams/update-team-membership-roles.md index add91638bb..43e8a2a1ee 100644 --- a/docs/references/teams/update-team-membership-roles.md +++ b/docs/references/teams/update-team-membership-roles.md @@ -1 +1 @@ -Use this endpoint to modify the roles of a team member. Only team members with the owner role have access to this endpoint. Learn more about [roles and permissions](/docs/permissions) \ No newline at end of file +Modify the roles of a team member. Only team members with the owner role have access to this endpoint. Learn more about [roles and permissions](/docs/permissions) \ No newline at end of file diff --git a/docs/references/teams/update-team.md b/docs/references/teams/update-team.md index aa88d0e242..0acb528e1c 100644 --- a/docs/references/teams/update-team.md +++ b/docs/references/teams/update-team.md @@ -1 +1 @@ -Use this endpoint to update a team using its unique ID. Only members with the owner role can update the team. \ No newline at end of file +Update a team using its unique ID. Only members with the owner role can update the team. \ No newline at end of file From b530fd66cd4f91ef04b8df4df43789077783a6d2 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Fri, 10 Dec 2021 17:48:54 +0100 Subject: [PATCH 032/107] fix(storage): add same permissions check to files uploaded --- app/controllers/api/storage.php | 43 ++++++- .../Storage/StorageCustomClientTest.php | 111 +++++++++++++++++- 2 files changed, 152 insertions(+), 2 deletions(-) diff --git a/app/controllers/api/storage.php b/app/controllers/api/storage.php index 732e061c3f..0522826af4 100644 --- a/app/controllers/api/storage.php +++ b/app/controllers/api/storage.php @@ -1,5 +1,6 @@ isEmpty()) ? ['user:'.$user->getId()] : $read ?? []; // By default set read permissions for user + $write = (is_null($write) && !$user->isEmpty()) ? ['user:'.$user->getId()] : $write ?? []; + + // Users can only add their roles to files, API keys and Admin users can add any + $roles = \array_fill_keys(Authorization::getRoles(), true); // Auth::isAppUser expects roles to be keys, not values of assoc array + + if (!Auth::isAppUser($roles) && !Auth::isPrivilegedUser($roles)) { + foreach ($read as $role) { + if (!Authorization::isRole($role)) { + throw new Exception('Read permissions must be one of: ('.\implode(', ', array_keys($roles)).')', 400); + } + } + foreach ($write as $role) { + if (!Authorization::isRole($role)) { + throw new Exception('Write permissions must be one of: ('.\implode(', ', array_keys($roles)).')', 400); + } + } + } + $file = $request->getFiles('file'); /* @@ -563,13 +583,34 @@ App::put('/v1/storage/files/:fileId') ->param('write', [], new ArrayList(new Text(64)), 'An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](/docs/permissions) and get a full list of available permissions.') ->inject('response') ->inject('dbForInternal') + ->inject('user') ->inject('audits') ->inject('usage') - ->action(function ($fileId, $read, $write, $response, $dbForInternal, $audits, $usage) { + ->action(function ($fileId, $read, $write, $response, $dbForInternal, $user, $audits, $usage) { /** @var Appwrite\Utopia\Response $response */ /** @var Utopia\Database\Database $dbForInternal */ + /** @var Utopia\Database\Document $user */ /** @var Appwrite\Event\Event $audits */ + $read = (is_null($read) && !$user->isEmpty()) ? ['user:'.$user->getId()] : $read ?? []; // By default set read permissions for user + $write = (is_null($write) && !$user->isEmpty()) ? ['user:'.$user->getId()] : $write ?? []; + + // Users can only add their roles to files, API keys and Admin users can add any + $roles = \array_fill_keys(Authorization::getRoles(), true); // Auth::isAppUser expects roles to be keys, not values of assoc array + + if (!Auth::isAppUser($roles) && !Auth::isPrivilegedUser($roles)) { + foreach ($read as $role) { + if (!Authorization::isRole($role)) { + throw new Exception('Read permissions must be one of: ('.\implode(', ', array_keys($roles)).')', 400); + } + } + foreach ($write as $role) { + if (!Authorization::isRole($role)) { + throw new Exception('Write permissions must be one of: ('.\implode(', ', array_keys($roles)).')', 400); + } + } + } + $file = $dbForInternal->getDocument('files', $fileId); if (empty($file->getId())) { diff --git a/tests/e2e/Services/Storage/StorageCustomClientTest.php b/tests/e2e/Services/Storage/StorageCustomClientTest.php index 2a0ead59f6..a0dee63156 100644 --- a/tests/e2e/Services/Storage/StorageCustomClientTest.php +++ b/tests/e2e/Services/Storage/StorageCustomClientTest.php @@ -3,6 +3,9 @@ namespace Tests\E2E\Services\Storage; use CURLFile; +use Exception; +use SebastianBergmann\RecursionContext\InvalidArgumentException; +use PHPUnit\Framework\ExpectationFailedException; use Tests\E2E\Client; use Tests\E2E\Scopes\Scope; use Tests\E2E\Scopes\ProjectCustom; @@ -14,7 +17,7 @@ class StorageCustomClientTest extends Scope use ProjectCustom; use SideClient; - public function testCreateFileDefaultPermissions():void + public function testCreateFileDefaultPermissions(): array { /** * Test for SUCCESS @@ -36,5 +39,111 @@ class StorageCustomClientTest extends Scope $this->assertEquals('permissions.png', $file['body']['name']); $this->assertEquals('image/png', $file['body']['mimeType']); $this->assertEquals(47218, $file['body']['sizeOriginal']); + + return $file['body']; + } + + public function testCreateFileAbusePermissions(): void + { + /** + * Test for FAILURE + */ + $file = $this->client->call(Client::METHOD_POST, '/storage/files', array_merge([ + 'content-type' => 'multipart/form-data', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'fileId' => 'unique()', + 'file' => new CURLFile(realpath(__DIR__ . '/../../../resources/logo.png'), 'image/png', 'permissions.png'), + 'folderId' => 'xyz', + 'read' => ['user:notme'] + ]); + + $this->assertEquals($file['headers']['status-code'], 400); + $this->assertStringStartsWith('Read permissions must be one of:', $file['body']['message']); + $this->assertStringContainsString('role:all', $file['body']['message']); + $this->assertStringContainsString('role:member', $file['body']['message']); + $this->assertStringContainsString('user:'.$this->getUser()['$id'], $file['body']['message']); + + $file = $this->client->call(Client::METHOD_POST, '/storage/files', array_merge([ + 'content-type' => 'multipart/form-data', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'fileId' => 'unique()', + 'file' => new CURLFile(realpath(__DIR__ . '/../../../resources/logo.png'), 'image/png', 'permissions.png'), + 'folderId' => 'xyz', + 'write' => ['user:notme'] + ]); + + $this->assertEquals($file['headers']['status-code'], 400); + $this->assertStringStartsWith('Write permissions must be one of:', $file['body']['message']); + $this->assertStringContainsString('role:all', $file['body']['message']); + $this->assertStringContainsString('role:member', $file['body']['message']); + $this->assertStringContainsString('user:'.$this->getUser()['$id'], $file['body']['message']); + + $file = $this->client->call(Client::METHOD_POST, '/storage/files', array_merge([ + 'content-type' => 'multipart/form-data', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'fileId' => 'unique()', + 'file' => new CURLFile(realpath(__DIR__ . '/../../../resources/logo.png'), 'image/png', 'permissions.png'), + 'folderId' => 'xyz', + 'read' => ['user:notme'], + 'write' => ['user:notme'] + ]); + + $this->assertEquals($file['headers']['status-code'], 400); + $this->assertStringStartsWith('Read permissions must be one of:', $file['body']['message']); + $this->assertStringContainsString('role:all', $file['body']['message']); + $this->assertStringContainsString('role:member', $file['body']['message']); + $this->assertStringContainsString('user:'.$this->getUser()['$id'], $file['body']['message']); + } + + /** + * @depends testCreateFileDefaultPermissions + */ + public function testUpdateFileAbusePermissions(array $data): void + { + /** + * Test for FAILURE + */ + $file = $this->client->call(Client::METHOD_PUT, '/storage/files/' . $data['$id'], array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'read' => ['user:notme'] + ]); + + $this->assertEquals($file['headers']['status-code'], 400); + $this->assertStringStartsWith('Read permissions must be one of:', $file['body']['message']); + $this->assertStringContainsString('role:all', $file['body']['message']); + $this->assertStringContainsString('role:member', $file['body']['message']); + $this->assertStringContainsString('user:'.$this->getUser()['$id'], $file['body']['message']); + + $file = $this->client->call(Client::METHOD_PUT, '/storage/files/' . $data['$id'], array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'write' => ['user:notme'] + ]); + + $this->assertEquals($file['headers']['status-code'], 400); + $this->assertStringStartsWith('Write permissions must be one of:', $file['body']['message']); + $this->assertStringContainsString('role:all', $file['body']['message']); + $this->assertStringContainsString('role:member', $file['body']['message']); + $this->assertStringContainsString('user:'.$this->getUser()['$id'], $file['body']['message']); + + $file = $this->client->call(Client::METHOD_PUT, '/storage/files/' . $data['$id'], array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'read' => ['user:notme'], + 'write' => ['user:notme'] + ]); + + $this->assertEquals($file['headers']['status-code'], 400); + $this->assertStringStartsWith('Read permissions must be one of:', $file['body']['message']); + $this->assertStringContainsString('role:all', $file['body']['message']); + $this->assertStringContainsString('role:member', $file['body']['message']); + $this->assertStringContainsString('user:'.$this->getUser()['$id'], $file['body']['message']); } } \ No newline at end of file From 75a83e9b535c7d21c5d0aec274461f6a9b725668 Mon Sep 17 00:00:00 2001 From: kodumbeats Date: Fri, 10 Dec 2021 12:22:10 -0500 Subject: [PATCH 033/107] Harmonize offset param descriptions --- app/controllers/api/teams.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index 6c9ac4fd42..fbe7f0b4ba 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -115,7 +115,7 @@ App::get('/v1/teams') ->label('sdk.response.model', Response::MODEL_TEAM_LIST) ->param('search', '', new Text(256), 'Search term to filter results. Max length: 256 chars.', true) ->param('limit', 25, new Range(0, 100), 'Limit how many results will be returned. Returns up to 25 results by default. Maximum of 100 results allowed per request.', true) - ->param('offset', 0, new Range(0, 2000), 'Use this value to manage pagination. The default value is 0.', true) + ->param('offset', 0, new Range(0, 2000), 'Results offset. The default value is 0. Use this value to manage pagination.', true) ->param('orderType', 'ASC', new WhiteList(['ASC', 'DESC'], true), 'Order result by ASC or DESC order.', true) ->inject('response') ->inject('projectDB') @@ -537,7 +537,7 @@ App::get('/v1/teams/:teamId/memberships') ->param('teamId', '', new UID(), 'Unique team ID.') ->param('search', '', new Text(256), 'Search term to filter your results. Max length: 256 chars.', true) ->param('limit', 25, new Range(0, 100), 'Limit how many results will be returned. By default will return a maximum of 25 results. Maximum of 100 results allowed per request.', true) - ->param('offset', 0, new Range(0, 2000), 'Results offset. The default value is 0. Use this param to manage pagination.', true) + ->param('offset', 0, new Range(0, 2000), 'Results offset. The default value is 0. Use this value to manage pagination.', true) ->param('orderType', 'ASC', new WhiteList(['ASC', 'DESC'], true), 'Order results by ASC or DESC order.', true) ->inject('response') ->inject('projectDB') From ca821f398965d9d90268597d24758f113ef27d8e Mon Sep 17 00:00:00 2001 From: kodumbeats Date: Fri, 10 Dec 2021 12:23:20 -0500 Subject: [PATCH 034/107] Add missing period to doc --- docs/references/teams/update-team-membership-roles.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/references/teams/update-team-membership-roles.md b/docs/references/teams/update-team-membership-roles.md index 43e8a2a1ee..344d2875df 100644 --- a/docs/references/teams/update-team-membership-roles.md +++ b/docs/references/teams/update-team-membership-roles.md @@ -1 +1 @@ -Modify the roles of a team member. Only team members with the owner role have access to this endpoint. Learn more about [roles and permissions](/docs/permissions) \ No newline at end of file +Modify the roles of a team member. Only team members with the owner role have access to this endpoint. Learn more about [roles and permissions](/docs/permissions). \ No newline at end of file From aef6c113700e22d321267bbaf1c135e8237b933f Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Fri, 10 Dec 2021 18:52:33 +0100 Subject: [PATCH 035/107] fix(auth): use getRoles instead of static property --- app/controllers/api/account.php | 17 +++++++----- app/controllers/api/database.php | 12 ++++----- app/controllers/api/storage.php | 12 ++++----- app/controllers/api/teams.php | 12 ++++----- app/controllers/general.php | 2 +- app/controllers/shared/api.php | 9 ++++--- src/Appwrite/Auth/Auth.php | 10 ++++---- tests/unit/Auth/AuthTest.php | 44 ++++++++++++++++---------------- 8 files changed, 61 insertions(+), 57 deletions(-) diff --git a/app/controllers/api/account.php b/app/controllers/api/account.php index 5c86755813..d2e68b1144 100644 --- a/app/controllers/api/account.php +++ b/app/controllers/api/account.php @@ -648,8 +648,9 @@ App::post('/v1/account/sessions/magic-url') throw new Exception('SMTP Disabled', 503); } - $isPrivilegedUser = Auth::isPrivilegedUser(Authorization::$roles); - $isAppUser = Auth::isAppUser(Authorization::$roles); + $roles = Authorization::getRoles(); + $isPrivilegedUser = Auth::isPrivilegedUser($roles); + $isAppUser = Auth::isAppUser($roles); $user = $dbForInternal->findOne('users', [new Query('email', Query::TYPE_EQUAL, [$email])]); @@ -1780,8 +1781,9 @@ App::post('/v1/account/recovery') throw new Exception('SMTP Disabled', 503); } - $isPrivilegedUser = Auth::isPrivilegedUser(Authorization::$roles); - $isAppUser = Auth::isAppUser(Authorization::$roles); + $roles = Authorization::getRoles(); + $isPrivilegedUser = Auth::isPrivilegedUser($roles); + $isAppUser = Auth::isAppUser($roles); $email = \strtolower($email); $profile = $dbForInternal->findOne('users', [new Query('deleted', Query::TYPE_EQUAL, [false]), new Query('email', Query::TYPE_EQUAL, [$email])]); // Get user by email address @@ -1971,9 +1973,10 @@ App::post('/v1/account/verification') if(empty(App::getEnv('_APP_SMTP_HOST'))) { throw new Exception('SMTP Disabled', 503); } - - $isPrivilegedUser = Auth::isPrivilegedUser(Authorization::$roles); - $isAppUser = Auth::isAppUser(Authorization::$roles); + + $roles = Authorization::getRoles(); + $isPrivilegedUser = Auth::isPrivilegedUser($roles); + $isAppUser = Auth::isAppUser($roles); $verificationSecret = Auth::tokenGenerator(); diff --git a/app/controllers/api/database.php b/app/controllers/api/database.php index 8c4f2d20be..3759c63ad2 100644 --- a/app/controllers/api/database.php +++ b/app/controllers/api/database.php @@ -1641,17 +1641,17 @@ App::post('/v1/database/collections/:collectionId/documents') $data['$write'] = (is_null($write) && !$user->isEmpty()) ? ['user:'.$user->getId()] : $write ?? []; // By default set write permissions for user // Users can only add their roles to documents, API keys and Admin users can add any - $roles = \array_fill_keys(Authorization::getRoles(), true); // Auth::isAppUser expects roles to be keys, not values of assoc array + $roles = Authorization::getRoles(); if (!Auth::isAppUser($roles) && !Auth::isPrivilegedUser($roles)) { foreach ($data['$read'] as $read) { if (!Authorization::isRole($read)) { - throw new Exception('Read permissions must be one of: ('.\implode(', ', array_keys($roles)).')', 400); + throw new Exception('Read permissions must be one of: ('.\implode(', ', $roles).')', 400); } } foreach ($data['$write'] as $write) { if (!Authorization::isRole($write)) { - throw new Exception('Write permissions must be one of: ('.\implode(', ', array_keys($roles)).')', 400); + throw new Exception('Write permissions must be one of: ('.\implode(', ', $roles).')', 400); } } } @@ -2002,17 +2002,17 @@ App::patch('/v1/database/collections/:collectionId/documents/:documentId') $data['$write'] = (is_null($write)) ? ($document->getWrite() ?? []) : $write; // By default inherit write permissions // Users can only add their roles to documents, API keys and Admin users can add any - $roles = \array_fill_keys(Authorization::getRoles(), true); // Auth::isAppUser expects roles to be keys, not values of assoc array + $roles = Authorization::getRoles(); if (!Auth::isAppUser($roles) && !Auth::isPrivilegedUser($roles)) { foreach ($data['$read'] as $read) { if (!Authorization::isRole($read)) { - throw new Exception('Read permissions must be one of: ('.\implode(', ', array_keys($roles)).')', 400); + throw new Exception('Read permissions must be one of: ('.\implode(', ', $roles).')', 400); } } foreach ($data['$write'] as $write) { if (!Authorization::isRole($write)) { - throw new Exception('Write permissions must be one of: ('.\implode(', ', array_keys($roles)).')', 400); + throw new Exception('Write permissions must be one of: ('.\implode(', ', $roles).')', 400); } } } diff --git a/app/controllers/api/storage.php b/app/controllers/api/storage.php index 0522826af4..3e095f4d01 100644 --- a/app/controllers/api/storage.php +++ b/app/controllers/api/storage.php @@ -63,17 +63,17 @@ App::post('/v1/storage/files') $write = (is_null($write) && !$user->isEmpty()) ? ['user:'.$user->getId()] : $write ?? []; // Users can only add their roles to files, API keys and Admin users can add any - $roles = \array_fill_keys(Authorization::getRoles(), true); // Auth::isAppUser expects roles to be keys, not values of assoc array + $roles = Authorization::getRoles(); if (!Auth::isAppUser($roles) && !Auth::isPrivilegedUser($roles)) { foreach ($read as $role) { if (!Authorization::isRole($role)) { - throw new Exception('Read permissions must be one of: ('.\implode(', ', array_keys($roles)).')', 400); + throw new Exception('Read permissions must be one of: ('.\implode(', ', $roles).')', 400); } } foreach ($write as $role) { if (!Authorization::isRole($role)) { - throw new Exception('Write permissions must be one of: ('.\implode(', ', array_keys($roles)).')', 400); + throw new Exception('Write permissions must be one of: ('.\implode(', ', $roles).')', 400); } } } @@ -596,17 +596,17 @@ App::put('/v1/storage/files/:fileId') $write = (is_null($write) && !$user->isEmpty()) ? ['user:'.$user->getId()] : $write ?? []; // Users can only add their roles to files, API keys and Admin users can add any - $roles = \array_fill_keys(Authorization::getRoles(), true); // Auth::isAppUser expects roles to be keys, not values of assoc array + $roles = Authorization::getRoles(); if (!Auth::isAppUser($roles) && !Auth::isPrivilegedUser($roles)) { foreach ($read as $role) { if (!Authorization::isRole($role)) { - throw new Exception('Read permissions must be one of: ('.\implode(', ', array_keys($roles)).')', 400); + throw new Exception('Read permissions must be one of: ('.\implode(', ', $roles).')', 400); } } foreach ($write as $role) { if (!Authorization::isRole($role)) { - throw new Exception('Write permissions must be one of: ('.\implode(', ', array_keys($roles)).')', 400); + throw new Exception('Write permissions must be one of: ('.\implode(', ', $roles).')', 400); } } } diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index 5d8e1781b7..5b4476fb09 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -49,8 +49,8 @@ App::post('/v1/teams') Authorization::disable(); - $isPrivilegedUser = Auth::isPrivilegedUser(Authorization::$roles); - $isAppUser = Auth::isAppUser(Authorization::$roles); + $isPrivilegedUser = Auth::isPrivilegedUser(Authorization::getRoles()); + $isAppUser = Auth::isAppUser(Authorization::getRoles()); $teamId = $teamId == 'unique()' ? $dbForInternal->getId() : $teamId; $team = $dbForInternal->createDocument('teams', new Document([ @@ -293,8 +293,8 @@ App::post('/v1/teams/:teamId/memberships') throw new Exception('SMTP Disabled', 503); } - $isPrivilegedUser = Auth::isPrivilegedUser(Authorization::$roles); - $isAppUser = Auth::isAppUser(Authorization::$roles); + $isPrivilegedUser = Auth::isPrivilegedUser(Authorization::getRoles()); + $isAppUser = Auth::isAppUser(Authorization::getRoles()); $email = \strtolower($email); $name = (empty($name)) ? $email : $name; @@ -566,8 +566,8 @@ App::patch('/v1/teams/:teamId/memberships/:membershipId') throw new Exception('User not found', 404); } - $isPrivilegedUser = Auth::isPrivilegedUser(Authorization::$roles); - $isAppUser = Auth::isAppUser(Authorization::$roles); + $isPrivilegedUser = Auth::isPrivilegedUser(Authorization::getRoles()); + $isAppUser = Auth::isAppUser(Authorization::getRoles()); $isOwner = Authorization::isRole('team:'.$team->getId().'/owner');; if (!$isOwner && !$isPrivilegedUser && !$isAppUser) { // Not owner, not admin, not app (server) diff --git a/app/controllers/general.php b/app/controllers/general.php index 4d2c6b7135..e75b2f2164 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -254,7 +254,7 @@ App::init(function ($utopia, $request, $response, $console, $project, $dbForCons if(!empty($service)) { if(array_key_exists($service, $project->getAttribute('services',[])) && !$project->getAttribute('services',[])[$service] - && !Auth::isPrivilegedUser(Authorization::$roles)) { + && !Auth::isPrivilegedUser(Authorization::getRoles())) { throw new Exception('Service is disabled', 503); } } diff --git a/app/controllers/shared/api.php b/app/controllers/shared/api.php index 210cb46912..79f476c133 100644 --- a/app/controllers/shared/api.php +++ b/app/controllers/shared/api.php @@ -64,8 +64,9 @@ App::init(function ($utopia, $request, $response, $project, $user, $events, $aud ; } - $isPrivilegedUser = Auth::isPrivilegedUser(Authorization::$roles); - $isAppUser = Auth::isAppUser(Authorization::$roles); + $roles = Authorization::getRoles(); + $isPrivilegedUser = Auth::isPrivilegedUser($roles); + $isAppUser = Auth::isAppUser($roles); if (($abuse->check() // Route is rate-limited && App::getEnv('_APP_OPTIONS_ABUSE', 'enabled') !== 'disabled') // Abuse is not disabled @@ -128,8 +129,8 @@ App::init(function ($utopia, $request, $project) { $route = $utopia->match($request); - $isPrivilegedUser = Auth::isPrivilegedUser(Authorization::$roles); - $isAppUser = Auth::isAppUser(Authorization::$roles); + $isPrivilegedUser = Auth::isPrivilegedUser(Authorization::getRoles()); + $isAppUser = Auth::isAppUser(Authorization::getRoles()); if($isAppUser || $isPrivilegedUser) { // Skip limits for app and console devs return; diff --git a/src/Appwrite/Auth/Auth.php b/src/Appwrite/Auth/Auth.php index 2895b3db11..8ac5839ee0 100644 --- a/src/Appwrite/Auth/Auth.php +++ b/src/Appwrite/Auth/Auth.php @@ -242,9 +242,9 @@ class Auth public static function isPrivilegedUser(array $roles): bool { if ( - array_key_exists('role:'.self::USER_ROLE_OWNER, $roles) || - array_key_exists('role:'.self::USER_ROLE_DEVELOPER, $roles) || - array_key_exists('role:'.self::USER_ROLE_ADMIN, $roles) + in_array('role:'.self::USER_ROLE_OWNER, $roles) || + in_array('role:'.self::USER_ROLE_DEVELOPER, $roles) || + in_array('role:'.self::USER_ROLE_ADMIN, $roles) ) { return true; } @@ -261,7 +261,7 @@ class Auth */ public static function isAppUser(array $roles): bool { - if (array_key_exists('role:'.self::USER_ROLE_APP, $roles)) { + if (in_array('role:'.self::USER_ROLE_APP, $roles)) { return true; } @@ -278,7 +278,7 @@ class Auth { $roles = []; - if (!self::isPrivilegedUser(Authorization::$roles) && !self::isAppUser(Authorization::$roles)) { + if (!self::isPrivilegedUser(Authorization::getRoles()) && !self::isAppUser(Authorization::getRoles())) { if ($user->getId()) { $roles[] = 'user:'.$user->getId(); $roles[] = 'role:'.Auth::USER_ROLE_MEMBER; diff --git a/tests/unit/Auth/AuthTest.php b/tests/unit/Auth/AuthTest.php index c3eb711155..c3b9d00758 100644 --- a/tests/unit/Auth/AuthTest.php +++ b/tests/unit/Auth/AuthTest.php @@ -172,35 +172,35 @@ class AuthTest extends TestCase public function testIsPrivilegedUser() { $this->assertEquals(false, Auth::isPrivilegedUser([])); - $this->assertEquals(false, Auth::isPrivilegedUser(['role:'.Auth::USER_ROLE_GUEST => true])); - $this->assertEquals(false, Auth::isPrivilegedUser(['role:'.Auth::USER_ROLE_MEMBER => true])); - $this->assertEquals(true, Auth::isPrivilegedUser(['role:'.Auth::USER_ROLE_ADMIN => true])); - $this->assertEquals(true, Auth::isPrivilegedUser(['role:'.Auth::USER_ROLE_DEVELOPER => true])); - $this->assertEquals(true, Auth::isPrivilegedUser(['role:'.Auth::USER_ROLE_OWNER => true])); - $this->assertEquals(false, Auth::isPrivilegedUser(['role:'.Auth::USER_ROLE_APP => true])); - $this->assertEquals(false, Auth::isPrivilegedUser(['role:'.Auth::USER_ROLE_SYSTEM => true])); + $this->assertEquals(false, Auth::isPrivilegedUser(['role:'.Auth::USER_ROLE_GUEST])); + $this->assertEquals(false, Auth::isPrivilegedUser(['role:'.Auth::USER_ROLE_MEMBER])); + $this->assertEquals(true, Auth::isPrivilegedUser(['role:'.Auth::USER_ROLE_ADMIN])); + $this->assertEquals(true, Auth::isPrivilegedUser(['role:'.Auth::USER_ROLE_DEVELOPER])); + $this->assertEquals(true, Auth::isPrivilegedUser(['role:'.Auth::USER_ROLE_OWNER])); + $this->assertEquals(false, Auth::isPrivilegedUser(['role:'.Auth::USER_ROLE_APP])); + $this->assertEquals(false, Auth::isPrivilegedUser(['role:'.Auth::USER_ROLE_SYSTEM])); - $this->assertEquals(false, Auth::isPrivilegedUser(['role:'.Auth::USER_ROLE_APP => true, 'role:'.Auth::USER_ROLE_APP => true])); - $this->assertEquals(false, Auth::isPrivilegedUser(['role:'.Auth::USER_ROLE_APP => true, 'role:'.Auth::USER_ROLE_GUEST => true])); - $this->assertEquals(true, Auth::isPrivilegedUser(['role:'.Auth::USER_ROLE_OWNER => true, 'role:'.Auth::USER_ROLE_GUEST => true])); - $this->assertEquals(true, Auth::isPrivilegedUser(['role:'.Auth::USER_ROLE_OWNER => true, 'role:'.Auth::USER_ROLE_ADMIN => true, 'role:'.Auth::USER_ROLE_DEVELOPER => true])); + $this->assertEquals(false, Auth::isPrivilegedUser(['role:'.Auth::USER_ROLE_APP, 'role:'.Auth::USER_ROLE_APP])); + $this->assertEquals(false, Auth::isPrivilegedUser(['role:'.Auth::USER_ROLE_APP, 'role:'.Auth::USER_ROLE_GUEST])); + $this->assertEquals(true, Auth::isPrivilegedUser(['role:'.Auth::USER_ROLE_OWNER, 'role:'.Auth::USER_ROLE_GUEST])); + $this->assertEquals(true, Auth::isPrivilegedUser(['role:'.Auth::USER_ROLE_OWNER, 'role:'.Auth::USER_ROLE_ADMIN, 'role:'.Auth::USER_ROLE_DEVELOPER])); } public function testIsAppUser() { $this->assertEquals(false, Auth::isAppUser([])); - $this->assertEquals(false, Auth::isAppUser(['role:'.Auth::USER_ROLE_GUEST => true])); - $this->assertEquals(false, Auth::isAppUser(['role:'.Auth::USER_ROLE_MEMBER => true])); - $this->assertEquals(false, Auth::isAppUser(['role:'.Auth::USER_ROLE_ADMIN => true])); - $this->assertEquals(false, Auth::isAppUser(['role:'.Auth::USER_ROLE_DEVELOPER => true])); - $this->assertEquals(false, Auth::isAppUser(['role:'.Auth::USER_ROLE_OWNER => true])); - $this->assertEquals(true, Auth::isAppUser(['role:'.Auth::USER_ROLE_APP => true])); - $this->assertEquals(false, Auth::isAppUser(['role:'.Auth::USER_ROLE_SYSTEM => true])); + $this->assertEquals(false, Auth::isAppUser(['role:'.Auth::USER_ROLE_GUEST])); + $this->assertEquals(false, Auth::isAppUser(['role:'.Auth::USER_ROLE_MEMBER])); + $this->assertEquals(false, Auth::isAppUser(['role:'.Auth::USER_ROLE_ADMIN])); + $this->assertEquals(false, Auth::isAppUser(['role:'.Auth::USER_ROLE_DEVELOPER])); + $this->assertEquals(false, Auth::isAppUser(['role:'.Auth::USER_ROLE_OWNER])); + $this->assertEquals(true, Auth::isAppUser(['role:'.Auth::USER_ROLE_APP])); + $this->assertEquals(false, Auth::isAppUser(['role:'.Auth::USER_ROLE_SYSTEM])); - $this->assertEquals(true, Auth::isAppUser(['role:'.Auth::USER_ROLE_APP => true, 'role:'.Auth::USER_ROLE_APP => true])); - $this->assertEquals(true, Auth::isAppUser(['role:'.Auth::USER_ROLE_APP => true, 'role:'.Auth::USER_ROLE_GUEST => true])); - $this->assertEquals(false, Auth::isAppUser(['role:'.Auth::USER_ROLE_OWNER => true, 'role:'.Auth::USER_ROLE_GUEST => true])); - $this->assertEquals(false, Auth::isAppUser(['role:'.Auth::USER_ROLE_OWNER => true, 'role:'.Auth::USER_ROLE_ADMIN => true, 'role:'.Auth::USER_ROLE_DEVELOPER => true])); + $this->assertEquals(true, Auth::isAppUser(['role:'.Auth::USER_ROLE_APP, 'role:'.Auth::USER_ROLE_APP])); + $this->assertEquals(true, Auth::isAppUser(['role:'.Auth::USER_ROLE_APP, 'role:'.Auth::USER_ROLE_GUEST])); + $this->assertEquals(false, Auth::isAppUser(['role:'.Auth::USER_ROLE_OWNER, 'role:'.Auth::USER_ROLE_GUEST])); + $this->assertEquals(false, Auth::isAppUser(['role:'.Auth::USER_ROLE_OWNER, 'role:'.Auth::USER_ROLE_ADMIN, 'role:'.Auth::USER_ROLE_DEVELOPER])); } public function testGuestRoles() From 76bf24ac9b31236cc53cc171225be6549f0e362b Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Sat, 11 Dec 2021 02:17:28 +0200 Subject: [PATCH 036/107] Updated Youtube URL --- app/init.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/init.php b/app/init.php index 52cb48093d..84a9f81966 100644 --- a/app/init.php +++ b/app/init.php @@ -64,7 +64,7 @@ const APP_SOCIAL_DISCORD = 'https://appwrite.io/discord'; const APP_SOCIAL_DISCORD_CHANNEL = '564160730845151244'; const APP_SOCIAL_DEV = 'https://dev.to/appwrite'; const APP_SOCIAL_STACKSHARE = 'https://stackshare.io/appwrite'; -const APP_SOCIAL_YOUTUBE = 'https://www.youtube.com/c/appwrite'; +const APP_SOCIAL_YOUTUBE = 'https://www.youtube.com/c/appwrite?sub_confirmation=1'; // Deletion Types const DELETE_TYPE_DOCUMENT = 'document'; From 8a46713d8ec71ec6dbebee68497452f2a9a53e00 Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Sat, 11 Dec 2021 22:17:33 +0200 Subject: [PATCH 037/107] Updated our Twitter handle --- CONTRIBUTING.md | 4 ++-- README.md | 4 ++-- app/init.php | 4 ++-- app/tasks/sdks.php | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 01aa3d2ede..a1f9b50c77 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,7 +4,7 @@ We would ❤️ for you to contribute to Appwrite and help make it better! We wa ## How to Start? -If you are worried or don’t know where to start, check out our next section explaining what kind of help we could use and where can you get involved. You can reach out with questions to [Eldad Fux (@eldadfux)](https://twitter.com/eldadfux) or [@appwrite_io](https://twitter.com/appwrite_io) on Twitter, and anyone from the [Appwrite team on Discord](https://discord.gg/GSeTUeA). You can also submit an issue, and a maintainer can guide you! +If you are worried or don’t know where to start, check out our next section explaining what kind of help we could use and where can you get involved. You can reach out with questions to [Eldad Fux (@eldadfux)](https://twitter.com/eldadfux) or [@appwrite](https://twitter.com/appwrite) on Twitter, and anyone from the [Appwrite team on Discord](https://discord.gg/GSeTUeA). You can also submit an issue, and a maintainer can guide you! ## Code of Conduct @@ -395,7 +395,7 @@ Pull requests are great, but there are many other areas where you can help Appwr ### Blogging & Speaking -Blogging, speaking about, or creating tutorials about one of Appwrite’s many features. Mention [@appwrite_io](https://twitter.com/appwrite_io) on Twitter and/or [email team@appwrite.io](mailto:team@appwrite.io) so we can give pointers and tips and help you spread the word by promoting your content on the different Appwrite communication channels. Please add your blog posts and videos of talks to our [Awesome Appwrite](https://github.com/appwrite/awesome-appwrite) repo on GitHub. +Blogging, speaking about, or creating tutorials about one of Appwrite’s many features. Mention [@appwrite](https://twitter.com/appwrite) on Twitter and/or [email team@appwrite.io](mailto:team@appwrite.io) so we can give pointers and tips and help you spread the word by promoting your content on the different Appwrite communication channels. Please add your blog posts and videos of talks to our [Awesome Appwrite](https://github.com/appwrite/awesome-appwrite) repo on GitHub. ### Presenting at Meetups diff --git a/README.md b/README.md index 5d2652cf19..d61a286fb8 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ [![Discord](https://img.shields.io/discord/564160730845151244?label=discord&style=flat-square)](https://appwrite.io/discord?r=Github) [![Docker Pulls](https://img.shields.io/docker/pulls/appwrite/appwrite?color=f02e65&style=flat-square)](https://hub.docker.com/r/appwrite/appwrite) [![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) +[![Twitter Account](https://img.shields.io/twitter/follow/appwrite?color=00acee&label=twitter&style=flat-square)](https://twitter.com/appwrite) [![Translate](https://img.shields.io/badge/translate-f02e65?style=flat-square)](docs/tutorials/add-translations.md) @@ -155,7 +155,7 @@ For security issues, kindly email us at [security@appwrite.io](mailto:security@a ## Follow Us -Join our growing community around the world! See our official [Blog](https://medium.com/appwrite-io). Follow us on [Twitter](https://twitter.com/appwrite_io), [Facebook Page](https://www.facebook.com/appwrite.io), [Facebook Group](https://www.facebook.com/groups/appwrite.developers/) , [Dev Community](https://dev.to/appwrite) or join our live [Discord server](https://discord.gg/GSeTUeA) for more help, ideas, and discussions. +Join our growing community around the world! See our official [Blog](https://medium.com/appwrite-io). Follow us on [Twitter](https://twitter.com/appwrite), [Facebook Page](https://www.facebook.com/appwrite.io), [Facebook Group](https://www.facebook.com/groups/appwrite.developers/) , [Dev Community](https://dev.to/appwrite) or join our live [Discord server](https://discord.gg/GSeTUeA) for more help, ideas, and discussions. ## License diff --git a/app/init.php b/app/init.php index 7461116bc0..26e291b82c 100644 --- a/app/init.php +++ b/app/init.php @@ -54,8 +54,8 @@ const APP_STORAGE_FUNCTIONS = '/storage/functions'; const APP_STORAGE_CACHE = '/storage/cache'; const APP_STORAGE_CERTIFICATES = '/storage/certificates'; const APP_STORAGE_CONFIG = '/storage/config'; -const APP_SOCIAL_TWITTER = 'https://twitter.com/appwrite_io'; -const APP_SOCIAL_TWITTER_HANDLE = 'appwrite_io'; +const APP_SOCIAL_TWITTER = 'https://twitter.com/appwrite'; +const APP_SOCIAL_TWITTER_HANDLE = 'appwrite'; const APP_SOCIAL_FACEBOOK = 'https://www.facebook.com/appwrite.io'; const APP_SOCIAL_LINKEDIN = 'https://www.linkedin.com/company/appwrite'; const APP_SOCIAL_INSTAGRAM = 'https://www.instagram.com/appwrite.io'; diff --git a/app/tasks/sdks.php b/app/tasks/sdks.php index fa17c25855..2517d526d3 100644 --- a/app/tasks/sdks.php +++ b/app/tasks/sdks.php @@ -180,7 +180,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ->setShareText('Appwrite is a backend as a service for building web or mobile apps') ->setShareURL('http://appwrite.io') ->setShareTags('JS,javascript,reactjs,angular,ios,android,serverless') - ->setShareVia('appwrite_io') + ->setShareVia('appwrite') ->setWarning($warning) ->setReadme($readme) ->setGettingStarted($gettingStarted) From 624c18c0bf076e54f18da7164b6ed7c896f635ac Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Sun, 12 Dec 2021 18:05:33 +0200 Subject: [PATCH 038/107] Updated og image --- app/views/layouts/default.phtml | 2 +- public/images/ogimage.png | Bin 0 -> 676279 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 public/images/ogimage.png diff --git a/app/views/layouts/default.phtml b/app/views/layouts/default.phtml index c6c0de795e..3b7445e9bc 100644 --- a/app/views/layouts/default.phtml +++ b/app/views/layouts/default.phtml @@ -10,7 +10,7 @@ $litespeed = $this->getParam('litespeed', true); $analytics = $this->getParam('analytics', 'UA-26264668-9'); $mode = $this->getParam('mode', ''); $canonical = $this->getParam('canonical', ''); -$image = $this->getParam('image', '/images/logo.png'); +$image = $this->getParam('image', '/images/ogimage.png'); $locale = $this->getParam('locale', null); $runtimes = $this->getParam('runtimes', null); diff --git a/public/images/ogimage.png b/public/images/ogimage.png new file mode 100644 index 0000000000000000000000000000000000000000..1b356dbbd5df8f12f8d2dacca5b9eb5675214af6 GIT binary patch literal 676279 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%0AD>7i+=dSpPY&#@8R*s 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 TdfkJGDOD6fok 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

6L~G(PyR0(>h<+WYrfX7?xghL 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 a+5ZGf32UKyZ2tEE0000xvC literal 0 HcmV?d00001 From 0f9ef59fdaef6ed2c587c48ad71a62a0961a9475 Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Sun, 12 Dec 2021 19:01:14 +0200 Subject: [PATCH 039/107] Updated logo --- app/views/layouts/default.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/layouts/default.phtml b/app/views/layouts/default.phtml index 3b7445e9bc..c9514d2ec3 100644 --- a/app/views/layouts/default.phtml +++ b/app/views/layouts/default.phtml @@ -10,7 +10,7 @@ $litespeed = $this->getParam('litespeed', true); $analytics = $this->getParam('analytics', 'UA-26264668-9'); $mode = $this->getParam('mode', ''); $canonical = $this->getParam('canonical', ''); -$image = $this->getParam('image', '/images/ogimage.png'); +$image = $this->getParam('image', '/images/logo.png'); $locale = $this->getParam('locale', null); $runtimes = $this->getParam('runtimes', null); From 2b9f4667f7497150450cf8c573eeacc705936bda Mon Sep 17 00:00:00 2001 From: Christy Jacob Date: Sun, 12 Dec 2021 21:46:41 +0400 Subject: [PATCH 040/107] feat: add the termnial user agent --- app/views/console/users/user.phtml | 4 +++- src/Appwrite/Detector/Detector.php | 13 ++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/app/views/console/users/user.phtml b/app/views/console/users/user.phtml index 3d78e77f92..fd5a1264b5 100644 --- a/app/views/console/users/user.phtml +++ b/app/views/console/users/user.phtml @@ -323,7 +323,9 @@

- + + +
diff --git a/src/Appwrite/Detector/Detector.php b/src/Appwrite/Detector/Detector.php index 75c4387244..95daaba598 100644 --- a/src/Appwrite/Detector/Detector.php +++ b/src/Appwrite/Detector/Detector.php @@ -47,7 +47,18 @@ class Detector */ public function getClient(): array { - $client = $this->getDetector()->getClient(); + if (strpos($this->userAgent, 'Terminal') !== false) { + $version = explode(' ', $this->userAgent)[0]; + $version = explode('/', $version)[1]; + $client = [ + 'type' => 'desktop', + 'short_name' => 'terminal', + 'name' => 'Terminal', + 'version' => $version + ]; + } else { + $client = $this->getDetector()->getClient(); + } return [ 'clientType' => (isset($client['type'])) ? $client['type'] : '', From 3d863d634a0ae44a274df6710551edd5e185551c Mon Sep 17 00:00:00 2001 From: Christy Jacob Date: Sun, 12 Dec 2021 21:55:38 +0400 Subject: [PATCH 041/107] feat: use Appwrite\Detector in users.php --- app/controllers/api/users.php | 49 +++++++++++------------------- src/Appwrite/Detector/Detector.php | 12 ++++++++ 2 files changed, 30 insertions(+), 31 deletions(-) diff --git a/app/controllers/api/users.php b/app/controllers/api/users.php index a5d412d5b6..229336fb95 100644 --- a/app/controllers/api/users.php +++ b/app/controllers/api/users.php @@ -15,7 +15,7 @@ use Utopia\Audit\Audit; use Utopia\Database\Document; use Utopia\Database\Exception\Duplicate; use Utopia\Database\Validator\UID; -use DeviceDetector\DeviceDetector; +use Appwrite\Detector\Detector; use Appwrite\Database\Validator\CustomId; use Utopia\Config\Config; use Utopia\Database\Database; @@ -306,42 +306,29 @@ App::get('/v1/users/:userId/logs') foreach ($logs as $i => &$log) { $log['userAgent'] = (!empty($log['userAgent'])) ? $log['userAgent'] : 'UNKNOWN'; - $dd = new DeviceDetector($log['userAgent']); + $detector = new Detector($log['userAgent']); + $detector->skipBotDetection(); // OPTIONAL: If called, bot detection will completely be skipped (bots will be detected as regular devices then) - $dd->skipBotDetection(); // OPTIONAL: If called, bot detection will completely be skipped (bots will be detected as regular devices then) - - $dd->parse(); - - $os = $dd->getOs(); - $osCode = (isset($os['short_name'])) ? $os['short_name'] : ''; - $osName = (isset($os['name'])) ? $os['name'] : ''; - $osVersion = (isset($os['version'])) ? $os['version'] : ''; - - $client = $dd->getClient(); - $clientType = (isset($client['type'])) ? $client['type'] : ''; - $clientCode = (isset($client['short_name'])) ? $client['short_name'] : ''; - $clientName = (isset($client['name'])) ? $client['name'] : ''; - $clientVersion = (isset($client['version'])) ? $client['version'] : ''; - $clientEngine = (isset($client['engine'])) ? $client['engine'] : ''; - $clientEngineVersion = (isset($client['engine_version'])) ? $client['engine_version'] : ''; + $os = $detector->getOS(); + $client = $detector->getClient(); + $device = $detector->getDevice(); $output[$i] = new Document([ 'event' => $log['event'], 'ip' => $log['ip'], 'time' => $log['time'], - - 'osCode' => $osCode, - 'osName' => $osName, - 'osVersion' => $osVersion, - 'clientType' => $clientType, - 'clientCode' => $clientCode, - 'clientName' => $clientName, - 'clientVersion' => $clientVersion, - 'clientEngine' => $clientEngine, - 'clientEngineVersion' => $clientEngineVersion, - 'deviceName' => $dd->getDeviceName(), - 'deviceBrand' => $dd->getBrandName(), - 'deviceModel' => $dd->getModel(), + 'osCode' => $os['osCode'], + 'osName' => $os['osName'], + 'osVersion' => $os['osVersion'], + 'clientType' => $client['clientType'], + 'clientCode' => $client['clientCode'], + 'clientName' => $client['clientName'], + 'clientVersion' => $client['clientVersion'], + 'clientEngine' => $client['clientEngine'], + 'clientEngineVersion' => $client['clientEngineVersion'], + 'deviceName' => $device['deviceName'], + 'deviceBrand' => $device['deviceBrand'], + 'deviceModel' => $device['deviceModel'], ]); $record = $geodb->get($log['ip']); diff --git a/src/Appwrite/Detector/Detector.php b/src/Appwrite/Detector/Detector.php index 95daaba598..3e1aa0f3df 100644 --- a/src/Appwrite/Detector/Detector.php +++ b/src/Appwrite/Detector/Detector.php @@ -97,4 +97,16 @@ class Detector return $this->detctor; } + + /** + * Sets whether to skip bot detection. + * It is needed if we want bots to be processed as a simple clients. So we can detect if it is mobile client, + * or desktop, or enything else. By default all this information is not retrieved for the bots. + * + * @param bool $skip + */ + public function skipBotDetection(bool $skip = true): void + { + $this->getDetector()->skipBotDetection($skip); + } } From 9845fc05fa520bef4f161c41f84ec329a7384470 Mon Sep 17 00:00:00 2001 From: Christy Jacob Date: Sun, 12 Dec 2021 21:58:17 +0400 Subject: [PATCH 042/107] feat: use Appwrite\Detector in database.php --- app/controllers/api/database.php | 49 ++++++++++++-------------------- 1 file changed, 18 insertions(+), 31 deletions(-) diff --git a/app/controllers/api/database.php b/app/controllers/api/database.php index d60d055912..a1e0780f19 100644 --- a/app/controllers/api/database.php +++ b/app/controllers/api/database.php @@ -32,7 +32,7 @@ use Appwrite\Network\Validator\Email; use Appwrite\Network\Validator\IP; use Appwrite\Network\Validator\URL; use Appwrite\Utopia\Response; -use DeviceDetector\DeviceDetector; +use Appwrite\Detector\Detector; /** * Create attribute of varying type @@ -529,24 +529,12 @@ App::get('/v1/database/collections/:collectionId/logs') foreach ($logs as $i => &$log) { $log['userAgent'] = (!empty($log['userAgent'])) ? $log['userAgent'] : 'UNKNOWN'; - $dd = new DeviceDetector($log['userAgent']); + $detector = new Detector($log['userAgent']); + $detector->skipBotDetection(); // OPTIONAL: If called, bot detection will completely be skipped (bots will be detected as regular devices then) - $dd->skipBotDetection(); // OPTIONAL: If called, bot detection will completely be skipped (bots will be detected as regular devices then) - - $dd->parse(); - - $os = $dd->getOs(); - $osCode = (isset($os['short_name'])) ? $os['short_name'] : ''; - $osName = (isset($os['name'])) ? $os['name'] : ''; - $osVersion = (isset($os['version'])) ? $os['version'] : ''; - - $client = $dd->getClient(); - $clientType = (isset($client['type'])) ? $client['type'] : ''; - $clientCode = (isset($client['short_name'])) ? $client['short_name'] : ''; - $clientName = (isset($client['name'])) ? $client['name'] : ''; - $clientVersion = (isset($client['version'])) ? $client['version'] : ''; - $clientEngine = (isset($client['engine'])) ? $client['engine'] : ''; - $clientEngineVersion = (isset($client['engine_version'])) ? $client['engine_version'] : ''; + $os = $detector->getOS(); + $client = $detector->getClient(); + $device = $detector->getDevice(); $output[$i] = new Document([ 'event' => $log['event'], @@ -556,19 +544,18 @@ App::get('/v1/database/collections/:collectionId/logs') 'mode' => $log['data']['mode'] ?? null, 'ip' => $log['ip'], 'time' => $log['time'], - - 'osCode' => $osCode, - 'osName' => $osName, - 'osVersion' => $osVersion, - 'clientType' => $clientType, - 'clientCode' => $clientCode, - 'clientName' => $clientName, - 'clientVersion' => $clientVersion, - 'clientEngine' => $clientEngine, - 'clientEngineVersion' => $clientEngineVersion, - 'deviceName' => $dd->getDeviceName(), - 'deviceBrand' => $dd->getBrandName(), - 'deviceModel' => $dd->getModel(), + 'osCode' => $os['osCode'], + 'osName' => $os['osName'], + 'osVersion' => $os['osVersion'], + 'clientType' => $client['clientType'], + 'clientCode' => $client['clientCode'], + 'clientName' => $client['clientName'], + 'clientVersion' => $client['clientVersion'], + 'clientEngine' => $client['clientEngine'], + 'clientEngineVersion' => $client['clientEngineVersion'], + 'deviceName' => $device['deviceName'], + 'deviceBrand' => $device['deviceBrand'], + 'deviceModel' => $device['deviceModel'], ]); $record = $geodb->get($log['ip']); From 854e9f7eaf70307cc068993ac1bcf5c62a44653b Mon Sep 17 00:00:00 2001 From: Christy Jacob Date: Sun, 12 Dec 2021 21:59:12 +0400 Subject: [PATCH 043/107] feat: use Appwrite\Detector in database.php --- app/controllers/api/database.php | 49 ++++++++++++-------------------- app/controllers/api/users.php | 2 +- 2 files changed, 19 insertions(+), 32 deletions(-) diff --git a/app/controllers/api/database.php b/app/controllers/api/database.php index a1e0780f19..63c6607bb6 100644 --- a/app/controllers/api/database.php +++ b/app/controllers/api/database.php @@ -555,7 +555,7 @@ App::get('/v1/database/collections/:collectionId/logs') 'clientEngineVersion' => $client['clientEngineVersion'], 'deviceName' => $device['deviceName'], 'deviceBrand' => $device['deviceBrand'], - 'deviceModel' => $device['deviceModel'], + 'deviceModel' => $device['deviceModel'] ]); $record = $geodb->get($log['ip']); @@ -1861,24 +1861,12 @@ App::get('/v1/database/collections/:collectionId/documents/:documentId/logs') foreach ($logs as $i => &$log) { $log['userAgent'] = (!empty($log['userAgent'])) ? $log['userAgent'] : 'UNKNOWN'; - $dd = new DeviceDetector($log['userAgent']); + $detector = new Detector($log['userAgent']); + $detector->skipBotDetection(); // OPTIONAL: If called, bot detection will completely be skipped (bots will be detected as regular devices then) - $dd->skipBotDetection(); // OPTIONAL: If called, bot detection will completely be skipped (bots will be detected as regular devices then) - - $dd->parse(); - - $os = $dd->getOs(); - $osCode = (isset($os['short_name'])) ? $os['short_name'] : ''; - $osName = (isset($os['name'])) ? $os['name'] : ''; - $osVersion = (isset($os['version'])) ? $os['version'] : ''; - - $client = $dd->getClient(); - $clientType = (isset($client['type'])) ? $client['type'] : ''; - $clientCode = (isset($client['short_name'])) ? $client['short_name'] : ''; - $clientName = (isset($client['name'])) ? $client['name'] : ''; - $clientVersion = (isset($client['version'])) ? $client['version'] : ''; - $clientEngine = (isset($client['engine'])) ? $client['engine'] : ''; - $clientEngineVersion = (isset($client['engine_version'])) ? $client['engine_version'] : ''; + $os = $detector->getOS(); + $client = $detector->getClient(); + $device = $detector->getDevice(); $output[$i] = new Document([ 'event' => $log['event'], @@ -1888,19 +1876,18 @@ App::get('/v1/database/collections/:collectionId/documents/:documentId/logs') 'mode' => $log['data']['mode'] ?? null, 'ip' => $log['ip'], 'time' => $log['time'], - - 'osCode' => $osCode, - 'osName' => $osName, - 'osVersion' => $osVersion, - 'clientType' => $clientType, - 'clientCode' => $clientCode, - 'clientName' => $clientName, - 'clientVersion' => $clientVersion, - 'clientEngine' => $clientEngine, - 'clientEngineVersion' => $clientEngineVersion, - 'deviceName' => $dd->getDeviceName(), - 'deviceBrand' => $dd->getBrandName(), - 'deviceModel' => $dd->getModel(), + 'osCode' => $os['osCode'], + 'osName' => $os['osName'], + 'osVersion' => $os['osVersion'], + 'clientType' => $client['clientType'], + 'clientCode' => $client['clientCode'], + 'clientName' => $client['clientName'], + 'clientVersion' => $client['clientVersion'], + 'clientEngine' => $client['clientEngine'], + 'clientEngineVersion' => $client['clientEngineVersion'], + 'deviceName' => $device['deviceName'], + 'deviceBrand' => $device['deviceBrand'], + 'deviceModel' => $device['deviceModel'] ]); $record = $geodb->get($log['ip']); diff --git a/app/controllers/api/users.php b/app/controllers/api/users.php index 229336fb95..ae56eb63a0 100644 --- a/app/controllers/api/users.php +++ b/app/controllers/api/users.php @@ -328,7 +328,7 @@ App::get('/v1/users/:userId/logs') 'clientEngineVersion' => $client['clientEngineVersion'], 'deviceName' => $device['deviceName'], 'deviceBrand' => $device['deviceBrand'], - 'deviceModel' => $device['deviceModel'], + 'deviceModel' => $device['deviceModel'] ]); $record = $geodb->get($log['ip']); From d2809d998013e30c86e4feba53ae00b5dea5ff20 Mon Sep 17 00:00:00 2001 From: Christy Jacob Date: Sun, 12 Dec 2021 22:07:24 +0400 Subject: [PATCH 044/107] feat: display terminal icon in logs --- app/views/console/users/user.phtml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/views/console/users/user.phtml b/app/views/console/users/user.phtml index fd5a1264b5..10fa9a6935 100644 --- a/app/views/console/users/user.phtml +++ b/app/views/console/users/user.phtml @@ -392,7 +392,10 @@ - + + + +
Unknown
From fbb5696f89d4e31a0fbc6a21209692f7dbbaf03e Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Mon, 13 Dec 2021 10:29:50 +0100 Subject: [PATCH 045/107] Update src/Appwrite/Messaging/Adapter/Realtime.php Co-authored-by: kodumbeats --- src/Appwrite/Messaging/Adapter/Realtime.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Appwrite/Messaging/Adapter/Realtime.php b/src/Appwrite/Messaging/Adapter/Realtime.php index 71738e42ba..8fb3ad4aa5 100644 --- a/src/Appwrite/Messaging/Adapter/Realtime.php +++ b/src/Appwrite/Messaging/Adapter/Realtime.php @@ -233,7 +233,7 @@ class Realtime extends Adapter } /** - * Creae channels array based on the event name and payload. + * Create channels array based on the event name and payload. * * @param string $event * @param Document $payload From b15096421b365a4588c554d5415ec7d3af0efb32 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Mon, 13 Dec 2021 11:10:03 +0100 Subject: [PATCH 046/107] Update app/controllers/api/database.php Co-authored-by: Eldad A. Fux --- app/controllers/api/database.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/api/database.php b/app/controllers/api/database.php index 7bff2d9392..1229f0bccd 100644 --- a/app/controllers/api/database.php +++ b/app/controllers/api/database.php @@ -773,7 +773,7 @@ App::post('/v1/database/collections/:collectionId/attributes/email') ->label('sdk.response.code', Response::STATUS_CODE_CREATED) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_ATTRIBUTE_EMAIL) - ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https:///docs/server/database#createCollection).') + ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') ->param('attributeId', '', new Key(), 'Attribute ID.') ->param('required', null, new Boolean(), 'Is attribute required?') ->param('default', null, new Email(), 'Default value for attribute when not provided. Cannot be set when attribute is required.', true) From 8fbb6d10570d3aaa9022bf69bbc2de7b5806c197 Mon Sep 17 00:00:00 2001 From: Christy Jacob Date: Mon, 13 Dec 2021 14:37:05 +0400 Subject: [PATCH 047/107] feat: update user agent name to Appwrite CLI --- src/Appwrite/Detector/Detector.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Appwrite/Detector/Detector.php b/src/Appwrite/Detector/Detector.php index 3e1aa0f3df..55954fd9f6 100644 --- a/src/Appwrite/Detector/Detector.php +++ b/src/Appwrite/Detector/Detector.php @@ -47,7 +47,7 @@ class Detector */ public function getClient(): array { - if (strpos($this->userAgent, 'Terminal') !== false) { + if (strpos($this->userAgent, 'Appwrite CLI') !== false) { $version = explode(' ', $this->userAgent)[0]; $version = explode('/', $version)[1]; $client = [ From 79e9298e9b84e0ecd1b85cd1ae3aade96518a947 Mon Sep 17 00:00:00 2001 From: Christy Jacob Date: Mon, 13 Dec 2021 15:19:47 +0400 Subject: [PATCH 048/107] feat: update user agent name to Appwrite CLI --- app/views/console/users/user.phtml | 8 ++++---- src/Appwrite/Detector/Detector.php | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/views/console/users/user.phtml b/app/views/console/users/user.phtml index 10fa9a6935..98845b89d6 100644 --- a/app/views/console/users/user.phtml +++ b/app/views/console/users/user.phtml @@ -323,9 +323,9 @@
- + - +
@@ -392,9 +392,9 @@ - + - +
Unknown
diff --git a/src/Appwrite/Detector/Detector.php b/src/Appwrite/Detector/Detector.php index 55954fd9f6..186bd8ff47 100644 --- a/src/Appwrite/Detector/Detector.php +++ b/src/Appwrite/Detector/Detector.php @@ -52,8 +52,8 @@ class Detector $version = explode('/', $version)[1]; $client = [ 'type' => 'desktop', - 'short_name' => 'terminal', - 'name' => 'Terminal', + 'short_name' => 'cli', + 'name' => 'Appwrite CLI', 'version' => $version ]; } else { From 6c6992a3f72ed3ee183888b9bfd2b27aed9ec7f4 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Mon, 13 Dec 2021 13:42:04 +0100 Subject: [PATCH 049/107] feat(database): add colection enable/disable --- app/config/collections.php | 11 +++++ app/config/specs/0.12.x.client.json | 2 +- app/config/specs/0.12.x.console.json | 2 +- app/config/specs/0.12.x.server.json | 2 +- app/controllers/api/database.php | 40 +++++++++++++------ .../examples/functions/list-runtimes.md | 14 +++++++ .../console-web/examples/projects/delete.md | 2 +- .../Utopia/Response/Model/Collection.php | 6 +++ 8 files changed, 62 insertions(+), 17 deletions(-) create mode 100644 docs/examples/0.12.x/console-web/examples/functions/list-runtimes.md diff --git a/app/config/collections.php b/app/config/collections.php index a5face465b..30d9b79fbb 100644 --- a/app/config/collections.php +++ b/app/config/collections.php @@ -43,6 +43,17 @@ $collections = [ 'array' => false, 'filters' => [], ], + [ + '$id' => 'enabled', + 'type' => Database::VAR_BOOLEAN, + 'signed' => true, + 'size' => 0, + 'format' => '', + 'filters' => [], + 'required' => true, + 'default' => null, + 'array' => false, + ], [ '$id' => 'permission', 'type' => Database::VAR_STRING, diff --git a/app/config/specs/0.12.x.client.json b/app/config/specs/0.12.x.client.json index 195c76530d..1e2165c018 100644 --- a/app/config/specs/0.12.x.client.json +++ b/app/config/specs/0.12.x.client.json @@ -1 +1 @@ -{"swagger":"2.0","info":{"version":"0.12.0","title":"Appwrite","description":"Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)","termsOfService":"https:\/\/appwrite.io\/policy\/terms","contact":{"name":"Appwrite Team","url":"https:\/\/appwrite.io\/support","email":"team@appwrite.io"},"license":{"name":"BSD-3-Clause","url":"https:\/\/raw.githubusercontent.com\/appwrite\/appwrite\/master\/LICENSE"}},"host":"appwrite.io","basePath":"\/v1","schemes":["https"],"consumes":["application\/json","multipart\/form-data"],"produces":["application\/json"],"securityDefinitions":{"Project":{"type":"apiKey","name":"X-Appwrite-Project","description":"Your project ID","in":"header","x-appwrite":{"demo":"5df5acd0d48c2"}},"JWT":{"type":"apiKey","name":"X-Appwrite-JWT","description":"Your secret JSON Web Token","in":"header","x-appwrite":{"demo":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."}},"Locale":{"type":"apiKey","name":"X-Appwrite-Locale","description":"","in":"header","x-appwrite":{"demo":"en"}}},"paths":{"\/account":{"get":{"summary":"Get Account","operationId":"accountGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user data as JSON object.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"get","weight":47,"cookies":false,"type":"","demo":"account\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]},"post":{"summary":"Create Account","operationId":"accountCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to allow a new user to register a new account in your project. After the user registration completes successfully, you can use the [\/account\/verfication](\/docs\/client\/account#accountCreateVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](\/docs\/client\/account#accountCreateSession).","responses":{"201":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"create","weight":37,"cookies":false,"type":"","demo":"account\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be between 6 to 32 chars.","default":null,"x-example":"password"},"name":{"type":"string","description":"User name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["userId","email","password"]}}]},"delete":{"summary":"Delete Account","operationId":"accountDelete","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Delete a currently logged in user account. Behind the scene, the user record is not deleted but permanently blocked from any access. This is done to avoid deleted accounts being overtaken by new users with the same email address. Any user-related resources like documents or storage files should be deleted separately.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":56,"cookies":false,"type":"","demo":"account\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/account\/email":{"patch":{"summary":"Update Account Email","operationId":"accountUpdateEmail","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account email address. After changing user address, user confirmation status is being reset and a new confirmation mail is sent. For security measures, user password is required to complete this request.\nThis endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateEmail","weight":54,"cookies":false,"type":"","demo":"account\/update-email.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-email.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be between 6 to 32 chars.","default":null,"x-example":"password"}},"required":["email","password"]}}]}},"\/account\/jwt":{"post":{"summary":"Create Account JWT","operationId":"accountCreateJWT","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to create a JSON Web Token. You can use the resulting JWT to authenticate on behalf of the current user when working with the Appwrite server-side API and SDKs. The JWT secret is valid for 15 minutes from its creation and will be invalid if the user will logout in that time frame.","responses":{"201":{"description":"JWT","schema":{"$ref":"#\/definitions\/jwt"}}},"x-appwrite":{"method":"createJWT","weight":46,"cookies":false,"type":"","demo":"account\/create-j-w-t.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-jwt.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{userId}","scope":"account","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}]}},"\/account\/logs":{"get":{"summary":"Get Account Logs","operationId":"accountGetLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user list of latest security activity logs. Each log returns user IP address, location and date and time of log.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"getLogs","weight":50,"cookies":false,"type":"","demo":"account\/get-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"limit","description":"Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/account\/name":{"patch":{"summary":"Update Account Name","operationId":"accountUpdateName","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account name.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateName","weight":52,"cookies":false,"type":"","demo":"account\/update-name.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-name.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"User name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]}},"\/account\/password":{"patch":{"summary":"Update Account Password","operationId":"accountUpdatePassword","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user password. For validation, user is required to pass in the new password, and the old password. For users created with OAuth and Team Invites, oldPassword is optional.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePassword","weight":53,"cookies":false,"type":"","demo":"account\/update-password.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-password.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"password":{"type":"string","description":"New user password. Must be between 6 to 32 chars.","default":null,"x-example":"password"},"oldPassword":{"type":"string","description":"Old user password. Must be between 6 to 32 chars.","default":"","x-example":"password"}},"required":["password"]}}]}},"\/account\/prefs":{"get":{"summary":"Get Account Preferences","operationId":"accountGetPrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user preferences as a key-value object.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"getPrefs","weight":48,"cookies":false,"type":"","demo":"account\/get-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]},"patch":{"summary":"Update Account Preferences","operationId":"accountUpdatePrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account preferences. You can pass only the specific settings you wish to update.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePrefs","weight":55,"cookies":false,"type":"","demo":"account\/update-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"prefs":{"type":"object","description":"Prefs key-value JSON object.","default":{},"x-example":"{}"}},"required":["prefs"]}}]}},"\/account\/recovery":{"post":{"summary":"Create Password Recovery","operationId":"accountCreateRecovery","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Sends the user an email with a temporary secret key for password reset. When the user clicks the confirmation link he is redirected back to your app password reset URL with the secret key and email address values attached to the URL query string. Use the query string params to submit a request to the [PUT \/account\/recovery](\/docs\/client\/account#accountUpdateRecovery) endpoint to complete the process. The verification link sent to the user's email address is valid for 1 hour.","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createRecovery","weight":59,"cookies":false,"type":"","demo":"account\/create-recovery.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-recovery.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"url":{"type":"string","description":"URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"}},"required":["email","url"]}}]},"put":{"summary":"Create Password Recovery (confirmation)","operationId":"accountUpdateRecovery","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/recovery](\/docs\/client\/account#accountCreateRecovery) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.","responses":{"200":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"updateRecovery","weight":60,"cookies":false,"type":"","demo":"account\/update-recovery.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-recovery.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User account UID address.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Valid reset token.","default":null,"x-example":"[SECRET]"},"password":{"type":"string","description":"New password. Must be between 6 to 32 chars.","default":null,"x-example":"password"},"passwordAgain":{"type":"string","description":"New password again. Must be between 6 to 32 chars.","default":null,"x-example":"password"}},"required":["userId","secret","password","passwordAgain"]}}]}},"\/account\/sessions":{"get":{"summary":"Get Account Sessions","operationId":"accountGetSessions","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user list of active sessions across different devices.","responses":{"200":{"description":"Sessions List","schema":{"$ref":"#\/definitions\/sessionList"}}},"x-appwrite":{"method":"getSessions","weight":49,"cookies":false,"type":"","demo":"account\/get-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]},"post":{"summary":"Create Account Session","operationId":"accountCreateSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Allow the user to login into their account by providing a valid email and password combination. This route will create a new session for the user.","responses":{"201":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"createSession","weight":38,"cookies":false,"type":"","demo":"account\/create-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be between 6 to 32 chars.","default":null,"x-example":"password"}},"required":["email","password"]}}]},"delete":{"summary":"Delete All Account Sessions","operationId":"accountDeleteSessions","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Delete all sessions from the user account and remove any sessions cookies from the end client.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSessions","weight":58,"cookies":false,"type":"","demo":"account\/delete-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-sessions.md","rate-limit":100,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/account\/sessions\/anonymous":{"post":{"summary":"Create Anonymous Session","operationId":"accountCreateAnonymousSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to allow a new user to register an anonymous account in your project. This route will also create a new session for the user. To allow the new user to convert an anonymous account to a normal account, you need to update its [email and password](\/docs\/client\/account#accountUpdateEmail) or create an [OAuth2 session](\/docs\/client\/account#accountCreateOAuth2Session).","responses":{"201":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"createAnonymousSession","weight":45,"cookies":false,"type":"","demo":"account\/create-anonymous-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session-anonymous.md","rate-limit":50,"rate-time":3600,"rate-key":"ip:{ip}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}]}},"\/account\/sessions\/magic-url":{"post":{"summary":"Create Magic URL session","operationId":"accountCreateMagicURLSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Sends the user an email with a secret key for creating a session. When the user clicks the link in the email, the user is redirected back to the URL you provided with the secret key and userId values attached to the URL query string. Use the query string parameters to submit a request to the [PUT \/account\/sessions\/magic-url](\/docs\/client\/account#accountUpdateMagicURLSession) endpoint to complete the login process. The link sent to the user's email address is valid for 1 hour. If you are on a mobile device you can leave the URL parameter empty, so that the login completion will be handled by your Appwrite instance by default.","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createMagicURLSession","weight":43,"cookies":false,"type":"","demo":"account\/create-magic-u-r-l-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-magic-url-session.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"url":{"type":"string","description":"URL to redirect the user back to your app from the magic URL login. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":"","x-example":"https:\/\/example.com"}},"required":["userId","email"]}}]},"put":{"summary":"Create Magic URL session (confirmation)","operationId":"accountUpdateMagicURLSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete creating the session with the Magic URL. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/sessions\/magic-url](\/docs\/client\/account#accountCreateMagicURLSession) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.","responses":{"200":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"updateMagicURLSession","weight":44,"cookies":false,"type":"","demo":"account\/update-magic-u-r-l-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-magic-url-session.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User unique ID.","default":null,"x-example":null},"secret":{"type":"string","description":"Valid verification token.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/account\/sessions\/oauth2\/{provider}":{"get":{"summary":"Create Account Session with OAuth2","operationId":"accountCreateOAuth2Session","consumes":["application\/json"],"produces":["text\/html"],"tags":["account"],"description":"Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the email received from the OAuth2 provider and attach the new session to the existing user. If no matching user is found - the server will create a new user..\n","responses":{"301":{"description":"No content"}},"x-appwrite":{"method":"createOAuth2Session","weight":39,"cookies":false,"type":"webAuth","demo":"account\/create-o-auth2session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session-oauth2.md","rate-limit":50,"rate-time":3600,"rate-key":"ip:{ip}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"provider","description":"OAuth2 Provider. Currently, supported providers are: amazon, apple, bitbucket, bitly, box, discord, dropbox, facebook, github, gitlab, google, linkedin, microsoft, paypal, paypalSandbox, salesforce, slack, spotify, tradeshift, tradeshiftBox, twitch, vk, yahoo, yandex, wordpress.","required":true,"type":"string","x-example":"amazon","in":"path"},{"name":"success","description":"URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","required":false,"type":"string","format":"url","x-example":"https:\/\/example.com","default":"","in":"query"},{"name":"failure","description":"URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","required":false,"type":"string","format":"url","x-example":"https:\/\/example.com","default":"","in":"query"},{"name":"scopes","description":"A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"}]}},"\/account\/sessions\/{sessionId}":{"get":{"summary":"Get Session By ID","operationId":"accountGetSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to get a logged in user's session using a Session ID. Inputting 'current' will return the current session being used.","responses":{"200":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"getSession","weight":51,"cookies":false,"type":"","demo":"account\/get-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-session.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"sessionId","description":"Session unique ID. Use the string 'current' to get the current device session.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]},"delete":{"summary":"Delete Account Session","operationId":"accountDeleteSession","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Use this endpoint to log out the currently logged in user from all their account sessions across all of their different devices. When using the option id argument, only the session unique ID provider will be deleted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSession","weight":57,"cookies":false,"type":"","demo":"account\/delete-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-session.md","rate-limit":100,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"sessionId","description":"Session unique ID. Use the string 'current' to delete the current device session.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]}},"\/account\/verification":{"post":{"summary":"Create Email Verification","operationId":"accountCreateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](\/docs\/client\/account#accountUpdateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createVerification","weight":61,"cookies":false,"type":"","demo":"account\/create-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-verification.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{userId}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"url":{"type":"string","description":"URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"}},"required":["url"]}}]},"put":{"summary":"Create Email Verification (confirmation)","operationId":"accountUpdateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.","responses":{"200":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"updateVerification","weight":62,"cookies":false,"type":"","demo":"account\/update-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-verification.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User unique ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Valid verification token.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/avatars\/browsers\/{code}":{"get":{"summary":"Get Browser Icon","operationId":"avatarsGetBrowser","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user \/account\/sessions endpoint. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getBrowser","weight":64,"cookies":false,"type":"location","demo":"avatars\/get-browser.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-browser.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"code","description":"Browser Code.","required":true,"type":"string","x-example":"aa","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/credit-cards\/{code}":{"get":{"summary":"Get Credit Card Icon","operationId":"avatarsGetCreditCard","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getCreditCard","weight":63,"cookies":false,"type":"location","demo":"avatars\/get-credit-card.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-credit-card.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"code","description":"Credit Card Code. Possible values: amex, argencard, cabal, censosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro.","required":true,"type":"string","x-example":"amex","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/favicon":{"get":{"summary":"Get Favicon","operationId":"avatarsGetFavicon","consumes":["application\/json"],"produces":["image\/*"],"tags":["avatars"],"description":"Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFavicon","weight":67,"cookies":false,"type":"location","demo":"avatars\/get-favicon.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-favicon.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"url","description":"Website URL which you want to fetch the favicon from.","required":true,"type":"string","format":"url","x-example":"https:\/\/example.com","in":"query"}]}},"\/avatars\/flags\/{code}":{"get":{"summary":"Get Country Flag","operationId":"avatarsGetFlag","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFlag","weight":65,"cookies":false,"type":"location","demo":"avatars\/get-flag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-flag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"code","description":"Country Code. ISO Alpha-2 country code format.","required":true,"type":"string","x-example":"af","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/image":{"get":{"summary":"Get Image from URL","operationId":"avatarsGetImage","consumes":["application\/json"],"produces":["image\/*"],"tags":["avatars"],"description":"Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getImage","weight":66,"cookies":false,"type":"location","demo":"avatars\/get-image.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-image.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"url","description":"Image URL which you want to crop.","required":true,"type":"string","format":"url","x-example":"https:\/\/example.com","in":"query"},{"name":"width","description":"Resize preview image width, Pass an integer between 0 to 2000.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"},{"name":"height","description":"Resize preview image height, Pass an integer between 0 to 2000.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"}]}},"\/avatars\/initials":{"get":{"summary":"Get User Initials","operationId":"avatarsGetInitials","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.\n\nYou can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getInitials","weight":69,"cookies":false,"type":"location","demo":"avatars\/get-initials.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-initials.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"name","description":"Full Name. When empty, current user name or email will be used. Max length: 128 chars.","required":false,"type":"string","x-example":"[NAME]","default":"","in":"query"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":500,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":500,"in":"query"},{"name":"color","description":"Changes text color. By default a random color will be picked and stay will persistent to the given name.","required":false,"type":"string","default":"","in":"query"},{"name":"background","description":"Changes background color. By default a random color will be picked and stay will persistent to the given name.","required":false,"type":"string","default":"","in":"query"}]}},"\/avatars\/qr":{"get":{"summary":"Get QR Code","operationId":"avatarsGetQR","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getQR","weight":68,"cookies":false,"type":"location","demo":"avatars\/get-q-r.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-qr.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"text","description":"Plain text to be converted to QR code image.","required":true,"type":"string","x-example":"[TEXT]","in":"query"},{"name":"size","description":"QR code size. Pass an integer between 0 to 1000. Defaults to 400.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"},{"name":"margin","description":"Margin from edge. Pass an integer between 0 to 10. Defaults to 1.","required":false,"type":"integer","format":"int32","x-example":0,"default":1,"in":"query"},{"name":"download","description":"Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.","required":false,"type":"boolean","x-example":false,"default":false,"in":"query"}]}},"\/database\/collections\/{collectionId}\/documents":{"get":{"summary":"List Documents","operationId":"databaseListDocuments","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a list of all the user documents. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's documents. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Documents List","schema":{"$ref":"#\/definitions\/documentList"}}},"x-appwrite":{"method":"listDocuments","weight":94,"cookies":false,"type":"","demo":"database\/list-documents.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-documents.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"queries","description":"Array of query strings.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"},{"name":"limit","description":"Maximum number of documents to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the document used as the starting point for the query, excluding the document itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderAttributes","description":"Array of attributes used to sort results.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"},{"name":"orderTypes","description":"Array of order directions for sorting attribtues. Possible values are DESC for descending order, or ASC for ascending order.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"}]},"post":{"summary":"Create Document","operationId":"databaseCreateDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](\/docs\/server\/database#databaseCreateCollection) API or directly from your database console.","responses":{"201":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"createDocument","weight":93,"cookies":false,"type":"","demo":"database\/create-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection with validation rules using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"documentId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"data":{"type":"object","description":"Document data as JSON object.","default":{},"x-example":"{}"},"read":{"type":"array","description":"An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["documentId","data"]}}]}},"\/database\/collections\/{collectionId}\/documents\/{documentId}":{"get":{"summary":"Get Document","operationId":"databaseGetDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a document by its unique ID. This endpoint response returns a JSON object with the document data.","responses":{"200":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"getDocument","weight":95,"cookies":false,"type":"","demo":"database\/get-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"}]},"patch":{"summary":"Update Document","operationId":"databaseUpdateDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.","responses":{"200":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"updateDocument","weight":97,"cookies":false,"type":"","demo":"database\/update-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/update-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection with validation rules using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"data":{"type":"object","description":"Document data as JSON object.","default":{},"x-example":"{}"},"read":{"type":"array","description":"An array of strings with read permissions. By default inherits the existing read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default inherits the existing write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["data"]}}]},"delete":{"summary":"Delete Document","operationId":"databaseDeleteDocument","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"Delete a document by its unique ID. This endpoint deletes only the parent documents, its attributes and relations to other documents. Child documents **will not** be deleted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteDocument","weight":98,"cookies":false,"type":"","demo":"database\/delete-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"}]}},"\/functions\/{functionId}\/executions":{"get":{"summary":"List Executions","operationId":"functionsListExecutions","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the current user function execution logs. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's executions. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Executions List","schema":{"$ref":"#\/definitions\/executionList"}}},"x-appwrite":{"method":"listExecutions","weight":198,"cookies":false,"type":"","demo":"functions\/list-executions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-executions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"execution.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"cursor","description":"ID of the execution used as the starting point for the query, excluding the execution itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"}]},"post":{"summary":"Create Execution","operationId":"functionsCreateExecution","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.","responses":{"201":{"description":"Execution","schema":{"$ref":"#\/definitions\/execution"}}},"x-appwrite":{"method":"createExecution","weight":197,"cookies":false,"type":"","demo":"functions\/create-execution.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-execution.md","rate-limit":60,"rate-time":60,"rate-key":"url:{url},ip:{ip}","scope":"execution.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"data":{"type":"string","description":"String of custom data to send to function.","default":"","x-example":"[DATA]"}}}}]}},"\/functions\/{functionId}\/executions\/{executionId}":{"get":{"summary":"Get Execution","operationId":"functionsGetExecution","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a function execution log by its unique ID.","responses":{"200":{"description":"Execution","schema":{"$ref":"#\/definitions\/execution"}}},"x-appwrite":{"method":"getExecution","weight":199,"cookies":false,"type":"","demo":"functions\/get-execution.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-execution.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"execution.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"executionId","description":"Execution unique ID.","required":true,"type":"string","x-example":"[EXECUTION_ID]","in":"path"}]}},"\/locale":{"get":{"summary":"Get User Locale","operationId":"localeGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.\n\n([IP Geolocation by DB-IP](https:\/\/db-ip.com))","responses":{"200":{"description":"Locale","schema":{"$ref":"#\/definitions\/locale"}}},"x-appwrite":{"method":"get","weight":99,"cookies":false,"type":"","demo":"locale\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/locale\/continents":{"get":{"summary":"List Continents","operationId":"localeGetContinents","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all continents. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Continents List","schema":{"$ref":"#\/definitions\/continentList"}}},"x-appwrite":{"method":"getContinents","weight":103,"cookies":false,"type":"","demo":"locale\/get-continents.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-continents.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/locale\/countries":{"get":{"summary":"List Countries","operationId":"localeGetCountries","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Countries List","schema":{"$ref":"#\/definitions\/countryList"}}},"x-appwrite":{"method":"getCountries","weight":100,"cookies":false,"type":"","demo":"locale\/get-countries.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/locale\/countries\/eu":{"get":{"summary":"List EU Countries","operationId":"localeGetCountriesEU","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries that are currently members of the EU. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Countries List","schema":{"$ref":"#\/definitions\/countryList"}}},"x-appwrite":{"method":"getCountriesEU","weight":101,"cookies":false,"type":"","demo":"locale\/get-countries-e-u.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries-eu.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/locale\/countries\/phones":{"get":{"summary":"List Countries Phone Codes","operationId":"localeGetCountriesPhones","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries phone codes. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Phones List","schema":{"$ref":"#\/definitions\/phoneList"}}},"x-appwrite":{"method":"getCountriesPhones","weight":102,"cookies":false,"type":"","demo":"locale\/get-countries-phones.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries-phones.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/locale\/currencies":{"get":{"summary":"List Currencies","operationId":"localeGetCurrencies","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Currencies List","schema":{"$ref":"#\/definitions\/currencyList"}}},"x-appwrite":{"method":"getCurrencies","weight":104,"cookies":false,"type":"","demo":"locale\/get-currencies.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-currencies.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/locale\/languages":{"get":{"summary":"List Languages","operationId":"localeGetLanguages","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.","responses":{"200":{"description":"Languages List","schema":{"$ref":"#\/definitions\/languageList"}}},"x-appwrite":{"method":"getLanguages","weight":105,"cookies":false,"type":"","demo":"locale\/get-languages.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-languages.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/storage\/files":{"get":{"summary":"List Files","operationId":"storageListFiles","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Get a list of all the user files. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's files. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Files List","schema":{"$ref":"#\/definitions\/fileList"}}},"x-appwrite":{"method":"listFiles","weight":150,"cookies":false,"type":"","demo":"storage\/list-files.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the file used as the starting point for the query, excluding the file itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create File","operationId":"storageCreateFile","consumes":["multipart\/form-data"],"produces":["application\/json"],"tags":["storage"],"description":"Create a new file. The user who creates the file will automatically be assigned to read and write access unless he has passed custom values for read and write arguments.","responses":{"201":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"createFile","weight":149,"cookies":false,"type":"upload","demo":"storage\/create-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","required":true,"type":"string","in":"formData"},{"name":"file","description":"Binary file.","required":true,"type":"file","in":"formData"},{"name":"read","description":"An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"in":"formData"},{"name":"write","description":"An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"in":"formData"}]}},"\/storage\/files\/{fileId}":{"get":{"summary":"Get File","operationId":"storageGetFile","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.","responses":{"200":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"getFile","weight":151,"cookies":false,"type":"","demo":"storage\/get-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]},"put":{"summary":"Update File","operationId":"storageUpdateFile","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Update a file by its unique ID. Only users with write permissions have access to update this resource.","responses":{"200":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"updateFile","weight":155,"cookies":false,"type":"","demo":"storage\/update-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"read":{"type":"array","description":"An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["read","write"]}}]},"delete":{"summary":"Delete File","operationId":"storageDeleteFile","consumes":["application\/json"],"produces":[],"tags":["storage"],"description":"Delete a file by its unique ID. Only users with write permissions have access to delete this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteFile","weight":156,"cookies":false,"type":"","demo":"storage\/delete-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/files\/{fileId}\/download":{"get":{"summary":"Get File for Download","operationId":"storageGetFileDownload","consumes":["application\/json"],"produces":["*\/*"],"tags":["storage"],"description":"Get a file content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.","responses":{"200":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getFileDownload","weight":153,"cookies":false,"type":"location","demo":"storage\/get-file-download.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/files\/{fileId}\/preview":{"get":{"summary":"Get File Preview","operationId":"storageGetFilePreview","consumes":["application\/json"],"produces":["image\/*"],"tags":["storage"],"description":"Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFilePreview","weight":152,"cookies":false,"type":"location","demo":"storage\/get-file-preview.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"},{"name":"width","description":"Resize preview image width, Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"height","description":"Resize preview image height, Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"gravity","description":"Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right","required":false,"type":"string","x-example":"center","default":"center","in":"query"},{"name":"quality","description":"Preview image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"borderWidth","description":"Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"borderColor","description":"Preview image border color. Use a valid HEX color, no # is needed for prefix.","required":false,"type":"string","default":"","in":"query"},{"name":"borderRadius","description":"Preview image border radius in pixels. Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"opacity","description":"Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.","required":false,"type":"number","format":"float","x-example":0,"default":1,"in":"query"},{"name":"rotation","description":"Preview image rotation in degrees. Pass an integer between 0 and 360.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"background","description":"Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.","required":false,"type":"string","default":"","in":"query"},{"name":"output","description":"Output format type (jpeg, jpg, png, gif and webp).","required":false,"type":"string","x-example":"jpg","default":"","in":"query"}]}},"\/storage\/files\/{fileId}\/view":{"get":{"summary":"Get File for View","operationId":"storageGetFileView","consumes":["application\/json"],"produces":["*\/*"],"tags":["storage"],"description":"Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.","responses":{"200":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getFileView","weight":154,"cookies":false,"type":"location","demo":"storage\/get-file-view.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/teams":{"get":{"summary":"List Teams","operationId":"teamsList","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a list of all the current user teams. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's teams. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Teams List","schema":{"$ref":"#\/definitions\/teamList"}}},"x-appwrite":{"method":"list","weight":160,"cookies":false,"type":"","demo":"teams\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the team used as the starting point for the query, excluding the team itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Team","operationId":"teamsCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Create a new team. The user who creates the team will automatically be assigned as the owner of the team. The team owner can invite new members, who will be able add new owners and update or delete the team from your project.","responses":{"201":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"create","weight":159,"cookies":false,"type":"","demo":"teams\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"teamId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Team name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"roles":{"type":"array","description":"Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":["owner"],"x-example":null,"items":{"type":"string"}}},"required":["teamId","name"]}}]}},"\/teams\/{teamId}":{"get":{"summary":"Get Team","operationId":"teamsGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team by its unique ID. All team members have read access for this resource.","responses":{"200":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"get","weight":161,"cookies":false,"type":"","demo":"teams\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"}]},"put":{"summary":"Update Team","operationId":"teamsUpdate","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Update a team by its unique ID. Only team owners have write access for this resource.","responses":{"200":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"update","weight":162,"cookies":false,"type":"","demo":"teams\/update.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Team name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]},"delete":{"summary":"Delete Team","operationId":"teamsDelete","consumes":["application\/json"],"produces":[],"tags":["teams"],"description":"Delete a team by its unique ID. Only team owners have write access for this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":163,"cookies":false,"type":"","demo":"teams\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"}]}},"\/teams\/{teamId}\/memberships":{"get":{"summary":"Get Team Memberships","operationId":"teamsGetMemberships","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team members by the team unique ID. All team members have read access for this list of resources.","responses":{"200":{"description":"Memberships List","schema":{"$ref":"#\/definitions\/membershipList"}}},"x-appwrite":{"method":"getMemberships","weight":165,"cookies":false,"type":"","demo":"teams\/get-memberships.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-members.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the membership used as the starting point for the query, excluding the membership itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Team Membership","operationId":"teamsCreateMembership","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"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.\n\nUse 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.\n\nPlease 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.","responses":{"201":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"createMembership","weight":164,"cookies":false,"type":"","demo":"teams\/create-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team-membership.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"New team member email.","default":null,"x-example":"email@example.com"},"roles":{"type":"array","description":"Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":null,"x-example":null,"items":{"type":"string"}},"url":{"type":"string","description":"URL to redirect the user back to your app from the invitation email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"},"name":{"type":"string","description":"New team member name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["email","roles","url"]}}]}},"\/teams\/{teamId}\/memberships\/{membershipId}":{"get":{"summary":"Get Team Membership","operationId":"teamsGetMembership","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team member by the membership unique id. All team members have read access for this resource.","responses":{"200":{"description":"Memberships List","schema":{"$ref":"#\/definitions\/membershipList"}}},"x-appwrite":{"method":"getMembership","weight":166,"cookies":false,"type":"","demo":"teams\/get-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"membership unique ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"}]},"patch":{"summary":"Update Membership Roles","operationId":"teamsUpdateMembershipRoles","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"","responses":{"200":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"updateMembershipRoles","weight":167,"cookies":false,"type":"","demo":"teams\/update-membership-roles.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-roles.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"roles":{"type":"array","description":"Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["roles"]}}]},"delete":{"summary":"Delete Team Membership","operationId":"teamsDeleteMembership","consumes":["application\/json"],"produces":[],"tags":["teams"],"description":"This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteMembership","weight":169,"cookies":false,"type":"","demo":"teams\/delete-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"}]}},"\/teams\/{teamId}\/memberships\/{membershipId}\/status":{"patch":{"summary":"Update Team Membership Status","operationId":"teamsUpdateMembershipStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email recieved by the user.","responses":{"200":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"updateMembershipStatus","weight":168,"cookies":false,"type":"","demo":"teams\/update-membership-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User unique ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Secret key.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}}},"tags":[{"name":"account","description":"The Account service allows you to authenticate and manage a user account."},{"name":"avatars","description":"The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars."},{"name":"database","description":"The Database service allows you to create structured collections of documents, query and filter lists of documents"},{"name":"locale","description":"The Locale service allows you to customize your app based on your users' location."},{"name":"health","description":"The Health service allows you to both validate and monitor your Appwrite server's health."},{"name":"projects","description":"The Project service allows you to manage all the projects in your Appwrite server."},{"name":"storage","description":"The Storage service allows you to manage your project files."},{"name":"teams","description":"The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources"},{"name":"users","description":"The Users service allows you to manage your project users."},{"name":"functions","description":"The Functions Service allows you view, create and manage your Cloud Functions."}],"definitions":{"documentList":{"description":"Documents List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"documents":{"type":"array","description":"List of documents.","items":{"type":"object","$ref":"#\/definitions\/document"},"x-example":""}},"required":["sum","documents"]},"sessionList":{"description":"Sessions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"sessions":{"type":"array","description":"List of sessions.","items":{"type":"object","$ref":"#\/definitions\/session"},"x-example":""}},"required":["sum","sessions"]},"logList":{"description":"Logs List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"logs":{"type":"array","description":"List of logs.","items":{"type":"object","$ref":"#\/definitions\/log"},"x-example":""}},"required":["sum","logs"]},"fileList":{"description":"Files List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"files":{"type":"array","description":"List of files.","items":{"type":"object","$ref":"#\/definitions\/file"},"x-example":""}},"required":["sum","files"]},"teamList":{"description":"Teams List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"teams":{"type":"array","description":"List of teams.","items":{"type":"object","$ref":"#\/definitions\/team"},"x-example":""}},"required":["sum","teams"]},"membershipList":{"description":"Memberships List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"memberships":{"type":"array","description":"List of memberships.","items":{"type":"object","$ref":"#\/definitions\/membership"},"x-example":""}},"required":["sum","memberships"]},"executionList":{"description":"Executions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"executions":{"type":"array","description":"List of executions.","items":{"type":"object","$ref":"#\/definitions\/execution"},"x-example":""}},"required":["sum","executions"]},"countryList":{"description":"Countries List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"countries":{"type":"array","description":"List of countries.","items":{"type":"object","$ref":"#\/definitions\/country"},"x-example":""}},"required":["sum","countries"]},"continentList":{"description":"Continents List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"continents":{"type":"array","description":"List of continents.","items":{"type":"object","$ref":"#\/definitions\/continent"},"x-example":""}},"required":["sum","continents"]},"languageList":{"description":"Languages List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"languages":{"type":"array","description":"List of languages.","items":{"type":"object","$ref":"#\/definitions\/language"},"x-example":""}},"required":["sum","languages"]},"currencyList":{"description":"Currencies List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"currencies":{"type":"array","description":"List of currencies.","items":{"type":"object","$ref":"#\/definitions\/currency"},"x-example":""}},"required":["sum","currencies"]},"phoneList":{"description":"Phones List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"phones":{"type":"array","description":"List of phones.","items":{"type":"object","$ref":"#\/definitions\/phone"},"x-example":""}},"required":["sum","phones"]},"document":{"description":"Document","type":"object","properties":{"$id":{"type":"string","description":"Document ID.","x-example":"5e5ea5c16897e"},"$collection":{"type":"string","description":"Collection ID.","x-example":"5e5ea5c15117e"},"$read":{"type":"array","description":"Document read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"Document write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"}},"additionalProperties":true,"required":["$id","$collection","$read","$write"]},"log":{"description":"Log","type":"object","properties":{"event":{"type":"string","description":"Event name.","x-example":"account.sessions.create"},"userId":{"type":"string","description":"User ID.","x-example":"610fc2f985ee0"},"userEmail":{"type":"string","description":"User Email.","x-example":"john@appwrite.io"},"userName":{"type":"string","description":"User Name.","x-example":"John Doe"},"mode":{"type":"string","description":"API mode when event triggered.","x-example":"admin"},"ip":{"type":"string","description":"IP session in use when the session was created.","x-example":"127.0.0.1"},"time":{"type":"integer","description":"Log creation time in Unix timestamp.","x-example":1592981250,"format":"int32"},"osCode":{"type":"string","description":"Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).","x-example":"Mac"},"osName":{"type":"string","description":"Operating system name.","x-example":"Mac"},"osVersion":{"type":"string","description":"Operating system version.","x-example":"Mac"},"clientType":{"type":"string","description":"Client type.","x-example":"browser"},"clientCode":{"type":"string","description":"Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).","x-example":"CM"},"clientName":{"type":"string","description":"Client name.","x-example":"Chrome Mobile iOS"},"clientVersion":{"type":"string","description":"Client version.","x-example":"84.0"},"clientEngine":{"type":"string","description":"Client engine name.","x-example":"WebKit"},"clientEngineVersion":{"type":"string","description":"Client engine name.","x-example":"605.1.15"},"deviceName":{"type":"string","description":"Device name.","x-example":"smartphone"},"deviceBrand":{"type":"string","description":"Device brand name.","x-example":"Google"},"deviceModel":{"type":"string","description":"Device model name.","x-example":"Nexus 5"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"}},"required":["event","userId","userEmail","userName","mode","ip","time","osCode","osName","osVersion","clientType","clientCode","clientName","clientVersion","clientEngine","clientEngineVersion","deviceName","deviceBrand","deviceModel","countryCode","countryName"]},"user":{"description":"User","type":"object","properties":{"$id":{"type":"string","description":"User ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"User name.","x-example":"John Doe"},"registration":{"type":"integer","description":"User registration date in Unix timestamp.","x-example":1592981250,"format":"int32"},"status":{"type":"boolean","description":"User status. Pass `true` for enabled and `false` for disabled.","x-example":true},"passwordUpdate":{"type":"integer","description":"Unix timestamp of the most recent password update","x-example":1592981250,"format":"int32"},"email":{"type":"string","description":"User email address.","x-example":"john@appwrite.io"},"emailVerification":{"type":"boolean","description":"Email verification status.","x-example":true},"prefs":{"type":"object","description":"User preferences as a key-value object","x-example":{"theme":"pink","timezone":"UTC"},"items":{"type":"object","$ref":"#\/definitions\/preferences"}}},"required":["$id","name","registration","status","passwordUpdate","email","emailVerification","prefs"]},"preferences":{"description":"Preferences","type":"object","additionalProperties":true},"session":{"description":"Session","type":"object","properties":{"$id":{"type":"string","description":"Session ID.","x-example":"5e5ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5bb8c16897e"},"expire":{"type":"integer","description":"Session expiration date in Unix timestamp.","x-example":1592981250,"format":"int32"},"provider":{"type":"string","description":"Session Provider.","x-example":"email"},"providerUid":{"type":"string","description":"Session Provider User ID.","x-example":"user@example.com"},"providerToken":{"type":"string","description":"Session Provider Token.","x-example":"MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"},"ip":{"type":"string","description":"IP in use when the session was created.","x-example":"127.0.0.1"},"osCode":{"type":"string","description":"Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).","x-example":"Mac"},"osName":{"type":"string","description":"Operating system name.","x-example":"Mac"},"osVersion":{"type":"string","description":"Operating system version.","x-example":"Mac"},"clientType":{"type":"string","description":"Client type.","x-example":"browser"},"clientCode":{"type":"string","description":"Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).","x-example":"CM"},"clientName":{"type":"string","description":"Client name.","x-example":"Chrome Mobile iOS"},"clientVersion":{"type":"string","description":"Client version.","x-example":"84.0"},"clientEngine":{"type":"string","description":"Client engine name.","x-example":"WebKit"},"clientEngineVersion":{"type":"string","description":"Client engine name.","x-example":"605.1.15"},"deviceName":{"type":"string","description":"Device name.","x-example":"smartphone"},"deviceBrand":{"type":"string","description":"Device brand name.","x-example":"Google"},"deviceModel":{"type":"string","description":"Device model name.","x-example":"Nexus 5"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"},"current":{"type":"boolean","description":"Returns true if this the current user session.","x-example":true}},"required":["$id","userId","expire","provider","providerUid","providerToken","ip","osCode","osName","osVersion","clientType","clientCode","clientName","clientVersion","clientEngine","clientEngineVersion","deviceName","deviceBrand","deviceModel","countryCode","countryName","current"]},"token":{"description":"Token","type":"object","properties":{"$id":{"type":"string","description":"Token ID.","x-example":"bb8ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5ea5c168bb8"},"secret":{"type":"string","description":"Token secret key. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.","x-example":""},"expire":{"type":"integer","description":"Token expiration date in Unix timestamp.","x-example":1592981250,"format":"int32"}},"required":["$id","userId","secret","expire"]},"jwt":{"description":"JWT","type":"object","properties":{"jwt":{"type":"string","description":"JWT encoded string.","x-example":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"}},"required":["jwt"]},"locale":{"description":"Locale","type":"object","properties":{"ip":{"type":"string","description":"User IP address.","x-example":"127.0.0.1"},"countryCode":{"type":"string","description":"Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format","x-example":"US"},"country":{"type":"string","description":"Country name. This field support localization.","x-example":"United States"},"continentCode":{"type":"string","description":"Continent code. A two character continent code \"AF\" for Africa, \"AN\" for Antarctica, \"AS\" for Asia, \"EU\" for Europe, \"NA\" for North America, \"OC\" for Oceania, and \"SA\" for South America.","x-example":"NA"},"continent":{"type":"string","description":"Continent name. This field support localization.","x-example":"North America"},"eu":{"type":"boolean","description":"True if country is part of the Europian Union.","x-example":false},"currency":{"type":"string","description":"Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format","x-example":"USD"}},"required":["ip","countryCode","country","continentCode","continent","eu","currency"]},"file":{"description":"File","type":"object","properties":{"$id":{"type":"string","description":"File ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"File read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"File write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"},"name":{"type":"string","description":"File name.","x-example":"Pink.png"},"dateCreated":{"type":"integer","description":"File creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"signature":{"type":"string","description":"File MD5 signature.","x-example":"5d529fd02b544198ae075bd57c1762bb"},"mimeType":{"type":"string","description":"File mime type.","x-example":"image\/png"},"sizeOriginal":{"type":"integer","description":"File original size in bytes.","x-example":17890,"format":"int32"}},"required":["$id","$read","$write","name","dateCreated","signature","mimeType","sizeOriginal"]},"team":{"description":"Team","type":"object","properties":{"$id":{"type":"string","description":"Team ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Team name.","x-example":"VIP"},"dateCreated":{"type":"integer","description":"Team creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"sum":{"type":"integer","description":"Total sum of team members.","x-example":7,"format":"int32"}},"required":["$id","name","dateCreated","sum"]},"membership":{"description":"Membership","type":"object","properties":{"$id":{"type":"string","description":"Membership ID.","x-example":"5e5ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5ea5c16897e"},"teamId":{"type":"string","description":"Team ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"User name.","x-example":"VIP"},"email":{"type":"string","description":"User email address.","x-example":"john@appwrite.io"},"invited":{"type":"integer","description":"Date, the user has been invited to join the team in Unix timestamp.","x-example":1592981250,"format":"int32"},"joined":{"type":"integer","description":"Date, the user has accepted the invitation to join the team in Unix timestamp.","x-example":1592981250,"format":"int32"},"confirm":{"type":"boolean","description":"User confirmation status, true if the user has joined the team or false otherwise.","x-example":false},"roles":{"type":"array","description":"User list of roles","items":{"type":"string"},"x-example":"admin"}},"required":["$id","userId","teamId","name","email","invited","joined","confirm","roles"]},"execution":{"description":"Execution","type":"object","properties":{"$id":{"type":"string","description":"Execution ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"Execution read permissions.","items":{"type":"string"},"x-example":"role:all"},"functionId":{"type":"string","description":"Function ID.","x-example":"5e5ea6g16897e"},"dateCreated":{"type":"integer","description":"The execution creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"trigger":{"type":"string","description":"The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.","x-example":"http"},"status":{"type":"string","description":"The status of the function execution. Possible values can be: `waiting`, `processing`, `completed`, or `failed`.","x-example":"processing"},"exitCode":{"type":"integer","description":"The script exit code.","x-example":0,"format":"int32"},"stdout":{"type":"string","description":"The script stdout output string. Logs the last 4,000 characters of the execution stdout output.","x-example":""},"stderr":{"type":"string","description":"The script stderr output string. Logs the last 4,000 characters of the execution stderr output","x-example":""},"time":{"type":"number","description":"The script execution time in seconds.","x-example":0.4,"format":"double"}},"required":["$id","$read","functionId","dateCreated","trigger","status","exitCode","stdout","stderr","time"]},"country":{"description":"Country","type":"object","properties":{"name":{"type":"string","description":"Country name.","x-example":"United States"},"code":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"}},"required":["name","code"]},"continent":{"description":"Continent","type":"object","properties":{"name":{"type":"string","description":"Continent name.","x-example":"Europe"},"code":{"type":"string","description":"Continent two letter code.","x-example":"EU"}},"required":["name","code"]},"language":{"description":"Language","type":"object","properties":{"name":{"type":"string","description":"Language name.","x-example":"Italian"},"code":{"type":"string","description":"Language two-character ISO 639-1 codes.","x-example":"it"},"nativeName":{"type":"string","description":"Language native name.","x-example":"Italiano"}},"required":["name","code","nativeName"]},"currency":{"description":"Currency","type":"object","properties":{"symbol":{"type":"string","description":"Currency symbol.","x-example":"$"},"name":{"type":"string","description":"Currency name.","x-example":"US dollar"},"symbolNative":{"type":"string","description":"Currency native symbol.","x-example":"$"},"decimalDigits":{"type":"integer","description":"Number of decimal digits.","x-example":2,"format":"int32"},"rounding":{"type":"number","description":"Currency digit rounding.","x-example":0,"format":"double"},"code":{"type":"string","description":"Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format.","x-example":"USD"},"namePlural":{"type":"string","description":"Currency plural name","x-example":"US dollars"}},"required":["symbol","name","symbolNative","decimalDigits","rounding","code","namePlural"]},"phone":{"description":"Phone","type":"object","properties":{"code":{"type":"string","description":"Phone code.","x-example":"+1"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"}},"required":["code","countryCode","countryName"]}},"externalDocs":{"description":"Full API docs, specs and tutorials","url":"https:\/\/appwrite.io\/docs"}} \ No newline at end of file +{"swagger":"2.0","info":{"version":"0.12.0","title":"Appwrite","description":"Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)","termsOfService":"https:\/\/appwrite.io\/policy\/terms","contact":{"name":"Appwrite Team","url":"https:\/\/appwrite.io\/support","email":"team@appwrite.io"},"license":{"name":"BSD-3-Clause","url":"https:\/\/raw.githubusercontent.com\/appwrite\/appwrite\/master\/LICENSE"}},"host":"appwrite.io","basePath":"\/v1","schemes":["https"],"consumes":["application\/json","multipart\/form-data"],"produces":["application\/json"],"securityDefinitions":{"Project":{"type":"apiKey","name":"X-Appwrite-Project","description":"Your project ID","in":"header","x-appwrite":{"demo":"5df5acd0d48c2"}},"JWT":{"type":"apiKey","name":"X-Appwrite-JWT","description":"Your secret JSON Web Token","in":"header","x-appwrite":{"demo":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."}},"Locale":{"type":"apiKey","name":"X-Appwrite-Locale","description":"","in":"header","x-appwrite":{"demo":"en"}}},"paths":{"\/account":{"get":{"summary":"Get Account","operationId":"accountGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user data as JSON object.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"get","weight":47,"cookies":false,"type":"","demo":"account\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]},"post":{"summary":"Create Account","operationId":"accountCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to allow a new user to register a new account in your project. After the user registration completes successfully, you can use the [\/account\/verfication](\/docs\/client\/account#accountCreateVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](\/docs\/client\/account#accountCreateSession).","responses":{"201":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"create","weight":37,"cookies":false,"type":"","demo":"account\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"},"name":{"type":"string","description":"User name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["userId","email","password"]}}]},"delete":{"summary":"Delete Account","operationId":"accountDelete","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Delete a currently logged in user account. Behind the scene, the user record is not deleted but permanently blocked from any access. This is done to avoid deleted accounts being overtaken by new users with the same email address. Any user-related resources like documents or storage files should be deleted separately.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":56,"cookies":false,"type":"","demo":"account\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/account\/email":{"patch":{"summary":"Update Account Email","operationId":"accountUpdateEmail","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account email address. After changing user address, the user confirmation status will get reset. A new confirmation email is not sent automatically however you can use the send confirmation email endpoint again to send the confirmation email. For security measures, user password is required to complete this request.\nThis endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.\n","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateEmail","weight":54,"cookies":false,"type":"","demo":"account\/update-email.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-email.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["email","password"]}}]}},"\/account\/jwt":{"post":{"summary":"Create Account JWT","operationId":"accountCreateJWT","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to create a JSON Web Token. You can use the resulting JWT to authenticate on behalf of the current user when working with the Appwrite server-side API and SDKs. The JWT secret is valid for 15 minutes from its creation and will be invalid if the user will logout in that time frame.","responses":{"201":{"description":"JWT","schema":{"$ref":"#\/definitions\/jwt"}}},"x-appwrite":{"method":"createJWT","weight":46,"cookies":false,"type":"","demo":"account\/create-j-w-t.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-jwt.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{userId}","scope":"account","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}]}},"\/account\/logs":{"get":{"summary":"Get Account Logs","operationId":"accountGetLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user list of latest security activity logs. Each log returns user IP address, location and date and time of log.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"getLogs","weight":50,"cookies":false,"type":"","demo":"account\/get-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"limit","description":"Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/account\/name":{"patch":{"summary":"Update Account Name","operationId":"accountUpdateName","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account name.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateName","weight":52,"cookies":false,"type":"","demo":"account\/update-name.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-name.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"User name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]}},"\/account\/password":{"patch":{"summary":"Update Account Password","operationId":"accountUpdatePassword","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user password. For validation, user is required to pass in the new password, and the old password. For users created with OAuth and Team Invites, oldPassword is optional.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePassword","weight":53,"cookies":false,"type":"","demo":"account\/update-password.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-password.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"},"oldPassword":{"type":"string","description":"Old user password. Must be at least 8 chars.","default":"","x-example":"password"}},"required":["password"]}}]}},"\/account\/prefs":{"get":{"summary":"Get Account Preferences","operationId":"accountGetPrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user preferences as a key-value object.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"getPrefs","weight":48,"cookies":false,"type":"","demo":"account\/get-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]},"patch":{"summary":"Update Account Preferences","operationId":"accountUpdatePrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account preferences. You can pass only the specific settings you wish to update.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePrefs","weight":55,"cookies":false,"type":"","demo":"account\/update-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"prefs":{"type":"object","description":"Prefs key-value JSON object.","default":{},"x-example":"{}"}},"required":["prefs"]}}]}},"\/account\/recovery":{"post":{"summary":"Create Password Recovery","operationId":"accountCreateRecovery","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Sends the user an email with a temporary secret key for password reset. When the user clicks the confirmation link he is redirected back to your app password reset URL with the secret key and email address values attached to the URL query string. Use the query string params to submit a request to the [PUT \/account\/recovery](\/docs\/client\/account#accountUpdateRecovery) endpoint to complete the process. The verification link sent to the user's email address is valid for 1 hour.","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createRecovery","weight":59,"cookies":false,"type":"","demo":"account\/create-recovery.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-recovery.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"url":{"type":"string","description":"URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"}},"required":["email","url"]}}]},"put":{"summary":"Create Password Recovery (confirmation)","operationId":"accountUpdateRecovery","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/recovery](\/docs\/client\/account#accountCreateRecovery) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.","responses":{"200":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"updateRecovery","weight":60,"cookies":false,"type":"","demo":"account\/update-recovery.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-recovery.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User account UID address.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Valid reset token.","default":null,"x-example":"[SECRET]"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"},"passwordAgain":{"type":"string","description":"New password again. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["userId","secret","password","passwordAgain"]}}]}},"\/account\/sessions":{"get":{"summary":"Get Account Sessions","operationId":"accountGetSessions","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user list of active sessions across different devices.","responses":{"200":{"description":"Sessions List","schema":{"$ref":"#\/definitions\/sessionList"}}},"x-appwrite":{"method":"getSessions","weight":49,"cookies":false,"type":"","demo":"account\/get-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]},"post":{"summary":"Create Account Session","operationId":"accountCreateSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Allow the user to login into their account by providing a valid email and password combination. This route will create a new session for the user.","responses":{"201":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"createSession","weight":38,"cookies":false,"type":"","demo":"account\/create-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["email","password"]}}]},"delete":{"summary":"Delete All Account Sessions","operationId":"accountDeleteSessions","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Delete all sessions from the user account and remove any sessions cookies from the end client.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSessions","weight":58,"cookies":false,"type":"","demo":"account\/delete-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-sessions.md","rate-limit":100,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/account\/sessions\/anonymous":{"post":{"summary":"Create Anonymous Session","operationId":"accountCreateAnonymousSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to allow a new user to register an anonymous account in your project. This route will also create a new session for the user. To allow the new user to convert an anonymous account to a normal account, you need to update its [email and password](\/docs\/client\/account#accountUpdateEmail) or create an [OAuth2 session](\/docs\/client\/account#accountCreateOAuth2Session).","responses":{"201":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"createAnonymousSession","weight":45,"cookies":false,"type":"","demo":"account\/create-anonymous-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session-anonymous.md","rate-limit":50,"rate-time":3600,"rate-key":"ip:{ip}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}]}},"\/account\/sessions\/magic-url":{"post":{"summary":"Create Magic URL session","operationId":"accountCreateMagicURLSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Sends the user an email with a secret key for creating a session. When the user clicks the link in the email, the user is redirected back to the URL you provided with the secret key and userId values attached to the URL query string. Use the query string parameters to submit a request to the [PUT \/account\/sessions\/magic-url](\/docs\/client\/account#accountUpdateMagicURLSession) endpoint to complete the login process. The link sent to the user's email address is valid for 1 hour. If you are on a mobile device you can leave the URL parameter empty, so that the login completion will be handled by your Appwrite instance by default.","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createMagicURLSession","weight":43,"cookies":false,"type":"","demo":"account\/create-magic-u-r-l-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-magic-url-session.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"url":{"type":"string","description":"URL to redirect the user back to your app from the magic URL login. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":"","x-example":"https:\/\/example.com"}},"required":["userId","email"]}}]},"put":{"summary":"Create Magic URL session (confirmation)","operationId":"accountUpdateMagicURLSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete creating the session with the Magic URL. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/sessions\/magic-url](\/docs\/client\/account#accountCreateMagicURLSession) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.","responses":{"200":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"updateMagicURLSession","weight":44,"cookies":false,"type":"","demo":"account\/update-magic-u-r-l-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-magic-url-session.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User unique ID.","default":null,"x-example":null},"secret":{"type":"string","description":"Valid verification token.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/account\/sessions\/oauth2\/{provider}":{"get":{"summary":"Create Account Session with OAuth2","operationId":"accountCreateOAuth2Session","consumes":["application\/json"],"produces":["text\/html"],"tags":["account"],"description":"Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the email received from the OAuth2 provider and attach the new session to the existing user. If no matching user is found - the server will create a new user..\n","responses":{"301":{"description":"No content"}},"x-appwrite":{"method":"createOAuth2Session","weight":39,"cookies":false,"type":"webAuth","demo":"account\/create-o-auth2session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session-oauth2.md","rate-limit":50,"rate-time":3600,"rate-key":"ip:{ip}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"provider","description":"OAuth2 Provider. Currently, supported providers are: amazon, apple, bitbucket, bitly, box, discord, dropbox, facebook, github, gitlab, google, linkedin, microsoft, paypal, paypalSandbox, salesforce, slack, spotify, tradeshift, tradeshiftBox, twitch, vk, yahoo, yandex, wordpress.","required":true,"type":"string","x-example":"amazon","in":"path"},{"name":"success","description":"URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","required":false,"type":"string","format":"url","x-example":"https:\/\/example.com","default":"","in":"query"},{"name":"failure","description":"URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","required":false,"type":"string","format":"url","x-example":"https:\/\/example.com","default":"","in":"query"},{"name":"scopes","description":"A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"}]}},"\/account\/sessions\/{sessionId}":{"get":{"summary":"Get Session By ID","operationId":"accountGetSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to get a logged in user's session using a Session ID. Inputting 'current' will return the current session being used.","responses":{"200":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"getSession","weight":51,"cookies":false,"type":"","demo":"account\/get-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-session.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"sessionId","description":"Session unique ID. Use the string 'current' to get the current device session.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]},"delete":{"summary":"Delete Account Session","operationId":"accountDeleteSession","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Use this endpoint to log out the currently logged in user from all their account sessions across all of their different devices. When using the option id argument, only the session unique ID provider will be deleted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSession","weight":57,"cookies":false,"type":"","demo":"account\/delete-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-session.md","rate-limit":100,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"sessionId","description":"Session unique ID. Use the string 'current' to delete the current device session.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]}},"\/account\/verification":{"post":{"summary":"Create Email Verification","operationId":"accountCreateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](\/docs\/client\/account#accountUpdateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createVerification","weight":61,"cookies":false,"type":"","demo":"account\/create-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-verification.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{userId}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"url":{"type":"string","description":"URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"}},"required":["url"]}}]},"put":{"summary":"Create Email Verification (confirmation)","operationId":"accountUpdateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.","responses":{"200":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"updateVerification","weight":62,"cookies":false,"type":"","demo":"account\/update-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-verification.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User unique ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Valid verification token.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/avatars\/browsers\/{code}":{"get":{"summary":"Get Browser Icon","operationId":"avatarsGetBrowser","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user \/account\/sessions endpoint. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getBrowser","weight":64,"cookies":false,"type":"location","demo":"avatars\/get-browser.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-browser.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"code","description":"Browser Code.","required":true,"type":"string","x-example":"aa","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/credit-cards\/{code}":{"get":{"summary":"Get Credit Card Icon","operationId":"avatarsGetCreditCard","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getCreditCard","weight":63,"cookies":false,"type":"location","demo":"avatars\/get-credit-card.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-credit-card.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"code","description":"Credit Card Code. Possible values: amex, argencard, cabal, censosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro.","required":true,"type":"string","x-example":"amex","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/favicon":{"get":{"summary":"Get Favicon","operationId":"avatarsGetFavicon","consumes":["application\/json"],"produces":["image\/*"],"tags":["avatars"],"description":"Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFavicon","weight":67,"cookies":false,"type":"location","demo":"avatars\/get-favicon.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-favicon.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"url","description":"Website URL which you want to fetch the favicon from.","required":true,"type":"string","format":"url","x-example":"https:\/\/example.com","in":"query"}]}},"\/avatars\/flags\/{code}":{"get":{"summary":"Get Country Flag","operationId":"avatarsGetFlag","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFlag","weight":65,"cookies":false,"type":"location","demo":"avatars\/get-flag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-flag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"code","description":"Country Code. ISO Alpha-2 country code format.","required":true,"type":"string","x-example":"af","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/image":{"get":{"summary":"Get Image from URL","operationId":"avatarsGetImage","consumes":["application\/json"],"produces":["image\/*"],"tags":["avatars"],"description":"Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getImage","weight":66,"cookies":false,"type":"location","demo":"avatars\/get-image.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-image.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"url","description":"Image URL which you want to crop.","required":true,"type":"string","format":"url","x-example":"https:\/\/example.com","in":"query"},{"name":"width","description":"Resize preview image width, Pass an integer between 0 to 2000.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"},{"name":"height","description":"Resize preview image height, Pass an integer between 0 to 2000.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"}]}},"\/avatars\/initials":{"get":{"summary":"Get User Initials","operationId":"avatarsGetInitials","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.\n\nYou can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getInitials","weight":69,"cookies":false,"type":"location","demo":"avatars\/get-initials.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-initials.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"name","description":"Full Name. When empty, current user name or email will be used. Max length: 128 chars.","required":false,"type":"string","x-example":"[NAME]","default":"","in":"query"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":500,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":500,"in":"query"},{"name":"color","description":"Changes text color. By default a random color will be picked and stay will persistent to the given name.","required":false,"type":"string","default":"","in":"query"},{"name":"background","description":"Changes background color. By default a random color will be picked and stay will persistent to the given name.","required":false,"type":"string","default":"","in":"query"}]}},"\/avatars\/qr":{"get":{"summary":"Get QR Code","operationId":"avatarsGetQR","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getQR","weight":68,"cookies":false,"type":"location","demo":"avatars\/get-q-r.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-qr.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"text","description":"Plain text to be converted to QR code image.","required":true,"type":"string","x-example":"[TEXT]","in":"query"},{"name":"size","description":"QR code size. Pass an integer between 0 to 1000. Defaults to 400.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"},{"name":"margin","description":"Margin from edge. Pass an integer between 0 to 10. Defaults to 1.","required":false,"type":"integer","format":"int32","x-example":0,"default":1,"in":"query"},{"name":"download","description":"Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.","required":false,"type":"boolean","x-example":false,"default":false,"in":"query"}]}},"\/database\/collections\/{collectionId}\/documents":{"get":{"summary":"List Documents","operationId":"databaseListDocuments","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a list of all the user documents. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's documents. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Documents List","schema":{"$ref":"#\/definitions\/documentList"}}},"x-appwrite":{"method":"listDocuments","weight":94,"cookies":false,"type":"","demo":"database\/list-documents.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-documents.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"queries","description":"Array of query strings.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"},{"name":"limit","description":"Maximum number of documents to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the document used as the starting point for the query, excluding the document itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderAttributes","description":"Array of attributes used to sort results.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"},{"name":"orderTypes","description":"Array of order directions for sorting attribtues. Possible values are DESC for descending order, or ASC for ascending order.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"}]},"post":{"summary":"Create Document","operationId":"databaseCreateDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](\/docs\/server\/database#databaseCreateCollection) API or directly from your database console.","responses":{"201":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"createDocument","weight":93,"cookies":false,"type":"","demo":"database\/create-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection with validation rules using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"documentId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"data":{"type":"object","description":"Document data as JSON object.","default":{},"x-example":"{}"},"read":{"type":"array","description":"An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["documentId","data"]}}]}},"\/database\/collections\/{collectionId}\/documents\/{documentId}":{"get":{"summary":"Get Document","operationId":"databaseGetDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a document by its unique ID. This endpoint response returns a JSON object with the document data.","responses":{"200":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"getDocument","weight":95,"cookies":false,"type":"","demo":"database\/get-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"}]},"patch":{"summary":"Update Document","operationId":"databaseUpdateDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.","responses":{"200":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"updateDocument","weight":97,"cookies":false,"type":"","demo":"database\/update-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/update-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection with validation rules using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"data":{"type":"object","description":"Document data as JSON object.","default":{},"x-example":"{}"},"read":{"type":"array","description":"An array of strings with read permissions. By default inherits the existing read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default inherits the existing write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["data"]}}]},"delete":{"summary":"Delete Document","operationId":"databaseDeleteDocument","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"Delete a document by its unique ID. This endpoint deletes only the parent documents, its attributes and relations to other documents. Child documents **will not** be deleted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteDocument","weight":98,"cookies":false,"type":"","demo":"database\/delete-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"}]}},"\/functions\/{functionId}\/executions":{"get":{"summary":"List Executions","operationId":"functionsListExecutions","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the current user function execution logs. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's executions. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Executions List","schema":{"$ref":"#\/definitions\/executionList"}}},"x-appwrite":{"method":"listExecutions","weight":199,"cookies":false,"type":"","demo":"functions\/list-executions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-executions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"execution.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"cursor","description":"ID of the execution used as the starting point for the query, excluding the execution itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"}]},"post":{"summary":"Create Execution","operationId":"functionsCreateExecution","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.","responses":{"201":{"description":"Execution","schema":{"$ref":"#\/definitions\/execution"}}},"x-appwrite":{"method":"createExecution","weight":198,"cookies":false,"type":"","demo":"functions\/create-execution.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-execution.md","rate-limit":60,"rate-time":60,"rate-key":"url:{url},ip:{ip}","scope":"execution.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"data":{"type":"string","description":"String of custom data to send to function.","default":"","x-example":"[DATA]"}}}}]}},"\/functions\/{functionId}\/executions\/{executionId}":{"get":{"summary":"Get Execution","operationId":"functionsGetExecution","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a function execution log by its unique ID.","responses":{"200":{"description":"Execution","schema":{"$ref":"#\/definitions\/execution"}}},"x-appwrite":{"method":"getExecution","weight":200,"cookies":false,"type":"","demo":"functions\/get-execution.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-execution.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"execution.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"executionId","description":"Execution unique ID.","required":true,"type":"string","x-example":"[EXECUTION_ID]","in":"path"}]}},"\/locale":{"get":{"summary":"Get User Locale","operationId":"localeGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.\n\n([IP Geolocation by DB-IP](https:\/\/db-ip.com))","responses":{"200":{"description":"Locale","schema":{"$ref":"#\/definitions\/locale"}}},"x-appwrite":{"method":"get","weight":99,"cookies":false,"type":"","demo":"locale\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/locale\/continents":{"get":{"summary":"List Continents","operationId":"localeGetContinents","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all continents. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Continents List","schema":{"$ref":"#\/definitions\/continentList"}}},"x-appwrite":{"method":"getContinents","weight":103,"cookies":false,"type":"","demo":"locale\/get-continents.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-continents.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/locale\/countries":{"get":{"summary":"List Countries","operationId":"localeGetCountries","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Countries List","schema":{"$ref":"#\/definitions\/countryList"}}},"x-appwrite":{"method":"getCountries","weight":100,"cookies":false,"type":"","demo":"locale\/get-countries.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/locale\/countries\/eu":{"get":{"summary":"List EU Countries","operationId":"localeGetCountriesEU","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries that are currently members of the EU. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Countries List","schema":{"$ref":"#\/definitions\/countryList"}}},"x-appwrite":{"method":"getCountriesEU","weight":101,"cookies":false,"type":"","demo":"locale\/get-countries-e-u.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries-eu.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/locale\/countries\/phones":{"get":{"summary":"List Countries Phone Codes","operationId":"localeGetCountriesPhones","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries phone codes. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Phones List","schema":{"$ref":"#\/definitions\/phoneList"}}},"x-appwrite":{"method":"getCountriesPhones","weight":102,"cookies":false,"type":"","demo":"locale\/get-countries-phones.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries-phones.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/locale\/currencies":{"get":{"summary":"List Currencies","operationId":"localeGetCurrencies","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Currencies List","schema":{"$ref":"#\/definitions\/currencyList"}}},"x-appwrite":{"method":"getCurrencies","weight":104,"cookies":false,"type":"","demo":"locale\/get-currencies.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-currencies.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/locale\/languages":{"get":{"summary":"List Languages","operationId":"localeGetLanguages","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.","responses":{"200":{"description":"Languages List","schema":{"$ref":"#\/definitions\/languageList"}}},"x-appwrite":{"method":"getLanguages","weight":105,"cookies":false,"type":"","demo":"locale\/get-languages.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-languages.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/storage\/files":{"get":{"summary":"List Files","operationId":"storageListFiles","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Get a list of all the user files. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's files. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Files List","schema":{"$ref":"#\/definitions\/fileList"}}},"x-appwrite":{"method":"listFiles","weight":150,"cookies":false,"type":"","demo":"storage\/list-files.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the file used as the starting point for the query, excluding the file itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create File","operationId":"storageCreateFile","consumes":["multipart\/form-data"],"produces":["application\/json"],"tags":["storage"],"description":"Create a new file. The user who creates the file will automatically be assigned to read and write access unless he has passed custom values for read and write arguments.","responses":{"201":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"createFile","weight":149,"cookies":false,"type":"upload","demo":"storage\/create-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","required":true,"type":"string","in":"formData"},{"name":"file","description":"Binary file.","required":true,"type":"file","in":"formData"},{"name":"read","description":"An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"in":"formData"},{"name":"write","description":"An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"in":"formData"}]}},"\/storage\/files\/{fileId}":{"get":{"summary":"Get File","operationId":"storageGetFile","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.","responses":{"200":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"getFile","weight":151,"cookies":false,"type":"","demo":"storage\/get-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]},"put":{"summary":"Update File","operationId":"storageUpdateFile","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Update a file by its unique ID. Only users with write permissions have access to update this resource.","responses":{"200":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"updateFile","weight":155,"cookies":false,"type":"","demo":"storage\/update-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"read":{"type":"array","description":"An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["read","write"]}}]},"delete":{"summary":"Delete File","operationId":"storageDeleteFile","consumes":["application\/json"],"produces":[],"tags":["storage"],"description":"Delete a file by its unique ID. Only users with write permissions have access to delete this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteFile","weight":156,"cookies":false,"type":"","demo":"storage\/delete-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/files\/{fileId}\/download":{"get":{"summary":"Get File for Download","operationId":"storageGetFileDownload","consumes":["application\/json"],"produces":["*\/*"],"tags":["storage"],"description":"Get a file content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.","responses":{"200":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getFileDownload","weight":153,"cookies":false,"type":"location","demo":"storage\/get-file-download.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/files\/{fileId}\/preview":{"get":{"summary":"Get File Preview","operationId":"storageGetFilePreview","consumes":["application\/json"],"produces":["image\/*"],"tags":["storage"],"description":"Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFilePreview","weight":152,"cookies":false,"type":"location","demo":"storage\/get-file-preview.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"},{"name":"width","description":"Resize preview image width, Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"height","description":"Resize preview image height, Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"gravity","description":"Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right","required":false,"type":"string","x-example":"center","default":"center","in":"query"},{"name":"quality","description":"Preview image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"borderWidth","description":"Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"borderColor","description":"Preview image border color. Use a valid HEX color, no # is needed for prefix.","required":false,"type":"string","default":"","in":"query"},{"name":"borderRadius","description":"Preview image border radius in pixels. Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"opacity","description":"Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.","required":false,"type":"number","format":"float","x-example":0,"default":1,"in":"query"},{"name":"rotation","description":"Preview image rotation in degrees. Pass an integer between -360 and 360.","required":false,"type":"integer","format":"int32","x-example":-360,"default":0,"in":"query"},{"name":"background","description":"Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.","required":false,"type":"string","default":"","in":"query"},{"name":"output","description":"Output format type (jpeg, jpg, png, gif and webp).","required":false,"type":"string","x-example":"jpg","default":"","in":"query"}]}},"\/storage\/files\/{fileId}\/view":{"get":{"summary":"Get File for View","operationId":"storageGetFileView","consumes":["application\/json"],"produces":["*\/*"],"tags":["storage"],"description":"Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.","responses":{"200":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getFileView","weight":154,"cookies":false,"type":"location","demo":"storage\/get-file-view.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/teams":{"get":{"summary":"List Teams","operationId":"teamsList","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a list of all the current user teams. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's teams. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Teams List","schema":{"$ref":"#\/definitions\/teamList"}}},"x-appwrite":{"method":"list","weight":160,"cookies":false,"type":"","demo":"teams\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the team used as the starting point for the query, excluding the team itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Team","operationId":"teamsCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Create a new team. The user who creates the team will automatically be assigned as the owner of the team. The team owner can invite new members, who will be able add new owners and update or delete the team from your project.","responses":{"201":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"create","weight":159,"cookies":false,"type":"","demo":"teams\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"teamId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Team name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"roles":{"type":"array","description":"Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":["owner"],"x-example":null,"items":{"type":"string"}}},"required":["teamId","name"]}}]}},"\/teams\/{teamId}":{"get":{"summary":"Get Team","operationId":"teamsGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team by its unique ID. All team members have read access for this resource.","responses":{"200":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"get","weight":161,"cookies":false,"type":"","demo":"teams\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"}]},"put":{"summary":"Update Team","operationId":"teamsUpdate","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Update a team by its unique ID. Only team owners have write access for this resource.","responses":{"200":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"update","weight":162,"cookies":false,"type":"","demo":"teams\/update.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Team name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]},"delete":{"summary":"Delete Team","operationId":"teamsDelete","consumes":["application\/json"],"produces":[],"tags":["teams"],"description":"Delete a team by its unique ID. Only team owners have write access for this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":163,"cookies":false,"type":"","demo":"teams\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"}]}},"\/teams\/{teamId}\/memberships":{"get":{"summary":"Get Team Memberships","operationId":"teamsGetMemberships","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team members by the team unique ID. All team members have read access for this list of resources.","responses":{"200":{"description":"Memberships List","schema":{"$ref":"#\/definitions\/membershipList"}}},"x-appwrite":{"method":"getMemberships","weight":165,"cookies":false,"type":"","demo":"teams\/get-memberships.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-members.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the membership used as the starting point for the query, excluding the membership itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Team Membership","operationId":"teamsCreateMembership","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"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.\n\nUse 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.\n\nPlease 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.","responses":{"201":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"createMembership","weight":164,"cookies":false,"type":"","demo":"teams\/create-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team-membership.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"New team member email.","default":null,"x-example":"email@example.com"},"roles":{"type":"array","description":"Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":null,"x-example":null,"items":{"type":"string"}},"url":{"type":"string","description":"URL to redirect the user back to your app from the invitation email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"},"name":{"type":"string","description":"New team member name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["email","roles","url"]}}]}},"\/teams\/{teamId}\/memberships\/{membershipId}":{"get":{"summary":"Get Team Membership","operationId":"teamsGetMembership","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team member by the membership unique id. All team members have read access for this resource.","responses":{"200":{"description":"Memberships List","schema":{"$ref":"#\/definitions\/membershipList"}}},"x-appwrite":{"method":"getMembership","weight":166,"cookies":false,"type":"","demo":"teams\/get-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"membership unique ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"}]},"patch":{"summary":"Update Membership Roles","operationId":"teamsUpdateMembershipRoles","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"","responses":{"200":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"updateMembershipRoles","weight":167,"cookies":false,"type":"","demo":"teams\/update-membership-roles.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-roles.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"roles":{"type":"array","description":"Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["roles"]}}]},"delete":{"summary":"Delete Team Membership","operationId":"teamsDeleteMembership","consumes":["application\/json"],"produces":[],"tags":["teams"],"description":"This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteMembership","weight":169,"cookies":false,"type":"","demo":"teams\/delete-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"}]}},"\/teams\/{teamId}\/memberships\/{membershipId}\/status":{"patch":{"summary":"Update Team Membership Status","operationId":"teamsUpdateMembershipStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user.","responses":{"200":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"updateMembershipStatus","weight":168,"cookies":false,"type":"","demo":"teams\/update-membership-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User unique ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Secret key.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}}},"tags":[{"name":"account","description":"The Account service allows you to authenticate and manage a user account."},{"name":"avatars","description":"The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars."},{"name":"database","description":"The Database service allows you to create structured collections of documents, query and filter lists of documents"},{"name":"locale","description":"The Locale service allows you to customize your app based on your users' location."},{"name":"health","description":"The Health service allows you to both validate and monitor your Appwrite server's health."},{"name":"projects","description":"The Project service allows you to manage all the projects in your Appwrite server."},{"name":"storage","description":"The Storage service allows you to manage your project files."},{"name":"teams","description":"The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources"},{"name":"users","description":"The Users service allows you to manage your project users."},{"name":"functions","description":"The Functions Service allows you view, create and manage your Cloud Functions."}],"definitions":{"documentList":{"description":"Documents List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"documents":{"type":"array","description":"List of documents.","items":{"type":"object","$ref":"#\/definitions\/document"},"x-example":""}},"required":["sum","documents"]},"sessionList":{"description":"Sessions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"sessions":{"type":"array","description":"List of sessions.","items":{"type":"object","$ref":"#\/definitions\/session"},"x-example":""}},"required":["sum","sessions"]},"logList":{"description":"Logs List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"logs":{"type":"array","description":"List of logs.","items":{"type":"object","$ref":"#\/definitions\/log"},"x-example":""}},"required":["sum","logs"]},"fileList":{"description":"Files List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"files":{"type":"array","description":"List of files.","items":{"type":"object","$ref":"#\/definitions\/file"},"x-example":""}},"required":["sum","files"]},"teamList":{"description":"Teams List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"teams":{"type":"array","description":"List of teams.","items":{"type":"object","$ref":"#\/definitions\/team"},"x-example":""}},"required":["sum","teams"]},"membershipList":{"description":"Memberships List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"memberships":{"type":"array","description":"List of memberships.","items":{"type":"object","$ref":"#\/definitions\/membership"},"x-example":""}},"required":["sum","memberships"]},"executionList":{"description":"Executions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"executions":{"type":"array","description":"List of executions.","items":{"type":"object","$ref":"#\/definitions\/execution"},"x-example":""}},"required":["sum","executions"]},"countryList":{"description":"Countries List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"countries":{"type":"array","description":"List of countries.","items":{"type":"object","$ref":"#\/definitions\/country"},"x-example":""}},"required":["sum","countries"]},"continentList":{"description":"Continents List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"continents":{"type":"array","description":"List of continents.","items":{"type":"object","$ref":"#\/definitions\/continent"},"x-example":""}},"required":["sum","continents"]},"languageList":{"description":"Languages List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"languages":{"type":"array","description":"List of languages.","items":{"type":"object","$ref":"#\/definitions\/language"},"x-example":""}},"required":["sum","languages"]},"currencyList":{"description":"Currencies List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"currencies":{"type":"array","description":"List of currencies.","items":{"type":"object","$ref":"#\/definitions\/currency"},"x-example":""}},"required":["sum","currencies"]},"phoneList":{"description":"Phones List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"phones":{"type":"array","description":"List of phones.","items":{"type":"object","$ref":"#\/definitions\/phone"},"x-example":""}},"required":["sum","phones"]},"document":{"description":"Document","type":"object","properties":{"$id":{"type":"string","description":"Document ID.","x-example":"5e5ea5c16897e"},"$collection":{"type":"string","description":"Collection ID.","x-example":"5e5ea5c15117e"},"$read":{"type":"array","description":"Document read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"Document write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"}},"additionalProperties":true,"required":["$id","$collection","$read","$write"]},"log":{"description":"Log","type":"object","properties":{"event":{"type":"string","description":"Event name.","x-example":"account.sessions.create"},"userId":{"type":"string","description":"User ID.","x-example":"610fc2f985ee0"},"userEmail":{"type":"string","description":"User Email.","x-example":"john@appwrite.io"},"userName":{"type":"string","description":"User Name.","x-example":"John Doe"},"mode":{"type":"string","description":"API mode when event triggered.","x-example":"admin"},"ip":{"type":"string","description":"IP session in use when the session was created.","x-example":"127.0.0.1"},"time":{"type":"integer","description":"Log creation time in Unix timestamp.","x-example":1592981250,"format":"int32"},"osCode":{"type":"string","description":"Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).","x-example":"Mac"},"osName":{"type":"string","description":"Operating system name.","x-example":"Mac"},"osVersion":{"type":"string","description":"Operating system version.","x-example":"Mac"},"clientType":{"type":"string","description":"Client type.","x-example":"browser"},"clientCode":{"type":"string","description":"Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).","x-example":"CM"},"clientName":{"type":"string","description":"Client name.","x-example":"Chrome Mobile iOS"},"clientVersion":{"type":"string","description":"Client version.","x-example":"84.0"},"clientEngine":{"type":"string","description":"Client engine name.","x-example":"WebKit"},"clientEngineVersion":{"type":"string","description":"Client engine name.","x-example":"605.1.15"},"deviceName":{"type":"string","description":"Device name.","x-example":"smartphone"},"deviceBrand":{"type":"string","description":"Device brand name.","x-example":"Google"},"deviceModel":{"type":"string","description":"Device model name.","x-example":"Nexus 5"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"}},"required":["event","userId","userEmail","userName","mode","ip","time","osCode","osName","osVersion","clientType","clientCode","clientName","clientVersion","clientEngine","clientEngineVersion","deviceName","deviceBrand","deviceModel","countryCode","countryName"]},"user":{"description":"User","type":"object","properties":{"$id":{"type":"string","description":"User ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"User name.","x-example":"John Doe"},"registration":{"type":"integer","description":"User registration date in Unix timestamp.","x-example":1592981250,"format":"int32"},"status":{"type":"boolean","description":"User status. Pass `true` for enabled and `false` for disabled.","x-example":true},"passwordUpdate":{"type":"integer","description":"Unix timestamp of the most recent password update","x-example":1592981250,"format":"int32"},"email":{"type":"string","description":"User email address.","x-example":"john@appwrite.io"},"emailVerification":{"type":"boolean","description":"Email verification status.","x-example":true},"prefs":{"type":"object","description":"User preferences as a key-value object","x-example":{"theme":"pink","timezone":"UTC"},"items":{"type":"object","$ref":"#\/definitions\/preferences"}}},"required":["$id","name","registration","status","passwordUpdate","email","emailVerification","prefs"]},"preferences":{"description":"Preferences","type":"object","additionalProperties":true},"session":{"description":"Session","type":"object","properties":{"$id":{"type":"string","description":"Session ID.","x-example":"5e5ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5bb8c16897e"},"expire":{"type":"integer","description":"Session expiration date in Unix timestamp.","x-example":1592981250,"format":"int32"},"provider":{"type":"string","description":"Session Provider.","x-example":"email"},"providerUid":{"type":"string","description":"Session Provider User ID.","x-example":"user@example.com"},"providerToken":{"type":"string","description":"Session Provider Token.","x-example":"MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"},"ip":{"type":"string","description":"IP in use when the session was created.","x-example":"127.0.0.1"},"osCode":{"type":"string","description":"Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).","x-example":"Mac"},"osName":{"type":"string","description":"Operating system name.","x-example":"Mac"},"osVersion":{"type":"string","description":"Operating system version.","x-example":"Mac"},"clientType":{"type":"string","description":"Client type.","x-example":"browser"},"clientCode":{"type":"string","description":"Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).","x-example":"CM"},"clientName":{"type":"string","description":"Client name.","x-example":"Chrome Mobile iOS"},"clientVersion":{"type":"string","description":"Client version.","x-example":"84.0"},"clientEngine":{"type":"string","description":"Client engine name.","x-example":"WebKit"},"clientEngineVersion":{"type":"string","description":"Client engine name.","x-example":"605.1.15"},"deviceName":{"type":"string","description":"Device name.","x-example":"smartphone"},"deviceBrand":{"type":"string","description":"Device brand name.","x-example":"Google"},"deviceModel":{"type":"string","description":"Device model name.","x-example":"Nexus 5"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"},"current":{"type":"boolean","description":"Returns true if this the current user session.","x-example":true}},"required":["$id","userId","expire","provider","providerUid","providerToken","ip","osCode","osName","osVersion","clientType","clientCode","clientName","clientVersion","clientEngine","clientEngineVersion","deviceName","deviceBrand","deviceModel","countryCode","countryName","current"]},"token":{"description":"Token","type":"object","properties":{"$id":{"type":"string","description":"Token ID.","x-example":"bb8ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5ea5c168bb8"},"secret":{"type":"string","description":"Token secret key. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.","x-example":""},"expire":{"type":"integer","description":"Token expiration date in Unix timestamp.","x-example":1592981250,"format":"int32"}},"required":["$id","userId","secret","expire"]},"jwt":{"description":"JWT","type":"object","properties":{"jwt":{"type":"string","description":"JWT encoded string.","x-example":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"}},"required":["jwt"]},"locale":{"description":"Locale","type":"object","properties":{"ip":{"type":"string","description":"User IP address.","x-example":"127.0.0.1"},"countryCode":{"type":"string","description":"Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format","x-example":"US"},"country":{"type":"string","description":"Country name. This field support localization.","x-example":"United States"},"continentCode":{"type":"string","description":"Continent code. A two character continent code \"AF\" for Africa, \"AN\" for Antarctica, \"AS\" for Asia, \"EU\" for Europe, \"NA\" for North America, \"OC\" for Oceania, and \"SA\" for South America.","x-example":"NA"},"continent":{"type":"string","description":"Continent name. This field support localization.","x-example":"North America"},"eu":{"type":"boolean","description":"True if country is part of the Europian Union.","x-example":false},"currency":{"type":"string","description":"Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format","x-example":"USD"}},"required":["ip","countryCode","country","continentCode","continent","eu","currency"]},"file":{"description":"File","type":"object","properties":{"$id":{"type":"string","description":"File ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"File read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"File write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"},"name":{"type":"string","description":"File name.","x-example":"Pink.png"},"dateCreated":{"type":"integer","description":"File creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"signature":{"type":"string","description":"File MD5 signature.","x-example":"5d529fd02b544198ae075bd57c1762bb"},"mimeType":{"type":"string","description":"File mime type.","x-example":"image\/png"},"sizeOriginal":{"type":"integer","description":"File original size in bytes.","x-example":17890,"format":"int32"}},"required":["$id","$read","$write","name","dateCreated","signature","mimeType","sizeOriginal"]},"team":{"description":"Team","type":"object","properties":{"$id":{"type":"string","description":"Team ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Team name.","x-example":"VIP"},"dateCreated":{"type":"integer","description":"Team creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"sum":{"type":"integer","description":"Total sum of team members.","x-example":7,"format":"int32"}},"required":["$id","name","dateCreated","sum"]},"membership":{"description":"Membership","type":"object","properties":{"$id":{"type":"string","description":"Membership ID.","x-example":"5e5ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5ea5c16897e"},"teamId":{"type":"string","description":"Team ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"User name.","x-example":"VIP"},"email":{"type":"string","description":"User email address.","x-example":"john@appwrite.io"},"invited":{"type":"integer","description":"Date, the user has been invited to join the team in Unix timestamp.","x-example":1592981250,"format":"int32"},"joined":{"type":"integer","description":"Date, the user has accepted the invitation to join the team in Unix timestamp.","x-example":1592981250,"format":"int32"},"confirm":{"type":"boolean","description":"User confirmation status, true if the user has joined the team or false otherwise.","x-example":false},"roles":{"type":"array","description":"User list of roles","items":{"type":"string"},"x-example":"admin"}},"required":["$id","userId","teamId","name","email","invited","joined","confirm","roles"]},"execution":{"description":"Execution","type":"object","properties":{"$id":{"type":"string","description":"Execution ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"Execution read permissions.","items":{"type":"string"},"x-example":"role:all"},"functionId":{"type":"string","description":"Function ID.","x-example":"5e5ea6g16897e"},"dateCreated":{"type":"integer","description":"The execution creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"trigger":{"type":"string","description":"The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.","x-example":"http"},"status":{"type":"string","description":"The status of the function execution. Possible values can be: `waiting`, `processing`, `completed`, or `failed`.","x-example":"processing"},"exitCode":{"type":"integer","description":"The script exit code.","x-example":0,"format":"int32"},"stdout":{"type":"string","description":"The script stdout output string. Logs the last 4,000 characters of the execution stdout output.","x-example":""},"stderr":{"type":"string","description":"The script stderr output string. Logs the last 4,000 characters of the execution stderr output","x-example":""},"time":{"type":"number","description":"The script execution time in seconds.","x-example":0.4,"format":"double"}},"required":["$id","$read","functionId","dateCreated","trigger","status","exitCode","stdout","stderr","time"]},"country":{"description":"Country","type":"object","properties":{"name":{"type":"string","description":"Country name.","x-example":"United States"},"code":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"}},"required":["name","code"]},"continent":{"description":"Continent","type":"object","properties":{"name":{"type":"string","description":"Continent name.","x-example":"Europe"},"code":{"type":"string","description":"Continent two letter code.","x-example":"EU"}},"required":["name","code"]},"language":{"description":"Language","type":"object","properties":{"name":{"type":"string","description":"Language name.","x-example":"Italian"},"code":{"type":"string","description":"Language two-character ISO 639-1 codes.","x-example":"it"},"nativeName":{"type":"string","description":"Language native name.","x-example":"Italiano"}},"required":["name","code","nativeName"]},"currency":{"description":"Currency","type":"object","properties":{"symbol":{"type":"string","description":"Currency symbol.","x-example":"$"},"name":{"type":"string","description":"Currency name.","x-example":"US dollar"},"symbolNative":{"type":"string","description":"Currency native symbol.","x-example":"$"},"decimalDigits":{"type":"integer","description":"Number of decimal digits.","x-example":2,"format":"int32"},"rounding":{"type":"number","description":"Currency digit rounding.","x-example":0,"format":"double"},"code":{"type":"string","description":"Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format.","x-example":"USD"},"namePlural":{"type":"string","description":"Currency plural name","x-example":"US dollars"}},"required":["symbol","name","symbolNative","decimalDigits","rounding","code","namePlural"]},"phone":{"description":"Phone","type":"object","properties":{"code":{"type":"string","description":"Phone code.","x-example":"+1"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"}},"required":["code","countryCode","countryName"]}},"externalDocs":{"description":"Full API docs, specs and tutorials","url":"https:\/\/appwrite.io\/docs"}} \ No newline at end of file diff --git a/app/config/specs/0.12.x.console.json b/app/config/specs/0.12.x.console.json index 9d79d8cb72..fb149208ec 100644 --- a/app/config/specs/0.12.x.console.json +++ b/app/config/specs/0.12.x.console.json @@ -1 +1 @@ -{"swagger":"2.0","info":{"version":"0.12.0","title":"Appwrite","description":"Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)","termsOfService":"https:\/\/appwrite.io\/policy\/terms","contact":{"name":"Appwrite Team","url":"https:\/\/appwrite.io\/support","email":"team@appwrite.io"},"license":{"name":"BSD-3-Clause","url":"https:\/\/raw.githubusercontent.com\/appwrite\/appwrite\/master\/LICENSE"}},"host":"appwrite.io","basePath":"\/v1","schemes":["https"],"consumes":["application\/json","multipart\/form-data"],"produces":["application\/json"],"securityDefinitions":{"Project":{"type":"apiKey","name":"X-Appwrite-Project","description":"Your project ID","in":"header","x-appwrite":{"demo":"5df5acd0d48c2"}},"Key":{"type":"apiKey","name":"X-Appwrite-Key","description":"Your secret API key","in":"header","x-appwrite":{"demo":"919c2d18fb5d4...a2ae413da83346ad2"}},"JWT":{"type":"apiKey","name":"X-Appwrite-JWT","description":"Your secret JSON Web Token","in":"header","x-appwrite":{"demo":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."}},"Locale":{"type":"apiKey","name":"X-Appwrite-Locale","description":"","in":"header","x-appwrite":{"demo":"en"}},"Mode":{"type":"apiKey","name":"X-Appwrite-Mode","description":"","in":"header","x-appwrite":{"demo":""}}},"paths":{"\/account":{"get":{"summary":"Get Account","operationId":"accountGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user data as JSON object.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"get","weight":47,"cookies":false,"type":"","demo":"account\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]},"post":{"summary":"Create Account","operationId":"accountCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to allow a new user to register a new account in your project. After the user registration completes successfully, you can use the [\/account\/verfication](\/docs\/client\/account#accountCreateVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](\/docs\/client\/account#accountCreateSession).","responses":{"201":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"create","weight":37,"cookies":false,"type":"","demo":"account\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be between 6 to 32 chars.","default":null,"x-example":"password"},"name":{"type":"string","description":"User name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["userId","email","password"]}}]},"delete":{"summary":"Delete Account","operationId":"accountDelete","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Delete a currently logged in user account. Behind the scene, the user record is not deleted but permanently blocked from any access. This is done to avoid deleted accounts being overtaken by new users with the same email address. Any user-related resources like documents or storage files should be deleted separately.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":56,"cookies":false,"type":"","demo":"account\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/account\/email":{"patch":{"summary":"Update Account Email","operationId":"accountUpdateEmail","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account email address. After changing user address, user confirmation status is being reset and a new confirmation mail is sent. For security measures, user password is required to complete this request.\nThis endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateEmail","weight":54,"cookies":false,"type":"","demo":"account\/update-email.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-email.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be between 6 to 32 chars.","default":null,"x-example":"password"}},"required":["email","password"]}}]}},"\/account\/jwt":{"post":{"summary":"Create Account JWT","operationId":"accountCreateJWT","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to create a JSON Web Token. You can use the resulting JWT to authenticate on behalf of the current user when working with the Appwrite server-side API and SDKs. The JWT secret is valid for 15 minutes from its creation and will be invalid if the user will logout in that time frame.","responses":{"201":{"description":"JWT","schema":{"$ref":"#\/definitions\/jwt"}}},"x-appwrite":{"method":"createJWT","weight":46,"cookies":false,"type":"","demo":"account\/create-j-w-t.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-jwt.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{userId}","scope":"account","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}]}},"\/account\/logs":{"get":{"summary":"Get Account Logs","operationId":"accountGetLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user list of latest security activity logs. Each log returns user IP address, location and date and time of log.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"getLogs","weight":50,"cookies":false,"type":"","demo":"account\/get-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"limit","description":"Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/account\/name":{"patch":{"summary":"Update Account Name","operationId":"accountUpdateName","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account name.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateName","weight":52,"cookies":false,"type":"","demo":"account\/update-name.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-name.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"User name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]}},"\/account\/password":{"patch":{"summary":"Update Account Password","operationId":"accountUpdatePassword","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user password. For validation, user is required to pass in the new password, and the old password. For users created with OAuth and Team Invites, oldPassword is optional.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePassword","weight":53,"cookies":false,"type":"","demo":"account\/update-password.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-password.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"password":{"type":"string","description":"New user password. Must be between 6 to 32 chars.","default":null,"x-example":"password"},"oldPassword":{"type":"string","description":"Old user password. Must be between 6 to 32 chars.","default":"","x-example":"password"}},"required":["password"]}}]}},"\/account\/prefs":{"get":{"summary":"Get Account Preferences","operationId":"accountGetPrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user preferences as a key-value object.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"getPrefs","weight":48,"cookies":false,"type":"","demo":"account\/get-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]},"patch":{"summary":"Update Account Preferences","operationId":"accountUpdatePrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account preferences. You can pass only the specific settings you wish to update.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePrefs","weight":55,"cookies":false,"type":"","demo":"account\/update-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"prefs":{"type":"object","description":"Prefs key-value JSON object.","default":{},"x-example":"{}"}},"required":["prefs"]}}]}},"\/account\/recovery":{"post":{"summary":"Create Password Recovery","operationId":"accountCreateRecovery","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Sends the user an email with a temporary secret key for password reset. When the user clicks the confirmation link he is redirected back to your app password reset URL with the secret key and email address values attached to the URL query string. Use the query string params to submit a request to the [PUT \/account\/recovery](\/docs\/client\/account#accountUpdateRecovery) endpoint to complete the process. The verification link sent to the user's email address is valid for 1 hour.","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createRecovery","weight":59,"cookies":false,"type":"","demo":"account\/create-recovery.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-recovery.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"url":{"type":"string","description":"URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"}},"required":["email","url"]}}]},"put":{"summary":"Create Password Recovery (confirmation)","operationId":"accountUpdateRecovery","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/recovery](\/docs\/client\/account#accountCreateRecovery) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.","responses":{"200":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"updateRecovery","weight":60,"cookies":false,"type":"","demo":"account\/update-recovery.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-recovery.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User account UID address.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Valid reset token.","default":null,"x-example":"[SECRET]"},"password":{"type":"string","description":"New password. Must be between 6 to 32 chars.","default":null,"x-example":"password"},"passwordAgain":{"type":"string","description":"New password again. Must be between 6 to 32 chars.","default":null,"x-example":"password"}},"required":["userId","secret","password","passwordAgain"]}}]}},"\/account\/sessions":{"get":{"summary":"Get Account Sessions","operationId":"accountGetSessions","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user list of active sessions across different devices.","responses":{"200":{"description":"Sessions List","schema":{"$ref":"#\/definitions\/sessionList"}}},"x-appwrite":{"method":"getSessions","weight":49,"cookies":false,"type":"","demo":"account\/get-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]},"post":{"summary":"Create Account Session","operationId":"accountCreateSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Allow the user to login into their account by providing a valid email and password combination. This route will create a new session for the user.","responses":{"201":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"createSession","weight":38,"cookies":false,"type":"","demo":"account\/create-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be between 6 to 32 chars.","default":null,"x-example":"password"}},"required":["email","password"]}}]},"delete":{"summary":"Delete All Account Sessions","operationId":"accountDeleteSessions","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Delete all sessions from the user account and remove any sessions cookies from the end client.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSessions","weight":58,"cookies":false,"type":"","demo":"account\/delete-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-sessions.md","rate-limit":100,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/account\/sessions\/anonymous":{"post":{"summary":"Create Anonymous Session","operationId":"accountCreateAnonymousSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to allow a new user to register an anonymous account in your project. This route will also create a new session for the user. To allow the new user to convert an anonymous account to a normal account, you need to update its [email and password](\/docs\/client\/account#accountUpdateEmail) or create an [OAuth2 session](\/docs\/client\/account#accountCreateOAuth2Session).","responses":{"201":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"createAnonymousSession","weight":45,"cookies":false,"type":"","demo":"account\/create-anonymous-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session-anonymous.md","rate-limit":50,"rate-time":3600,"rate-key":"ip:{ip}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}]}},"\/account\/sessions\/magic-url":{"post":{"summary":"Create Magic URL session","operationId":"accountCreateMagicURLSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Sends the user an email with a secret key for creating a session. When the user clicks the link in the email, the user is redirected back to the URL you provided with the secret key and userId values attached to the URL query string. Use the query string parameters to submit a request to the [PUT \/account\/sessions\/magic-url](\/docs\/client\/account#accountUpdateMagicURLSession) endpoint to complete the login process. The link sent to the user's email address is valid for 1 hour. If you are on a mobile device you can leave the URL parameter empty, so that the login completion will be handled by your Appwrite instance by default.","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createMagicURLSession","weight":43,"cookies":false,"type":"","demo":"account\/create-magic-u-r-l-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-magic-url-session.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"url":{"type":"string","description":"URL to redirect the user back to your app from the magic URL login. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":"","x-example":"https:\/\/example.com"}},"required":["userId","email"]}}]},"put":{"summary":"Create Magic URL session (confirmation)","operationId":"accountUpdateMagicURLSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete creating the session with the Magic URL. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/sessions\/magic-url](\/docs\/client\/account#accountCreateMagicURLSession) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.","responses":{"200":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"updateMagicURLSession","weight":44,"cookies":false,"type":"","demo":"account\/update-magic-u-r-l-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-magic-url-session.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User unique ID.","default":null,"x-example":null},"secret":{"type":"string","description":"Valid verification token.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/account\/sessions\/oauth2\/{provider}":{"get":{"summary":"Create Account Session with OAuth2","operationId":"accountCreateOAuth2Session","consumes":["application\/json"],"produces":["text\/html"],"tags":["account"],"description":"Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the email received from the OAuth2 provider and attach the new session to the existing user. If no matching user is found - the server will create a new user..\n","responses":{"301":{"description":"No content"}},"x-appwrite":{"method":"createOAuth2Session","weight":39,"cookies":false,"type":"webAuth","demo":"account\/create-o-auth2session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session-oauth2.md","rate-limit":50,"rate-time":3600,"rate-key":"ip:{ip}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"provider","description":"OAuth2 Provider. Currently, supported providers are: amazon, apple, bitbucket, bitly, box, discord, dropbox, facebook, github, gitlab, google, linkedin, microsoft, paypal, paypalSandbox, salesforce, slack, spotify, tradeshift, tradeshiftBox, twitch, vk, yahoo, yandex, wordpress.","required":true,"type":"string","x-example":"amazon","in":"path"},{"name":"success","description":"URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","required":false,"type":"string","format":"url","x-example":"https:\/\/example.com","default":"","in":"query"},{"name":"failure","description":"URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","required":false,"type":"string","format":"url","x-example":"https:\/\/example.com","default":"","in":"query"},{"name":"scopes","description":"A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"}]}},"\/account\/sessions\/{sessionId}":{"get":{"summary":"Get Session By ID","operationId":"accountGetSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to get a logged in user's session using a Session ID. Inputting 'current' will return the current session being used.","responses":{"200":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"getSession","weight":51,"cookies":false,"type":"","demo":"account\/get-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-session.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"sessionId","description":"Session unique ID. Use the string 'current' to get the current device session.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]},"delete":{"summary":"Delete Account Session","operationId":"accountDeleteSession","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Use this endpoint to log out the currently logged in user from all their account sessions across all of their different devices. When using the option id argument, only the session unique ID provider will be deleted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSession","weight":57,"cookies":false,"type":"","demo":"account\/delete-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-session.md","rate-limit":100,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"sessionId","description":"Session unique ID. Use the string 'current' to delete the current device session.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]}},"\/account\/verification":{"post":{"summary":"Create Email Verification","operationId":"accountCreateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](\/docs\/client\/account#accountUpdateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createVerification","weight":61,"cookies":false,"type":"","demo":"account\/create-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-verification.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{userId}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"url":{"type":"string","description":"URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"}},"required":["url"]}}]},"put":{"summary":"Create Email Verification (confirmation)","operationId":"accountUpdateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.","responses":{"200":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"updateVerification","weight":62,"cookies":false,"type":"","demo":"account\/update-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-verification.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User unique ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Valid verification token.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/avatars\/browsers\/{code}":{"get":{"summary":"Get Browser Icon","operationId":"avatarsGetBrowser","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user \/account\/sessions endpoint. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getBrowser","weight":64,"cookies":false,"type":"location","demo":"avatars\/get-browser.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-browser.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"code","description":"Browser Code.","required":true,"type":"string","x-example":"aa","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/credit-cards\/{code}":{"get":{"summary":"Get Credit Card Icon","operationId":"avatarsGetCreditCard","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getCreditCard","weight":63,"cookies":false,"type":"location","demo":"avatars\/get-credit-card.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-credit-card.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"code","description":"Credit Card Code. Possible values: amex, argencard, cabal, censosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro.","required":true,"type":"string","x-example":"amex","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/favicon":{"get":{"summary":"Get Favicon","operationId":"avatarsGetFavicon","consumes":["application\/json"],"produces":["image\/*"],"tags":["avatars"],"description":"Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFavicon","weight":67,"cookies":false,"type":"location","demo":"avatars\/get-favicon.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-favicon.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"url","description":"Website URL which you want to fetch the favicon from.","required":true,"type":"string","format":"url","x-example":"https:\/\/example.com","in":"query"}]}},"\/avatars\/flags\/{code}":{"get":{"summary":"Get Country Flag","operationId":"avatarsGetFlag","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFlag","weight":65,"cookies":false,"type":"location","demo":"avatars\/get-flag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-flag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"code","description":"Country Code. ISO Alpha-2 country code format.","required":true,"type":"string","x-example":"af","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/image":{"get":{"summary":"Get Image from URL","operationId":"avatarsGetImage","consumes":["application\/json"],"produces":["image\/*"],"tags":["avatars"],"description":"Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getImage","weight":66,"cookies":false,"type":"location","demo":"avatars\/get-image.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-image.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"url","description":"Image URL which you want to crop.","required":true,"type":"string","format":"url","x-example":"https:\/\/example.com","in":"query"},{"name":"width","description":"Resize preview image width, Pass an integer between 0 to 2000.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"},{"name":"height","description":"Resize preview image height, Pass an integer between 0 to 2000.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"}]}},"\/avatars\/initials":{"get":{"summary":"Get User Initials","operationId":"avatarsGetInitials","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.\n\nYou can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getInitials","weight":69,"cookies":false,"type":"location","demo":"avatars\/get-initials.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-initials.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"name","description":"Full Name. When empty, current user name or email will be used. Max length: 128 chars.","required":false,"type":"string","x-example":"[NAME]","default":"","in":"query"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":500,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":500,"in":"query"},{"name":"color","description":"Changes text color. By default a random color will be picked and stay will persistent to the given name.","required":false,"type":"string","default":"","in":"query"},{"name":"background","description":"Changes background color. By default a random color will be picked and stay will persistent to the given name.","required":false,"type":"string","default":"","in":"query"}]}},"\/avatars\/qr":{"get":{"summary":"Get QR Code","operationId":"avatarsGetQR","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getQR","weight":68,"cookies":false,"type":"location","demo":"avatars\/get-q-r.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-qr.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"text","description":"Plain text to be converted to QR code image.","required":true,"type":"string","x-example":"[TEXT]","in":"query"},{"name":"size","description":"QR code size. Pass an integer between 0 to 1000. Defaults to 400.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"},{"name":"margin","description":"Margin from edge. Pass an integer between 0 to 10. Defaults to 1.","required":false,"type":"integer","format":"int32","x-example":0,"default":1,"in":"query"},{"name":"download","description":"Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.","required":false,"type":"boolean","x-example":false,"default":false,"in":"query"}]}},"\/database\/collections":{"get":{"summary":"List Collections","operationId":"databaseListCollections","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a list of all the user collections. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's collections. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Collections List","schema":{"$ref":"#\/definitions\/collectionList"}}},"x-appwrite":{"method":"listCollections","weight":71,"cookies":false,"type":"","demo":"database\/list-collections.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-collections.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the collection used as the starting point for the query, excluding the collection itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Collection","operationId":"databaseCreateCollection","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new Collection.","responses":{"201":{"description":"Collection","schema":{"$ref":"#\/definitions\/collection"}}},"x-appwrite":{"method":"createCollection","weight":70,"cookies":false,"type":"","demo":"database\/create-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"collectionId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Collection name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"permission":{"type":"string","description":"Permissions type model to use for reading documents in this collection. You can use collection-level permission set once on the collection using the `read` and `write` params, or you can set document-level permission where each document read and write params will decide who has access to read and write to each document individually. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"document"},"read":{"type":"array","description":"An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["collectionId","name","permission","read","write"]}}]}},"\/database\/collections\/{collectionId}":{"get":{"summary":"Get Collection","operationId":"databaseGetCollection","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.","responses":{"200":{"description":"Collection","schema":{"$ref":"#\/definitions\/collection"}}},"x-appwrite":{"method":"getCollection","weight":72,"cookies":false,"type":"","demo":"database\/get-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]},"put":{"summary":"Update Collection","operationId":"databaseUpdateCollection","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Update a collection by its unique ID.","responses":{"200":{"description":"Collection","schema":{"$ref":"#\/definitions\/collection"}}},"x-appwrite":{"method":"updateCollection","weight":76,"cookies":false,"type":"","demo":"database\/update-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/update-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Collection name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"permission":{"type":"string","description":"Permissions type model to use for reading documents in this collection. You can use collection-level permission set once on the collection using the `read` and `write` params, or you can set document-level permission where each document read and write params will decide who has access to read and write to each document individually. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"document"},"read":{"type":"array","description":"An array of strings with read permissions. By default inherits the existing read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default inherits the existing write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["name","permission"]}}]},"delete":{"summary":"Delete Collection","operationId":"databaseDeleteCollection","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteCollection","weight":77,"cookies":false,"type":"","demo":"database\/delete-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]}},"\/database\/collections\/{collectionId}\/attributes":{"get":{"summary":"List Attributes","operationId":"databaseListAttributes","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"Attributes List","schema":{"$ref":"#\/definitions\/attributeList"}}},"x-appwrite":{"method":"listAttributes","weight":86,"cookies":false,"type":"","demo":"database\/list-attributes.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-attributes.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]}},"\/database\/collections\/{collectionId}\/attributes\/boolean":{"post":{"summary":"Create Boolean Attribute","operationId":"databaseCreateBooleanAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a boolean attribute.\n","responses":{"201":{"description":"AttributeBoolean","schema":{"$ref":"#\/definitions\/attributeBoolean"}}},"x-appwrite":{"method":"createBooleanAttribute","weight":85,"cookies":false,"type":"","demo":"database\/create-boolean-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-boolean-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"boolean","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":false},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/email":{"post":{"summary":"Create Email Attribute","operationId":"databaseCreateEmailAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create an email attribute.\n","responses":{"201":{"description":"AttributeEmail","schema":{"$ref":"#\/definitions\/attributeEmail"}}},"x-appwrite":{"method":"createEmailAttribute","weight":79,"cookies":false,"type":"","demo":"database\/create-email-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-email-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"email@example.com"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/enum":{"post":{"summary":"Create Enum Attribute","operationId":"databaseCreateEnumAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"201":{"description":"AttributeEnum","schema":{"$ref":"#\/definitions\/attributeEnum"}}},"x-appwrite":{"method":"createEnumAttribute","weight":80,"cookies":false,"type":"","demo":"database\/create-enum-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-attribute-enum.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"elements":{"type":"array","description":"Array of elements in enumerated type. Uses length of longest element to determine size.","default":null,"x-example":null,"items":{"type":"string"}},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"[DEFAULT]"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","elements","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/float":{"post":{"summary":"Create Float Attribute","operationId":"databaseCreateFloatAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a float attribute. Optionally, minimum and maximum values can be provided.\n","responses":{"201":{"description":"AttributeFloat","schema":{"$ref":"#\/definitions\/attributeFloat"}}},"x-appwrite":{"method":"createFloatAttribute","weight":84,"cookies":false,"type":"","demo":"database\/create-float-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-float-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"min":{"type":"string","description":"Minimum value to enforce on new documents","default":null,"x-example":null},"max":{"type":"string","description":"Maximum value to enforce on new documents","default":null,"x-example":null},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":null},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/integer":{"post":{"summary":"Create Integer Attribute","operationId":"databaseCreateIntegerAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create an integer attribute. Optionally, minimum and maximum values can be provided.\n","responses":{"201":{"description":"AttributeInteger","schema":{"$ref":"#\/definitions\/attributeInteger"}}},"x-appwrite":{"method":"createIntegerAttribute","weight":83,"cookies":false,"type":"","demo":"database\/create-integer-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-integer-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"min":{"type":"integer","description":"Minimum value to enforce on new documents","default":null,"x-example":null},"max":{"type":"integer","description":"Maximum value to enforce on new documents","default":null,"x-example":null},"default":{"type":"integer","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":null},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/ip":{"post":{"summary":"Create IP Address Attribute","operationId":"databaseCreateIpAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create IP address attribute.\n","responses":{"201":{"description":"AttributeIP","schema":{"$ref":"#\/definitions\/attributeIp"}}},"x-appwrite":{"method":"createIpAttribute","weight":81,"cookies":false,"type":"","demo":"database\/create-ip-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-ip-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":null},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/string":{"post":{"summary":"Create String Attribute","operationId":"databaseCreateStringAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new string attribute.\n","responses":{"201":{"description":"AttributeString","schema":{"$ref":"#\/definitions\/attributeString"}}},"x-appwrite":{"method":"createStringAttribute","weight":78,"cookies":false,"type":"","demo":"database\/create-string-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-string-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"size":{"type":"integer","description":"Attribute size for text attributes, in number of characters.","default":null,"x-example":1},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"[DEFAULT]"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","size","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/url":{"post":{"summary":"Create URL Attribute","operationId":"databaseCreateUrlAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a URL attribute.\n","responses":{"201":{"description":"AttributeURL","schema":{"$ref":"#\/definitions\/attributeUrl"}}},"x-appwrite":{"method":"createUrlAttribute","weight":82,"cookies":false,"type":"","demo":"database\/create-url-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-url-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"https:\/\/example.com"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/{attributeId}":{"get":{"summary":"Get Attribute","operationId":"databaseGetAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"AttributeBoolean, or AttributeInteger, or AttributeFloat, or AttributeEmail, or AttributeEnum, or AttributeURL, or AttributeIP, or AttributeString","schema":{"oneOf":[{"$ref":"#\/definitions\/attributeBoolean"},{"$ref":"#\/definitions\/attributeInteger"},{"$ref":"#\/definitions\/attributeFloat"},{"$ref":"#\/definitions\/attributeEmail"},{"$ref":"#\/definitions\/attributeEnum"},{"$ref":"#\/definitions\/attributeUrl"},{"$ref":"#\/definitions\/attributeIp"},{"$ref":"#\/definitions\/attributeString"}]}}},"x-appwrite":{"method":"getAttribute","weight":87,"cookies":false,"type":"","demo":"database\/get-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"attributeId","description":"Attribute ID.","required":true,"type":"string","in":"path"}]},"delete":{"summary":"Delete Attribute","operationId":"databaseDeleteAttribute","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteAttribute","weight":88,"cookies":false,"type":"","demo":"database\/delete-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"attributeId","description":"Attribute ID.","required":true,"type":"string","in":"path"}]}},"\/database\/collections\/{collectionId}\/documents":{"get":{"summary":"List Documents","operationId":"databaseListDocuments","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a list of all the user documents. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's documents. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Documents List","schema":{"$ref":"#\/definitions\/documentList"}}},"x-appwrite":{"method":"listDocuments","weight":94,"cookies":false,"type":"","demo":"database\/list-documents.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-documents.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"queries","description":"Array of query strings.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"},{"name":"limit","description":"Maximum number of documents to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the document used as the starting point for the query, excluding the document itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderAttributes","description":"Array of attributes used to sort results.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"},{"name":"orderTypes","description":"Array of order directions for sorting attribtues. Possible values are DESC for descending order, or ASC for ascending order.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"}]},"post":{"summary":"Create Document","operationId":"databaseCreateDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](\/docs\/server\/database#databaseCreateCollection) API or directly from your database console.","responses":{"201":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"createDocument","weight":93,"cookies":false,"type":"","demo":"database\/create-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection with validation rules using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"documentId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"data":{"type":"object","description":"Document data as JSON object.","default":{},"x-example":"{}"},"read":{"type":"array","description":"An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["documentId","data"]}}]}},"\/database\/collections\/{collectionId}\/documents\/{documentId}":{"get":{"summary":"Get Document","operationId":"databaseGetDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a document by its unique ID. This endpoint response returns a JSON object with the document data.","responses":{"200":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"getDocument","weight":95,"cookies":false,"type":"","demo":"database\/get-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"}]},"patch":{"summary":"Update Document","operationId":"databaseUpdateDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.","responses":{"200":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"updateDocument","weight":97,"cookies":false,"type":"","demo":"database\/update-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/update-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection with validation rules using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"data":{"type":"object","description":"Document data as JSON object.","default":{},"x-example":"{}"},"read":{"type":"array","description":"An array of strings with read permissions. By default inherits the existing read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default inherits the existing write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["data"]}}]},"delete":{"summary":"Delete Document","operationId":"databaseDeleteDocument","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"Delete a document by its unique ID. This endpoint deletes only the parent documents, its attributes and relations to other documents. Child documents **will not** be deleted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteDocument","weight":98,"cookies":false,"type":"","demo":"database\/delete-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"}]}},"\/database\/collections\/{collectionId}\/documents\/{documentId}\/logs":{"get":{"summary":"List Document Logs","operationId":"databaseListDocumentLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get the document activity logs list by its unique ID.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"listDocumentLogs","weight":96,"cookies":false,"type":"","demo":"database\/list-document-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-document-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"},{"name":"limit","description":"Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/database\/collections\/{collectionId}\/indexes":{"get":{"summary":"List Indexes","operationId":"databaseListIndexes","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"Indexes List","schema":{"$ref":"#\/definitions\/indexList"}}},"x-appwrite":{"method":"listIndexes","weight":90,"cookies":false,"type":"","demo":"database\/list-indexes.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-indexes.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]},"post":{"summary":"Create Index","operationId":"databaseCreateIndex","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"201":{"description":"Index","schema":{"$ref":"#\/definitions\/index"}}},"x-appwrite":{"method":"createIndex","weight":89,"cookies":false,"type":"","demo":"database\/create-index.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-index.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"indexId":{"type":"string","description":"Index ID.","default":null,"x-example":null},"type":{"type":"string","description":"Index type.","default":null,"x-example":"key"},"attributes":{"type":"array","description":"Array of attributes to index.","default":null,"x-example":null,"items":{"type":"string"}},"orders":{"type":"array","description":"Array of index orders.","default":[],"x-example":null,"items":{"type":"string"}}},"required":["indexId","type","attributes"]}}]}},"\/database\/collections\/{collectionId}\/indexes\/{indexId}":{"get":{"summary":"Get Index","operationId":"databaseGetIndex","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"Index","schema":{"$ref":"#\/definitions\/index"}}},"x-appwrite":{"method":"getIndex","weight":91,"cookies":false,"type":"","demo":"database\/get-index.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-index.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"indexId","description":"Index ID.","required":true,"type":"string","in":"path"}]},"delete":{"summary":"Delete Index","operationId":"databaseDeleteIndex","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteIndex","weight":92,"cookies":false,"type":"","demo":"database\/delete-index.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-index.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"indexId","description":"Index ID.","required":true,"type":"string","in":"path"}]}},"\/database\/collections\/{collectionId}\/logs":{"get":{"summary":"List Collection Logs","operationId":"databaseListCollectionLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get the collection activity logs list by its unique ID.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"listCollectionLogs","weight":75,"cookies":false,"type":"","demo":"database\/list-collection-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-collection-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"limit","description":"Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/database\/usage":{"get":{"summary":"Get usage stats for the database","operationId":"databaseGetUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"UsageDatabase","schema":{"$ref":"#\/definitions\/usageDatabase"}}},"x-appwrite":{"method":"getUsage","weight":73,"cookies":false,"type":"","demo":"database\/get-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"}]}},"\/database\/{collectionId}\/usage":{"get":{"summary":"Get usage stats for a collection","operationId":"databaseGetCollectionUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"UsageCollection","schema":{"$ref":"#\/definitions\/usageCollection"}}},"x-appwrite":{"method":"getCollectionUsage","weight":74,"cookies":false,"type":"","demo":"database\/get-collection-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"},{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]}},"\/functions":{"get":{"summary":"List Functions","operationId":"functionsList","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the project's functions. You can use the query params to filter your results.","responses":{"200":{"description":"Functions List","schema":{"$ref":"#\/definitions\/functionList"}}},"x-appwrite":{"method":"list","weight":187,"cookies":false,"type":"","demo":"functions\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-functions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the function used as the starting point for the query, excluding the function itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Function","operationId":"functionsCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Create a new function. You can pass a list of [permissions](\/docs\/permissions) to allow different project users or team with access to execute the function using the client API.","responses":{"201":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"create","weight":186,"cookies":false,"type":"","demo":"functions\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"functionId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Function name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"execute":{"type":"array","description":"An array of strings with execution permissions. By default no user is granted with any execute permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"runtime":{"type":"string","description":"Execution runtime.","default":null,"x-example":"dotnet-5.0"},"vars":{"type":"object","description":"Key-value JSON object.","default":[],"x-example":"{}"},"events":{"type":"array","description":"Events list.","default":[],"x-example":null,"items":{"type":"string"}},"schedule":{"type":"string","description":"Schedule CRON syntax.","default":"","x-example":null},"timeout":{"type":"integer","description":"Function maximum execution time in seconds.","default":15,"x-example":1}},"required":["functionId","name","execute","runtime"]}}]}},"\/functions\/{functionId}":{"get":{"summary":"Get Function","operationId":"functionsGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a function by its unique ID.","responses":{"200":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"get","weight":188,"cookies":false,"type":"","demo":"functions\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"}]},"put":{"summary":"Update Function","operationId":"functionsUpdate","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Update function by its unique ID.","responses":{"200":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"update","weight":190,"cookies":false,"type":"","demo":"functions\/update.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/update-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Function name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"execute":{"type":"array","description":"An array of strings with execution permissions. By default no user is granted with any execute permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"vars":{"type":"object","description":"Key-value JSON object.","default":[],"x-example":"{}"},"events":{"type":"array","description":"Events list.","default":[],"x-example":null,"items":{"type":"string"}},"schedule":{"type":"string","description":"Schedule CRON syntax.","default":"","x-example":null},"timeout":{"type":"integer","description":"Function maximum execution time in seconds.","default":15,"x-example":1}},"required":["name","execute"]}}]},"delete":{"summary":"Delete Function","operationId":"functionsDelete","consumes":["application\/json"],"produces":[],"tags":["functions"],"description":"Delete a function by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":192,"cookies":false,"type":"","demo":"functions\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/delete-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"}]}},"\/functions\/{functionId}\/executions":{"get":{"summary":"List Executions","operationId":"functionsListExecutions","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the current user function execution logs. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's executions. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Executions List","schema":{"$ref":"#\/definitions\/executionList"}}},"x-appwrite":{"method":"listExecutions","weight":198,"cookies":false,"type":"","demo":"functions\/list-executions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-executions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"execution.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"cursor","description":"ID of the execution used as the starting point for the query, excluding the execution itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"}]},"post":{"summary":"Create Execution","operationId":"functionsCreateExecution","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.","responses":{"201":{"description":"Execution","schema":{"$ref":"#\/definitions\/execution"}}},"x-appwrite":{"method":"createExecution","weight":197,"cookies":false,"type":"","demo":"functions\/create-execution.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-execution.md","rate-limit":60,"rate-time":60,"rate-key":"url:{url},ip:{ip}","scope":"execution.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"data":{"type":"string","description":"String of custom data to send to function.","default":"","x-example":"[DATA]"}}}}]}},"\/functions\/{functionId}\/executions\/{executionId}":{"get":{"summary":"Get Execution","operationId":"functionsGetExecution","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a function execution log by its unique ID.","responses":{"200":{"description":"Execution","schema":{"$ref":"#\/definitions\/execution"}}},"x-appwrite":{"method":"getExecution","weight":199,"cookies":false,"type":"","demo":"functions\/get-execution.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-execution.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"execution.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"executionId","description":"Execution unique ID.","required":true,"type":"string","x-example":"[EXECUTION_ID]","in":"path"}]}},"\/functions\/{functionId}\/tag":{"patch":{"summary":"Update Function Tag","operationId":"functionsUpdateTag","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Update the function code tag ID using the unique function ID. Use this endpoint to switch the code tag that should be executed by the execution endpoint.","responses":{"200":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"updateTag","weight":191,"cookies":false,"type":"","demo":"functions\/update-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/update-function-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"tag":{"type":"string","description":"Tag unique ID.","default":null,"x-example":"[TAG]"}},"required":["tag"]}}]}},"\/functions\/{functionId}\/tags":{"get":{"summary":"List Tags","operationId":"functionsListTags","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the project's code tags. You can use the query params to filter your results.","responses":{"200":{"description":"Tags List","schema":{"$ref":"#\/definitions\/tagList"}}},"x-appwrite":{"method":"listTags","weight":194,"cookies":false,"type":"","demo":"functions\/list-tags.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-tags.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the tag used as the starting point for the query, excluding the tag itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Tag","operationId":"functionsCreateTag","consumes":["multipart\/form-data"],"produces":["application\/json"],"tags":["functions"],"description":"Create a new function code tag. Use this endpoint to upload a new version of your code function. To execute your newly uploaded code, you'll need to update the function's tag to use your new tag UID.\n\nThis endpoint accepts a tar.gz file compressed with your code. Make sure to include any dependencies your code has within the compressed file. You can learn more about code packaging in the [Appwrite Cloud Functions tutorial](\/docs\/functions).\n\nUse the \"command\" param to set the entry point used to execute your code.","responses":{"201":{"description":"Tag","schema":{"$ref":"#\/definitions\/tag"}}},"x-appwrite":{"method":"createTag","weight":193,"cookies":false,"type":"","demo":"functions\/create-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":true,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"command","description":"Code execution command.","required":true,"type":"string","x-example":"[COMMAND]","in":"formData"},{"name":"code","description":"Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.","required":true,"type":"file","in":"formData"}]}},"\/functions\/{functionId}\/tags\/{tagId}":{"get":{"summary":"Get Tag","operationId":"functionsGetTag","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a code tag by its unique ID.","responses":{"200":{"description":"Tag","schema":{"$ref":"#\/definitions\/tag"}}},"x-appwrite":{"method":"getTag","weight":195,"cookies":false,"type":"","demo":"functions\/get-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"tagId","description":"Tag unique ID.","required":true,"type":"string","x-example":"[TAG_ID]","in":"path"}]},"delete":{"summary":"Delete Tag","operationId":"functionsDeleteTag","consumes":["application\/json"],"produces":[],"tags":["functions"],"description":"Delete a code tag by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteTag","weight":196,"cookies":false,"type":"","demo":"functions\/delete-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/delete-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"tagId","description":"Tag unique ID.","required":true,"type":"string","x-example":"[TAG_ID]","in":"path"}]}},"\/functions\/{functionId}\/usage":{"get":{"summary":"Get Function Usage","operationId":"functionsGetUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"","responses":{"200":{"description":"UsageFunctions","schema":{"$ref":"#\/definitions\/usageFunctions"}}},"x-appwrite":{"method":"getUsage","weight":189,"cookies":false,"type":"","demo":"functions\/get-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"}]}},"\/health":{"get":{"summary":"Get HTTP","operationId":"healthGet","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite HTTP server is up and responsive.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"get","weight":106,"cookies":false,"type":"","demo":"health\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/anti-virus":{"get":{"summary":"Get Anti virus","operationId":"healthGetAntiVirus","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite Anti Virus server is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getAntiVirus","weight":117,"cookies":false,"type":"","demo":"health\/get-anti-virus.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-anti-virus.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/cache":{"get":{"summary":"Get Cache","operationId":"healthGetCache","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite in-memory cache server is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getCache","weight":109,"cookies":false,"type":"","demo":"health\/get-cache.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-cache.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/db":{"get":{"summary":"Get DB","operationId":"healthGetDB","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite database server is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getDB","weight":108,"cookies":false,"type":"","demo":"health\/get-d-b.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-db.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/certificates":{"get":{"summary":"Get Certificates Queue","operationId":"healthGetQueueCertificates","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of certificates that are waiting to be issued against [Letsencrypt](https:\/\/letsencrypt.org\/) in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueCertificates","weight":114,"cookies":false,"type":"","demo":"health\/get-queue-certificates.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-certificates.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/functions":{"get":{"summary":"Get Functions Queue","operationId":"healthGetQueueFunctions","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueFunctions","weight":115,"cookies":false,"type":"","demo":"health\/get-queue-functions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-functions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/logs":{"get":{"summary":"Get Logs Queue","operationId":"healthGetQueueLogs","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of logs that are waiting to be processed in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueLogs","weight":112,"cookies":false,"type":"","demo":"health\/get-queue-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/usage":{"get":{"summary":"Get Usage Queue","operationId":"healthGetQueueUsage","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of usage stats that are waiting to be processed in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueUsage","weight":113,"cookies":false,"type":"","demo":"health\/get-queue-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-usage.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/webhooks":{"get":{"summary":"Get Webhooks Queue","operationId":"healthGetQueueWebhooks","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of webhooks that are waiting to be processed in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueWebhooks","weight":111,"cookies":false,"type":"","demo":"health\/get-queue-webhooks.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-webhooks.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/storage\/local":{"get":{"summary":"Get Local Storage","operationId":"healthGetStorageLocal","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite local storage device is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getStorageLocal","weight":116,"cookies":false,"type":"","demo":"health\/get-storage-local.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-local.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/time":{"get":{"summary":"Get Time","operationId":"healthGetTime","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite server time is synced with Google remote NTP server. We use this technology to smoothly handle leap seconds with no disruptive events. The [Network Time Protocol](https:\/\/en.wikipedia.org\/wiki\/Network_Time_Protocol) (NTP) is used by hundreds of millions of computers and devices to synchronize their clocks over the Internet. If your computer sets its own clock, it likely uses NTP.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getTime","weight":110,"cookies":false,"type":"","demo":"health\/get-time.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-time.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/locale":{"get":{"summary":"Get User Locale","operationId":"localeGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.\n\n([IP Geolocation by DB-IP](https:\/\/db-ip.com))","responses":{"200":{"description":"Locale","schema":{"$ref":"#\/definitions\/locale"}}},"x-appwrite":{"method":"get","weight":99,"cookies":false,"type":"","demo":"locale\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/continents":{"get":{"summary":"List Continents","operationId":"localeGetContinents","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all continents. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Continents List","schema":{"$ref":"#\/definitions\/continentList"}}},"x-appwrite":{"method":"getContinents","weight":103,"cookies":false,"type":"","demo":"locale\/get-continents.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-continents.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/countries":{"get":{"summary":"List Countries","operationId":"localeGetCountries","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Countries List","schema":{"$ref":"#\/definitions\/countryList"}}},"x-appwrite":{"method":"getCountries","weight":100,"cookies":false,"type":"","demo":"locale\/get-countries.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/countries\/eu":{"get":{"summary":"List EU Countries","operationId":"localeGetCountriesEU","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries that are currently members of the EU. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Countries List","schema":{"$ref":"#\/definitions\/countryList"}}},"x-appwrite":{"method":"getCountriesEU","weight":101,"cookies":false,"type":"","demo":"locale\/get-countries-e-u.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries-eu.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/countries\/phones":{"get":{"summary":"List Countries Phone Codes","operationId":"localeGetCountriesPhones","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries phone codes. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Phones List","schema":{"$ref":"#\/definitions\/phoneList"}}},"x-appwrite":{"method":"getCountriesPhones","weight":102,"cookies":false,"type":"","demo":"locale\/get-countries-phones.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries-phones.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/currencies":{"get":{"summary":"List Currencies","operationId":"localeGetCurrencies","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Currencies List","schema":{"$ref":"#\/definitions\/currencyList"}}},"x-appwrite":{"method":"getCurrencies","weight":104,"cookies":false,"type":"","demo":"locale\/get-currencies.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-currencies.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/languages":{"get":{"summary":"List Languages","operationId":"localeGetLanguages","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.","responses":{"200":{"description":"Languages List","schema":{"$ref":"#\/definitions\/languageList"}}},"x-appwrite":{"method":"getLanguages","weight":105,"cookies":false,"type":"","demo":"locale\/get-languages.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-languages.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/projects":{"get":{"summary":"List Projects","operationId":"projectsList","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Projects List","schema":{"$ref":"#\/definitions\/projectList"}}},"x-appwrite":{"method":"list","weight":120,"cookies":false,"type":"","demo":"projects\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the project used as the starting point for the query, excluding the project itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Project","operationId":"projectsCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"201":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"create","weight":119,"cookies":false,"type":"","demo":"projects\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"projectId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Project name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"teamId":{"type":"string","description":"Team unique ID.","default":null,"x-example":"[TEAM_ID]"},"description":{"type":"string","description":"Project description. Max length: 256 chars.","default":"","x-example":"[DESCRIPTION]"},"logo":{"type":"string","description":"Project logo.","default":"","x-example":"[LOGO]"},"url":{"type":"string","description":"Project URL.","default":"","x-example":"https:\/\/example.com"},"legalName":{"type":"string","description":"Project legal Name. Max length: 256 chars.","default":"","x-example":"[LEGAL_NAME]"},"legalCountry":{"type":"string","description":"Project legal Country. Max length: 256 chars.","default":"","x-example":"[LEGAL_COUNTRY]"},"legalState":{"type":"string","description":"Project legal State. Max length: 256 chars.","default":"","x-example":"[LEGAL_STATE]"},"legalCity":{"type":"string","description":"Project legal City. Max length: 256 chars.","default":"","x-example":"[LEGAL_CITY]"},"legalAddress":{"type":"string","description":"Project legal Address. Max length: 256 chars.","default":"","x-example":"[LEGAL_ADDRESS]"},"legalTaxId":{"type":"string","description":"Project legal Tax ID. Max length: 256 chars.","default":"","x-example":"[LEGAL_TAX_ID]"}},"required":["projectId","name","teamId"]}}]}},"\/projects\/{projectId}":{"get":{"summary":"Get Project","operationId":"projectsGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"get","weight":121,"cookies":false,"type":"","demo":"projects\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"}]},"patch":{"summary":"Update Project","operationId":"projectsUpdate","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"update","weight":123,"cookies":false,"type":"","demo":"projects\/update.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Project name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"description":{"type":"string","description":"Project description. Max length: 256 chars.","default":"","x-example":"[DESCRIPTION]"},"logo":{"type":"string","description":"Project logo.","default":"","x-example":"[LOGO]"},"url":{"type":"string","description":"Project URL.","default":"","x-example":"https:\/\/example.com"},"legalName":{"type":"string","description":"Project legal name. Max length: 256 chars.","default":"","x-example":"[LEGAL_NAME]"},"legalCountry":{"type":"string","description":"Project legal country. Max length: 256 chars.","default":"","x-example":"[LEGAL_COUNTRY]"},"legalState":{"type":"string","description":"Project legal state. Max length: 256 chars.","default":"","x-example":"[LEGAL_STATE]"},"legalCity":{"type":"string","description":"Project legal city. Max length: 256 chars.","default":"","x-example":"[LEGAL_CITY]"},"legalAddress":{"type":"string","description":"Project legal address. Max length: 256 chars.","default":"","x-example":"[LEGAL_ADDRESS]"},"legalTaxId":{"type":"string","description":"Project legal tax ID. Max length: 256 chars.","default":"","x-example":"[LEGAL_TAX_ID]"}},"required":["name"]}}]},"delete":{"summary":"Delete Project","operationId":"projectsDelete","consumes":["application\/json"],"produces":[],"tags":["projects"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":128,"cookies":false,"type":"","demo":"projects\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"password":{"type":"string","description":"Your user password for confirmation. Must be between 6 to 32 chars.","default":null,"x-example":"[PASSWORD]"}},"required":["password"]}}]}},"\/projects\/{projectId}\/auth\/limit":{"patch":{"summary":"Update Project users limit","operationId":"projectsUpdateAuthLimit","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"updateAuthLimit","weight":126,"cookies":false,"type":"","demo":"projects\/update-auth-limit.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"limit":{"type":"integer","description":"Set the max number of users allowed in this project. Use 0 for unlimited.","default":null,"x-example":null}},"required":["limit"]}}]}},"\/projects\/{projectId}\/auth\/{method}":{"patch":{"summary":"Update Project auth method status. Use this endpoint to enable or disable a given auth method for this project.","operationId":"projectsUpdateAuthStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"updateAuthStatus","weight":127,"cookies":false,"type":"","demo":"projects\/update-auth-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"method","description":"Auth Method. Possible values: email-password,magic-url,anonymous,invites,jwt,phone","required":true,"type":"string","x-example":"email-password","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"status":{"type":"boolean","description":"Set the status of this auth method.","default":null,"x-example":false}},"required":["status"]}}]}},"\/projects\/{projectId}\/domains":{"get":{"summary":"List Domains","operationId":"projectsListDomains","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Domains List","schema":{"$ref":"#\/definitions\/domainList"}}},"x-appwrite":{"method":"listDomains","weight":145,"cookies":false,"type":"","demo":"projects\/list-domains.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"}]},"post":{"summary":"Create Domain","operationId":"projectsCreateDomain","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"201":{"description":"Domain","schema":{"$ref":"#\/definitions\/domain"}}},"x-appwrite":{"method":"createDomain","weight":144,"cookies":false,"type":"","demo":"projects\/create-domain.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name.","default":null,"x-example":null}},"required":["domain"]}}]}},"\/projects\/{projectId}\/domains\/{domainId}":{"get":{"summary":"Get Domain","operationId":"projectsGetDomain","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Domain","schema":{"$ref":"#\/definitions\/domain"}}},"x-appwrite":{"method":"getDomain","weight":146,"cookies":false,"type":"","demo":"projects\/get-domain.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"domainId","description":"Domain unique ID.","required":true,"type":"string","x-example":"[DOMAIN_ID]","in":"path"}]},"delete":{"summary":"Delete Domain","operationId":"projectsDeleteDomain","consumes":["application\/json"],"produces":[],"tags":["projects"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteDomain","weight":148,"cookies":false,"type":"","demo":"projects\/delete-domain.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"domainId","description":"Domain unique ID.","required":true,"type":"string","x-example":"[DOMAIN_ID]","in":"path"}]}},"\/projects\/{projectId}\/domains\/{domainId}\/verification":{"patch":{"summary":"Update Domain Verification Status","operationId":"projectsUpdateDomainVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Domain","schema":{"$ref":"#\/definitions\/domain"}}},"x-appwrite":{"method":"updateDomainVerification","weight":147,"cookies":false,"type":"","demo":"projects\/update-domain-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"domainId","description":"Domain unique ID.","required":true,"type":"string","x-example":"[DOMAIN_ID]","in":"path"}]}},"\/projects\/{projectId}\/keys":{"get":{"summary":"List Keys","operationId":"projectsListKeys","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"API Keys List","schema":{"$ref":"#\/definitions\/keyList"}}},"x-appwrite":{"method":"listKeys","weight":135,"cookies":false,"type":"","demo":"projects\/list-keys.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"}]},"post":{"summary":"Create Key","operationId":"projectsCreateKey","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"201":{"description":"Key","schema":{"$ref":"#\/definitions\/key"}}},"x-appwrite":{"method":"createKey","weight":134,"cookies":false,"type":"","demo":"projects\/create-key.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Key name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"scopes":{"type":"array","description":"Key scopes list.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["name","scopes"]}}]}},"\/projects\/{projectId}\/keys\/{keyId}":{"get":{"summary":"Get Key","operationId":"projectsGetKey","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Key","schema":{"$ref":"#\/definitions\/key"}}},"x-appwrite":{"method":"getKey","weight":136,"cookies":false,"type":"","demo":"projects\/get-key.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"keyId","description":"Key unique ID.","required":true,"type":"string","x-example":"[KEY_ID]","in":"path"}]},"put":{"summary":"Update Key","operationId":"projectsUpdateKey","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Key","schema":{"$ref":"#\/definitions\/key"}}},"x-appwrite":{"method":"updateKey","weight":137,"cookies":false,"type":"","demo":"projects\/update-key.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"keyId","description":"Key unique ID.","required":true,"type":"string","x-example":"[KEY_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Key name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"scopes":{"type":"array","description":"Key scopes list","default":null,"x-example":null,"items":{"type":"string"}}},"required":["name","scopes"]}}]},"delete":{"summary":"Delete Key","operationId":"projectsDeleteKey","consumes":["application\/json"],"produces":[],"tags":["projects"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteKey","weight":138,"cookies":false,"type":"","demo":"projects\/delete-key.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"keyId","description":"Key unique ID.","required":true,"type":"string","x-example":"[KEY_ID]","in":"path"}]}},"\/projects\/{projectId}\/oauth2":{"patch":{"summary":"Update Project OAuth2","operationId":"projectsUpdateOAuth2","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"updateOAuth2","weight":125,"cookies":false,"type":"","demo":"projects\/update-o-auth2.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"provider":{"type":"string","description":"Provider Name","default":null,"x-example":"amazon"},"appId":{"type":"string","description":"Provider app ID. Max length: 256 chars.","default":"","x-example":"[APP_ID]"},"secret":{"type":"string","description":"Provider secret key. Max length: 512 chars.","default":"","x-example":"[SECRET]"}},"required":["provider"]}}]}},"\/projects\/{projectId}\/platforms":{"get":{"summary":"List Platforms","operationId":"projectsListPlatforms","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Platforms List","schema":{"$ref":"#\/definitions\/platformList"}}},"x-appwrite":{"method":"listPlatforms","weight":140,"cookies":false,"type":"","demo":"projects\/list-platforms.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"}]},"post":{"summary":"Create Platform","operationId":"projectsCreatePlatform","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"201":{"description":"Platform","schema":{"$ref":"#\/definitions\/platform"}}},"x-appwrite":{"method":"createPlatform","weight":139,"cookies":false,"type":"","demo":"projects\/create-platform.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"type":{"type":"string","description":"Platform type.","default":null,"x-example":"web"},"name":{"type":"string","description":"Platform name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"key":{"type":"string","description":"Package name for Android or bundle ID for iOS or macOS. Max length: 256 chars.","default":"","x-example":"[KEY]"},"store":{"type":"string","description":"App store or Google Play store ID. Max length: 256 chars.","default":"","x-example":"[STORE]"},"hostname":{"type":"string","description":"Platform client hostname. Max length: 256 chars.","default":"","x-example":"[HOSTNAME]"}},"required":["type","name"]}}]}},"\/projects\/{projectId}\/platforms\/{platformId}":{"get":{"summary":"Get Platform","operationId":"projectsGetPlatform","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Platform","schema":{"$ref":"#\/definitions\/platform"}}},"x-appwrite":{"method":"getPlatform","weight":141,"cookies":false,"type":"","demo":"projects\/get-platform.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"platformId","description":"Platform unique ID.","required":true,"type":"string","x-example":"[PLATFORM_ID]","in":"path"}]},"put":{"summary":"Update Platform","operationId":"projectsUpdatePlatform","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Platform","schema":{"$ref":"#\/definitions\/platform"}}},"x-appwrite":{"method":"updatePlatform","weight":142,"cookies":false,"type":"","demo":"projects\/update-platform.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"platformId","description":"Platform unique ID.","required":true,"type":"string","x-example":"[PLATFORM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Platform name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"key":{"type":"string","description":"Package name for android or bundle ID for iOS. Max length: 256 chars.","default":"","x-example":"[KEY]"},"store":{"type":"string","description":"App store or Google Play store ID. Max length: 256 chars.","default":"","x-example":"[STORE]"},"hostname":{"type":"string","description":"Platform client URL. Max length: 256 chars.","default":"","x-example":"[HOSTNAME]"}},"required":["name"]}}]},"delete":{"summary":"Delete Platform","operationId":"projectsDeletePlatform","consumes":["application\/json"],"produces":[],"tags":["projects"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deletePlatform","weight":143,"cookies":false,"type":"","demo":"projects\/delete-platform.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"platformId","description":"Platform unique ID.","required":true,"type":"string","x-example":"[PLATFORM_ID]","in":"path"}]}},"\/projects\/{projectId}\/service":{"patch":{"summary":"Update service status","operationId":"projectsUpdateServiceStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"updateServiceStatus","weight":124,"cookies":false,"type":"","demo":"projects\/update-service-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"service":{"type":"string","description":"Service name.","default":null,"x-example":"account"},"status":{"type":"boolean","description":"Service status.","default":null,"x-example":false}},"required":["service","status"]}}]}},"\/projects\/{projectId}\/usage":{"get":{"summary":"Get usage stats for a project","operationId":"projectsGetUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"UsageProject","schema":{"$ref":"#\/definitions\/usageProject"}}},"x-appwrite":{"method":"getUsage","weight":122,"cookies":false,"type":"","demo":"projects\/get-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"}]}},"\/projects\/{projectId}\/webhooks":{"get":{"summary":"List Webhooks","operationId":"projectsListWebhooks","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Webhooks List","schema":{"$ref":"#\/definitions\/webhookList"}}},"x-appwrite":{"method":"listWebhooks","weight":130,"cookies":false,"type":"","demo":"projects\/list-webhooks.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"}]},"post":{"summary":"Create Webhook","operationId":"projectsCreateWebhook","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"201":{"description":"Webhook","schema":{"$ref":"#\/definitions\/webhook"}}},"x-appwrite":{"method":"createWebhook","weight":129,"cookies":false,"type":"","demo":"projects\/create-webhook.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Webhook name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"events":{"type":"array","description":"Events list.","default":null,"x-example":null,"items":{"type":"string"}},"url":{"type":"string","description":"Webhook URL.","default":null,"x-example":"https:\/\/example.com"},"security":{"type":"boolean","description":"Certificate verification, false for disabled or true for enabled.","default":null,"x-example":false},"httpUser":{"type":"string","description":"Webhook HTTP user. Max length: 256 chars.","default":"","x-example":"[HTTP_USER]"},"httpPass":{"type":"string","description":"Webhook HTTP password. Max length: 256 chars.","default":"","x-example":"[HTTP_PASS]"}},"required":["name","events","url","security"]}}]}},"\/projects\/{projectId}\/webhooks\/{webhookId}":{"get":{"summary":"Get Webhook","operationId":"projectsGetWebhook","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Webhook","schema":{"$ref":"#\/definitions\/webhook"}}},"x-appwrite":{"method":"getWebhook","weight":131,"cookies":false,"type":"","demo":"projects\/get-webhook.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"webhookId","description":"Webhook unique ID.","required":true,"type":"string","x-example":"[WEBHOOK_ID]","in":"path"}]},"put":{"summary":"Update Webhook","operationId":"projectsUpdateWebhook","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Webhook","schema":{"$ref":"#\/definitions\/webhook"}}},"x-appwrite":{"method":"updateWebhook","weight":132,"cookies":false,"type":"","demo":"projects\/update-webhook.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"webhookId","description":"Webhook unique ID.","required":true,"type":"string","x-example":"[WEBHOOK_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Webhook name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"events":{"type":"array","description":"Events list.","default":null,"x-example":null,"items":{"type":"string"}},"url":{"type":"string","description":"Webhook URL.","default":null,"x-example":"https:\/\/example.com"},"security":{"type":"boolean","description":"Certificate verification, false for disabled or true for enabled.","default":null,"x-example":false},"httpUser":{"type":"string","description":"Webhook HTTP user. Max length: 256 chars.","default":"","x-example":"[HTTP_USER]"},"httpPass":{"type":"string","description":"Webhook HTTP password. Max length: 256 chars.","default":"","x-example":"[HTTP_PASS]"}},"required":["name","events","url","security"]}}]},"delete":{"summary":"Delete Webhook","operationId":"projectsDeleteWebhook","consumes":["application\/json"],"produces":[],"tags":["projects"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteWebhook","weight":133,"cookies":false,"type":"","demo":"projects\/delete-webhook.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"webhookId","description":"Webhook unique ID.","required":true,"type":"string","x-example":"[WEBHOOK_ID]","in":"path"}]}},"\/storage\/files":{"get":{"summary":"List Files","operationId":"storageListFiles","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Get a list of all the user files. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's files. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Files List","schema":{"$ref":"#\/definitions\/fileList"}}},"x-appwrite":{"method":"listFiles","weight":150,"cookies":false,"type":"","demo":"storage\/list-files.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the file used as the starting point for the query, excluding the file itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create File","operationId":"storageCreateFile","consumes":["multipart\/form-data"],"produces":["application\/json"],"tags":["storage"],"description":"Create a new file. The user who creates the file will automatically be assigned to read and write access unless he has passed custom values for read and write arguments.","responses":{"201":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"createFile","weight":149,"cookies":false,"type":"upload","demo":"storage\/create-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","required":true,"type":"string","in":"formData"},{"name":"file","description":"Binary file.","required":true,"type":"file","in":"formData"},{"name":"read","description":"An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"in":"formData"},{"name":"write","description":"An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"in":"formData"}]}},"\/storage\/files\/{fileId}":{"get":{"summary":"Get File","operationId":"storageGetFile","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.","responses":{"200":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"getFile","weight":151,"cookies":false,"type":"","demo":"storage\/get-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]},"put":{"summary":"Update File","operationId":"storageUpdateFile","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Update a file by its unique ID. Only users with write permissions have access to update this resource.","responses":{"200":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"updateFile","weight":155,"cookies":false,"type":"","demo":"storage\/update-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"read":{"type":"array","description":"An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["read","write"]}}]},"delete":{"summary":"Delete File","operationId":"storageDeleteFile","consumes":["application\/json"],"produces":[],"tags":["storage"],"description":"Delete a file by its unique ID. Only users with write permissions have access to delete this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteFile","weight":156,"cookies":false,"type":"","demo":"storage\/delete-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/files\/{fileId}\/download":{"get":{"summary":"Get File for Download","operationId":"storageGetFileDownload","consumes":["application\/json"],"produces":["*\/*"],"tags":["storage"],"description":"Get a file content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.","responses":{"200":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getFileDownload","weight":153,"cookies":false,"type":"location","demo":"storage\/get-file-download.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/files\/{fileId}\/preview":{"get":{"summary":"Get File Preview","operationId":"storageGetFilePreview","consumes":["application\/json"],"produces":["image\/*"],"tags":["storage"],"description":"Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFilePreview","weight":152,"cookies":false,"type":"location","demo":"storage\/get-file-preview.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"},{"name":"width","description":"Resize preview image width, Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"height","description":"Resize preview image height, Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"gravity","description":"Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right","required":false,"type":"string","x-example":"center","default":"center","in":"query"},{"name":"quality","description":"Preview image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"borderWidth","description":"Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"borderColor","description":"Preview image border color. Use a valid HEX color, no # is needed for prefix.","required":false,"type":"string","default":"","in":"query"},{"name":"borderRadius","description":"Preview image border radius in pixels. Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"opacity","description":"Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.","required":false,"type":"number","format":"float","x-example":0,"default":1,"in":"query"},{"name":"rotation","description":"Preview image rotation in degrees. Pass an integer between 0 and 360.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"background","description":"Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.","required":false,"type":"string","default":"","in":"query"},{"name":"output","description":"Output format type (jpeg, jpg, png, gif and webp).","required":false,"type":"string","x-example":"jpg","default":"","in":"query"}]}},"\/storage\/files\/{fileId}\/view":{"get":{"summary":"Get File for View","operationId":"storageGetFileView","consumes":["application\/json"],"produces":["*\/*"],"tags":["storage"],"description":"Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.","responses":{"200":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getFileView","weight":154,"cookies":false,"type":"location","demo":"storage\/get-file-view.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/usage":{"get":{"summary":"Get usage stats for storage","operationId":"storageGetUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"","responses":{"200":{"description":"StorageUsage","schema":{"$ref":"#\/definitions\/usageStorage"}}},"x-appwrite":{"method":"getUsage","weight":157,"cookies":false,"type":"","demo":"storage\/get-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"}]}},"\/storage\/{bucketId}\/usage":{"get":{"summary":"Get usage stats for a storage bucket","operationId":"storageGetBucketUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"","responses":{"200":{"description":"UsageBuckets","schema":{"$ref":"#\/definitions\/usageBuckets"}}},"x-appwrite":{"method":"getBucketUsage","weight":158,"cookies":false,"type":"","demo":"storage\/get-bucket-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"bucketId","description":"Bucket unique ID.","required":true,"type":"string","x-example":"[BUCKET_ID]","in":"path"},{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"}]}},"\/teams":{"get":{"summary":"List Teams","operationId":"teamsList","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a list of all the current user teams. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's teams. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Teams List","schema":{"$ref":"#\/definitions\/teamList"}}},"x-appwrite":{"method":"list","weight":160,"cookies":false,"type":"","demo":"teams\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the team used as the starting point for the query, excluding the team itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Team","operationId":"teamsCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Create a new team. The user who creates the team will automatically be assigned as the owner of the team. The team owner can invite new members, who will be able add new owners and update or delete the team from your project.","responses":{"201":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"create","weight":159,"cookies":false,"type":"","demo":"teams\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"teamId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Team name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"roles":{"type":"array","description":"Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":["owner"],"x-example":null,"items":{"type":"string"}}},"required":["teamId","name"]}}]}},"\/teams\/{teamId}":{"get":{"summary":"Get Team","operationId":"teamsGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team by its unique ID. All team members have read access for this resource.","responses":{"200":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"get","weight":161,"cookies":false,"type":"","demo":"teams\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"}]},"put":{"summary":"Update Team","operationId":"teamsUpdate","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Update a team by its unique ID. Only team owners have write access for this resource.","responses":{"200":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"update","weight":162,"cookies":false,"type":"","demo":"teams\/update.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Team name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]},"delete":{"summary":"Delete Team","operationId":"teamsDelete","consumes":["application\/json"],"produces":[],"tags":["teams"],"description":"Delete a team by its unique ID. Only team owners have write access for this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":163,"cookies":false,"type":"","demo":"teams\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"}]}},"\/teams\/{teamId}\/memberships":{"get":{"summary":"Get Team Memberships","operationId":"teamsGetMemberships","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team members by the team unique ID. All team members have read access for this list of resources.","responses":{"200":{"description":"Memberships List","schema":{"$ref":"#\/definitions\/membershipList"}}},"x-appwrite":{"method":"getMemberships","weight":165,"cookies":false,"type":"","demo":"teams\/get-memberships.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-members.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the membership used as the starting point for the query, excluding the membership itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Team Membership","operationId":"teamsCreateMembership","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"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.\n\nUse 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.\n\nPlease 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.","responses":{"201":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"createMembership","weight":164,"cookies":false,"type":"","demo":"teams\/create-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team-membership.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"New team member email.","default":null,"x-example":"email@example.com"},"roles":{"type":"array","description":"Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":null,"x-example":null,"items":{"type":"string"}},"url":{"type":"string","description":"URL to redirect the user back to your app from the invitation email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"},"name":{"type":"string","description":"New team member name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["email","roles","url"]}}]}},"\/teams\/{teamId}\/memberships\/{membershipId}":{"get":{"summary":"Get Team Membership","operationId":"teamsGetMembership","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team member by the membership unique id. All team members have read access for this resource.","responses":{"200":{"description":"Memberships List","schema":{"$ref":"#\/definitions\/membershipList"}}},"x-appwrite":{"method":"getMembership","weight":166,"cookies":false,"type":"","demo":"teams\/get-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"membership unique ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"}]},"patch":{"summary":"Update Membership Roles","operationId":"teamsUpdateMembershipRoles","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"","responses":{"200":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"updateMembershipRoles","weight":167,"cookies":false,"type":"","demo":"teams\/update-membership-roles.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-roles.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"roles":{"type":"array","description":"Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["roles"]}}]},"delete":{"summary":"Delete Team Membership","operationId":"teamsDeleteMembership","consumes":["application\/json"],"produces":[],"tags":["teams"],"description":"This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteMembership","weight":169,"cookies":false,"type":"","demo":"teams\/delete-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"}]}},"\/teams\/{teamId}\/memberships\/{membershipId}\/status":{"patch":{"summary":"Update Team Membership Status","operationId":"teamsUpdateMembershipStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email recieved by the user.","responses":{"200":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"updateMembershipStatus","weight":168,"cookies":false,"type":"","demo":"teams\/update-membership-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User unique ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Secret key.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/users":{"get":{"summary":"List Users","operationId":"usersList","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get a list of all the project's users. You can use the query params to filter your results.","responses":{"200":{"description":"Users List","schema":{"$ref":"#\/definitions\/userList"}}},"x-appwrite":{"method":"list","weight":171,"cookies":false,"type":"","demo":"users\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-users.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the user used as the starting point for the query, excluding the user itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create User","operationId":"usersCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Create a new user.","responses":{"201":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"create","weight":170,"cookies":false,"type":"","demo":"users\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be between 6 to 32 chars.","default":null,"x-example":"password"},"name":{"type":"string","description":"User name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["userId","email","password"]}}]}},"\/users\/usage":{"get":{"summary":"Get usage stats for the users API","operationId":"usersGetUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"","responses":{"200":{"description":"UsageUsers","schema":{"$ref":"#\/definitions\/usageUsers"}}},"x-appwrite":{"method":"getUsage","weight":185,"cookies":false,"type":"","demo":"users\/get-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"},{"name":"provider","description":"Provider Name.","required":false,"type":"string","x-example":"email","default":"","in":"query"}]}},"\/users\/{userId}":{"get":{"summary":"Get User","operationId":"usersGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get a user by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"get","weight":172,"cookies":false,"type":"","demo":"users\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]},"delete":{"summary":"Delete User","operationId":"usersDelete","consumes":["application\/json"],"produces":[],"tags":["users"],"description":"Delete a user by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":184,"cookies":false,"type":"","demo":"users\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]}},"\/users\/{userId}\/email":{"patch":{"summary":"Update Email","operationId":"usersUpdateEmail","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user email by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateEmail","weight":180,"cookies":false,"type":"","demo":"users\/update-email.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"}},"required":["email"]}}]}},"\/users\/{userId}\/logs":{"get":{"summary":"Get User Logs","operationId":"usersGetLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get the user activity logs list by its unique ID.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"getLogs","weight":175,"cookies":false,"type":"","demo":"users\/get-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"limit","description":"Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/users\/{userId}\/name":{"patch":{"summary":"Update Name","operationId":"usersUpdateName","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user name by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateName","weight":178,"cookies":false,"type":"","demo":"users\/update-name.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-name.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"User name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]}},"\/users\/{userId}\/password":{"patch":{"summary":"Update Password","operationId":"usersUpdatePassword","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user password by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePassword","weight":179,"cookies":false,"type":"","demo":"users\/update-password.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-password.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"password":{"type":"string","description":"New user password. Must be between 6 to 32 chars.","default":null,"x-example":"password"}},"required":["password"]}}]}},"\/users\/{userId}\/prefs":{"get":{"summary":"Get User Preferences","operationId":"usersGetPrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get the user preferences by its unique ID.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"getPrefs","weight":173,"cookies":false,"type":"","demo":"users\/get-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]},"patch":{"summary":"Update User Preferences","operationId":"usersUpdatePrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user preferences by its unique ID. You can pass only the specific settings you wish to update.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"updatePrefs","weight":181,"cookies":false,"type":"","demo":"users\/update-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"prefs":{"type":"object","description":"Prefs key-value JSON object.","default":{},"x-example":"{}"}},"required":["prefs"]}}]}},"\/users\/{userId}\/sessions":{"get":{"summary":"Get User Sessions","operationId":"usersGetSessions","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get the user sessions list by its unique ID.","responses":{"200":{"description":"Sessions List","schema":{"$ref":"#\/definitions\/sessionList"}}},"x-appwrite":{"method":"getSessions","weight":174,"cookies":false,"type":"","demo":"users\/get-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]},"delete":{"summary":"Delete User Sessions","operationId":"usersDeleteSessions","consumes":["application\/json"],"produces":[],"tags":["users"],"description":"Delete all user's sessions by using the user's unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSessions","weight":183,"cookies":false,"type":"","demo":"users\/delete-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]}},"\/users\/{userId}\/sessions\/{sessionId}":{"delete":{"summary":"Delete User Session","operationId":"usersDeleteSession","consumes":["application\/json"],"produces":[],"tags":["users"],"description":"Delete a user sessions by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSession","weight":182,"cookies":false,"type":"","demo":"users\/delete-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-session.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"sessionId","description":"User unique session ID.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]}},"\/users\/{userId}\/status":{"patch":{"summary":"Update User Status","operationId":"usersUpdateStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user status by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateStatus","weight":176,"cookies":false,"type":"","demo":"users\/update-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-status.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"status":{"type":"boolean","description":"User Status. To activate the user pass `true` and to block the user pass `false`","default":null,"x-example":false}},"required":["status"]}}]}},"\/users\/{userId}\/verification":{"patch":{"summary":"Update Email Verification","operationId":"usersUpdateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user email verification status by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateVerification","weight":177,"cookies":false,"type":"","demo":"users\/update-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-verification.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"emailVerification":{"type":"boolean","description":"User Email Verification Status.","default":null,"x-example":false}},"required":["emailVerification"]}}]}}},"tags":[{"name":"account","description":"The Account service allows you to authenticate and manage a user account."},{"name":"avatars","description":"The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars."},{"name":"database","description":"The Database service allows you to create structured collections of documents, query and filter lists of documents"},{"name":"locale","description":"The Locale service allows you to customize your app based on your users' location."},{"name":"health","description":"The Health service allows you to both validate and monitor your Appwrite server's health."},{"name":"projects","description":"The Project service allows you to manage all the projects in your Appwrite server."},{"name":"storage","description":"The Storage service allows you to manage your project files."},{"name":"teams","description":"The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources"},{"name":"users","description":"The Users service allows you to manage your project users."},{"name":"functions","description":"The Functions Service allows you view, create and manage your Cloud Functions."}],"definitions":{"collectionList":{"description":"Collections List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"collections":{"type":"array","description":"List of collections.","items":{"type":"object","$ref":"#\/definitions\/collection"},"x-example":""}},"required":["sum","collections"]},"indexList":{"description":"Indexes List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"indexes":{"type":"array","description":"List of indexes.","items":{"type":"object","$ref":"#\/definitions\/index"},"x-example":""}},"required":["sum","indexes"]},"documentList":{"description":"Documents List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"documents":{"type":"array","description":"List of documents.","items":{"type":"object","$ref":"#\/definitions\/document"},"x-example":""}},"required":["sum","documents"]},"userList":{"description":"Users List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"users":{"type":"array","description":"List of users.","items":{"type":"object","$ref":"#\/definitions\/user"},"x-example":""}},"required":["sum","users"]},"sessionList":{"description":"Sessions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"sessions":{"type":"array","description":"List of sessions.","items":{"type":"object","$ref":"#\/definitions\/session"},"x-example":""}},"required":["sum","sessions"]},"logList":{"description":"Logs List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"logs":{"type":"array","description":"List of logs.","items":{"type":"object","$ref":"#\/definitions\/log"},"x-example":""}},"required":["sum","logs"]},"fileList":{"description":"Files List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"files":{"type":"array","description":"List of files.","items":{"type":"object","$ref":"#\/definitions\/file"},"x-example":""}},"required":["sum","files"]},"teamList":{"description":"Teams List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"teams":{"type":"array","description":"List of teams.","items":{"type":"object","$ref":"#\/definitions\/team"},"x-example":""}},"required":["sum","teams"]},"membershipList":{"description":"Memberships List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"memberships":{"type":"array","description":"List of memberships.","items":{"type":"object","$ref":"#\/definitions\/membership"},"x-example":""}},"required":["sum","memberships"]},"functionList":{"description":"Functions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"functions":{"type":"array","description":"List of functions.","items":{"type":"object","$ref":"#\/definitions\/function"},"x-example":""}},"required":["sum","functions"]},"tagList":{"description":"Tags List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"tags":{"type":"array","description":"List of tags.","items":{"type":"object","$ref":"#\/definitions\/tag"},"x-example":""}},"required":["sum","tags"]},"executionList":{"description":"Executions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"executions":{"type":"array","description":"List of executions.","items":{"type":"object","$ref":"#\/definitions\/execution"},"x-example":""}},"required":["sum","executions"]},"projectList":{"description":"Projects List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"projects":{"type":"array","description":"List of projects.","items":{"type":"object","$ref":"#\/definitions\/project"},"x-example":""}},"required":["sum","projects"]},"webhookList":{"description":"Webhooks List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"webhooks":{"type":"array","description":"List of webhooks.","items":{"type":"object","$ref":"#\/definitions\/webhook"},"x-example":""}},"required":["sum","webhooks"]},"keyList":{"description":"API Keys List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"keys":{"type":"array","description":"List of keys.","items":{"type":"object","$ref":"#\/definitions\/key"},"x-example":""}},"required":["sum","keys"]},"platformList":{"description":"Platforms List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"platforms":{"type":"array","description":"List of platforms.","items":{"type":"object","$ref":"#\/definitions\/platform"},"x-example":""}},"required":["sum","platforms"]},"domainList":{"description":"Domains List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"domains":{"type":"array","description":"List of domains.","items":{"type":"object","$ref":"#\/definitions\/domain"},"x-example":""}},"required":["sum","domains"]},"countryList":{"description":"Countries List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"countries":{"type":"array","description":"List of countries.","items":{"type":"object","$ref":"#\/definitions\/country"},"x-example":""}},"required":["sum","countries"]},"continentList":{"description":"Continents List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"continents":{"type":"array","description":"List of continents.","items":{"type":"object","$ref":"#\/definitions\/continent"},"x-example":""}},"required":["sum","continents"]},"languageList":{"description":"Languages List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"languages":{"type":"array","description":"List of languages.","items":{"type":"object","$ref":"#\/definitions\/language"},"x-example":""}},"required":["sum","languages"]},"currencyList":{"description":"Currencies List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"currencies":{"type":"array","description":"List of currencies.","items":{"type":"object","$ref":"#\/definitions\/currency"},"x-example":""}},"required":["sum","currencies"]},"phoneList":{"description":"Phones List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"phones":{"type":"array","description":"List of phones.","items":{"type":"object","$ref":"#\/definitions\/phone"},"x-example":""}},"required":["sum","phones"]},"metricList":{"description":"Metric List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"metrics":{"type":"array","description":"List of metrics.","items":{"type":"object","$ref":"#\/definitions\/metric"},"x-example":""}},"required":["sum","metrics"]},"collection":{"description":"Collection","type":"object","properties":{"$id":{"type":"string","description":"Collection ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"Collection read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"Collection write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"},"name":{"type":"string","description":"Collection name.","x-example":"My Collection"},"permission":{"type":"string","description":"Collection permission model. Possible values: `document` or `collection`","x-example":"document"},"attributes":{"type":"array","description":"Collection attributes.","items":{"anyOf":[{"$ref":"#\/definitions\/attributeBoolean"},{"$ref":"#\/definitions\/attributeInteger"},{"$ref":"#\/definitions\/attributeFloat"},{"$ref":"#\/definitions\/attributeEmail"},{"$ref":"#\/definitions\/attributeEnum"},{"$ref":"#\/definitions\/attributeUrl"},{"$ref":"#\/definitions\/attributeIp"},{"$ref":"#\/definitions\/attributeString"}]},"x-example":{}},"indexes":{"type":"array","description":"Collection indexes.","items":{"type":"object","$ref":"#\/definitions\/index"},"x-example":{}}},"required":["$id","$read","$write","name","permission","attributes","indexes"]},"attributeList":{"description":"Attributes List","type":"object","properties":{"sum":{"type":"integer","description":"Total sum of items in the list.","x-example":5,"format":"int32"},"attributes":{"type":"array","description":"List of attributes.","items":{"anyOf":[{"$ref":"#\/definitions\/attributeBoolean"},{"$ref":"#\/definitions\/attributeInteger"},{"$ref":"#\/definitions\/attributeFloat"},{"$ref":"#\/definitions\/attributeEmail"},{"$ref":"#\/definitions\/attributeEnum"},{"$ref":"#\/definitions\/attributeUrl"},{"$ref":"#\/definitions\/attributeIp"},{"$ref":"#\/definitions\/attributeString"}]},"x-example":""}},"required":["sum","attributes"]},"attributeString":{"description":"AttributeString","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"size":{"type":"string","description":"Attribute size.","x-example":128},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"default","nullable":true}},"required":["key","type","status","required","size"]},"attributeInteger":{"description":"AttributeInteger","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"min":{"type":"integer","description":"Minimum value to enforce for new documents.","x-example":1,"format":"int32","nullable":true},"max":{"type":"integer","description":"Maximum value to enforce for new documents.","x-example":10,"format":"int32","nullable":true},"default":{"type":"integer","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":10,"format":"int32","nullable":true}},"required":["key","type","status","required"]},"attributeFloat":{"description":"AttributeFloat","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"min":{"type":"number","description":"Minimum value to enforce for new documents.","x-example":1.5,"format":"double","nullable":true},"max":{"type":"number","description":"Maximum value to enforce for new documents.","x-example":10.5,"format":"double","nullable":true},"default":{"type":"number","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":2.5,"format":"double","nullable":true}},"required":["key","type","status","required"]},"attributeBoolean":{"description":"AttributeBoolean","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"default":{"type":"boolean","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":false,"nullable":true}},"required":["key","type","status","required"]},"attributeEmail":{"description":"AttributeEmail","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"format":{"type":"string","description":"String format.","x-example":"email"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"default@example.com","nullable":true}},"required":["key","type","status","required","format"]},"attributeEnum":{"description":"AttributeEnum","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"elements":{"type":"array","description":"Array of elements in enumerated type.","items":{"type":"string"},"x-example":"element"},"format":{"type":"string","description":"String format.","x-example":"enum"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"element","nullable":true}},"required":["key","type","status","required","elements","format"]},"attributeIp":{"description":"AttributeIP","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"format":{"type":"string","description":"String format.","x-example":"ip"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"192.0.2.0","nullable":true}},"required":["key","type","status","required","format"]},"attributeUrl":{"description":"AttributeURL","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"format":{"type":"string","description":"String format.","x-example":"url"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"http:\/\/example.com","nullable":true}},"required":["key","type","status","required","format"]},"index":{"description":"Index","type":"object","properties":{"key":{"type":"string","description":"Index Key.","x-example":"index1"},"type":{"type":"string","description":"Index type.","x-example":""},"status":{"type":"string","description":"Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"attributes":{"type":"array","description":"Index attributes.","items":{"type":"string"},"x-example":[]},"orders":{"type":"array","description":"Index orders.","items":{"type":"string"},"x-example":[]}},"required":["key","type","status","attributes","orders"]},"document":{"description":"Document","type":"object","properties":{"$id":{"type":"string","description":"Document ID.","x-example":"5e5ea5c16897e"},"$collection":{"type":"string","description":"Collection ID.","x-example":"5e5ea5c15117e"},"$read":{"type":"array","description":"Document read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"Document write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"}},"additionalProperties":true,"required":["$id","$collection","$read","$write"]},"log":{"description":"Log","type":"object","properties":{"event":{"type":"string","description":"Event name.","x-example":"account.sessions.create"},"userId":{"type":"string","description":"User ID.","x-example":"610fc2f985ee0"},"userEmail":{"type":"string","description":"User Email.","x-example":"john@appwrite.io"},"userName":{"type":"string","description":"User Name.","x-example":"John Doe"},"mode":{"type":"string","description":"API mode when event triggered.","x-example":"admin"},"ip":{"type":"string","description":"IP session in use when the session was created.","x-example":"127.0.0.1"},"time":{"type":"integer","description":"Log creation time in Unix timestamp.","x-example":1592981250,"format":"int32"},"osCode":{"type":"string","description":"Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).","x-example":"Mac"},"osName":{"type":"string","description":"Operating system name.","x-example":"Mac"},"osVersion":{"type":"string","description":"Operating system version.","x-example":"Mac"},"clientType":{"type":"string","description":"Client type.","x-example":"browser"},"clientCode":{"type":"string","description":"Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).","x-example":"CM"},"clientName":{"type":"string","description":"Client name.","x-example":"Chrome Mobile iOS"},"clientVersion":{"type":"string","description":"Client version.","x-example":"84.0"},"clientEngine":{"type":"string","description":"Client engine name.","x-example":"WebKit"},"clientEngineVersion":{"type":"string","description":"Client engine name.","x-example":"605.1.15"},"deviceName":{"type":"string","description":"Device name.","x-example":"smartphone"},"deviceBrand":{"type":"string","description":"Device brand name.","x-example":"Google"},"deviceModel":{"type":"string","description":"Device model name.","x-example":"Nexus 5"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"}},"required":["event","userId","userEmail","userName","mode","ip","time","osCode","osName","osVersion","clientType","clientCode","clientName","clientVersion","clientEngine","clientEngineVersion","deviceName","deviceBrand","deviceModel","countryCode","countryName"]},"user":{"description":"User","type":"object","properties":{"$id":{"type":"string","description":"User ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"User name.","x-example":"John Doe"},"registration":{"type":"integer","description":"User registration date in Unix timestamp.","x-example":1592981250,"format":"int32"},"status":{"type":"boolean","description":"User status. Pass `true` for enabled and `false` for disabled.","x-example":true},"passwordUpdate":{"type":"integer","description":"Unix timestamp of the most recent password update","x-example":1592981250,"format":"int32"},"email":{"type":"string","description":"User email address.","x-example":"john@appwrite.io"},"emailVerification":{"type":"boolean","description":"Email verification status.","x-example":true},"prefs":{"type":"object","description":"User preferences as a key-value object","x-example":{"theme":"pink","timezone":"UTC"},"items":{"type":"object","$ref":"#\/definitions\/preferences"}}},"required":["$id","name","registration","status","passwordUpdate","email","emailVerification","prefs"]},"preferences":{"description":"Preferences","type":"object","additionalProperties":true},"session":{"description":"Session","type":"object","properties":{"$id":{"type":"string","description":"Session ID.","x-example":"5e5ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5bb8c16897e"},"expire":{"type":"integer","description":"Session expiration date in Unix timestamp.","x-example":1592981250,"format":"int32"},"provider":{"type":"string","description":"Session Provider.","x-example":"email"},"providerUid":{"type":"string","description":"Session Provider User ID.","x-example":"user@example.com"},"providerToken":{"type":"string","description":"Session Provider Token.","x-example":"MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"},"ip":{"type":"string","description":"IP in use when the session was created.","x-example":"127.0.0.1"},"osCode":{"type":"string","description":"Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).","x-example":"Mac"},"osName":{"type":"string","description":"Operating system name.","x-example":"Mac"},"osVersion":{"type":"string","description":"Operating system version.","x-example":"Mac"},"clientType":{"type":"string","description":"Client type.","x-example":"browser"},"clientCode":{"type":"string","description":"Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).","x-example":"CM"},"clientName":{"type":"string","description":"Client name.","x-example":"Chrome Mobile iOS"},"clientVersion":{"type":"string","description":"Client version.","x-example":"84.0"},"clientEngine":{"type":"string","description":"Client engine name.","x-example":"WebKit"},"clientEngineVersion":{"type":"string","description":"Client engine name.","x-example":"605.1.15"},"deviceName":{"type":"string","description":"Device name.","x-example":"smartphone"},"deviceBrand":{"type":"string","description":"Device brand name.","x-example":"Google"},"deviceModel":{"type":"string","description":"Device model name.","x-example":"Nexus 5"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"},"current":{"type":"boolean","description":"Returns true if this the current user session.","x-example":true}},"required":["$id","userId","expire","provider","providerUid","providerToken","ip","osCode","osName","osVersion","clientType","clientCode","clientName","clientVersion","clientEngine","clientEngineVersion","deviceName","deviceBrand","deviceModel","countryCode","countryName","current"]},"token":{"description":"Token","type":"object","properties":{"$id":{"type":"string","description":"Token ID.","x-example":"bb8ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5ea5c168bb8"},"secret":{"type":"string","description":"Token secret key. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.","x-example":""},"expire":{"type":"integer","description":"Token expiration date in Unix timestamp.","x-example":1592981250,"format":"int32"}},"required":["$id","userId","secret","expire"]},"jwt":{"description":"JWT","type":"object","properties":{"jwt":{"type":"string","description":"JWT encoded string.","x-example":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"}},"required":["jwt"]},"locale":{"description":"Locale","type":"object","properties":{"ip":{"type":"string","description":"User IP address.","x-example":"127.0.0.1"},"countryCode":{"type":"string","description":"Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format","x-example":"US"},"country":{"type":"string","description":"Country name. This field support localization.","x-example":"United States"},"continentCode":{"type":"string","description":"Continent code. A two character continent code \"AF\" for Africa, \"AN\" for Antarctica, \"AS\" for Asia, \"EU\" for Europe, \"NA\" for North America, \"OC\" for Oceania, and \"SA\" for South America.","x-example":"NA"},"continent":{"type":"string","description":"Continent name. This field support localization.","x-example":"North America"},"eu":{"type":"boolean","description":"True if country is part of the Europian Union.","x-example":false},"currency":{"type":"string","description":"Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format","x-example":"USD"}},"required":["ip","countryCode","country","continentCode","continent","eu","currency"]},"file":{"description":"File","type":"object","properties":{"$id":{"type":"string","description":"File ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"File read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"File write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"},"name":{"type":"string","description":"File name.","x-example":"Pink.png"},"dateCreated":{"type":"integer","description":"File creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"signature":{"type":"string","description":"File MD5 signature.","x-example":"5d529fd02b544198ae075bd57c1762bb"},"mimeType":{"type":"string","description":"File mime type.","x-example":"image\/png"},"sizeOriginal":{"type":"integer","description":"File original size in bytes.","x-example":17890,"format":"int32"}},"required":["$id","$read","$write","name","dateCreated","signature","mimeType","sizeOriginal"]},"team":{"description":"Team","type":"object","properties":{"$id":{"type":"string","description":"Team ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Team name.","x-example":"VIP"},"dateCreated":{"type":"integer","description":"Team creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"sum":{"type":"integer","description":"Total sum of team members.","x-example":7,"format":"int32"}},"required":["$id","name","dateCreated","sum"]},"membership":{"description":"Membership","type":"object","properties":{"$id":{"type":"string","description":"Membership ID.","x-example":"5e5ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5ea5c16897e"},"teamId":{"type":"string","description":"Team ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"User name.","x-example":"VIP"},"email":{"type":"string","description":"User email address.","x-example":"john@appwrite.io"},"invited":{"type":"integer","description":"Date, the user has been invited to join the team in Unix timestamp.","x-example":1592981250,"format":"int32"},"joined":{"type":"integer","description":"Date, the user has accepted the invitation to join the team in Unix timestamp.","x-example":1592981250,"format":"int32"},"confirm":{"type":"boolean","description":"User confirmation status, true if the user has joined the team or false otherwise.","x-example":false},"roles":{"type":"array","description":"User list of roles","items":{"type":"string"},"x-example":"admin"}},"required":["$id","userId","teamId","name","email","invited","joined","confirm","roles"]},"function":{"description":"Function","type":"object","properties":{"$id":{"type":"string","description":"Function ID.","x-example":"5e5ea5c16897e"},"execute":{"type":"array","description":"Document execute permissions.","items":{"type":"string"},"x-example":"role:all"},"name":{"type":"string","description":"Function name.","x-example":"My Function"},"dateCreated":{"type":"integer","description":"Function creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"dateUpdated":{"type":"integer","description":"Function update date in Unix timestamp.","x-example":1592981257,"format":"int32"},"status":{"type":"string","description":"Function status. Possible values: `disabled`, `enabled`","x-example":"enabled"},"runtime":{"type":"string","description":"Function execution runtime.","x-example":"python-3.8"},"tag":{"type":"string","description":"Function active tag ID.","x-example":"5e5ea5c16897e"},"vars":{"type":"string","description":"Function environment variables.","x-example":{"key":"value"}},"events":{"type":"array","description":"Function trigger events.","items":{"type":"string"},"x-example":"account.create"},"schedule":{"type":"string","description":"Function execution schedult in CRON format.","x-example":"5 4 * * *"},"scheduleNext":{"type":"integer","description":"Function next scheduled execution date in Unix timestamp.","x-example":1592981292,"format":"int32"},"schedulePrevious":{"type":"integer","description":"Function next scheduled execution date in Unix timestamp.","x-example":1592981237,"format":"int32"},"timeout":{"type":"integer","description":"Function execution timeout in seconds.","x-example":1592981237,"format":"int32"}},"required":["$id","execute","name","dateCreated","dateUpdated","status","runtime","tag","vars","events","schedule","scheduleNext","schedulePrevious","timeout"]},"tag":{"description":"Tag","type":"object","properties":{"$id":{"type":"string","description":"Tag ID.","x-example":"5e5ea5c16897e"},"functionId":{"type":"string","description":"Function ID.","x-example":"5e5ea6g16897e"},"dateCreated":{"type":"integer","description":"The tag creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"command":{"type":"string","description":"The entrypoint command in use to execute the tag code.","x-example":"enabled"},"size":{"type":"string","description":"The code size in bytes.","x-example":"python-3.8"}},"required":["$id","functionId","dateCreated","command","size"]},"execution":{"description":"Execution","type":"object","properties":{"$id":{"type":"string","description":"Execution ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"Execution read permissions.","items":{"type":"string"},"x-example":"role:all"},"functionId":{"type":"string","description":"Function ID.","x-example":"5e5ea6g16897e"},"dateCreated":{"type":"integer","description":"The execution creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"trigger":{"type":"string","description":"The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.","x-example":"http"},"status":{"type":"string","description":"The status of the function execution. Possible values can be: `waiting`, `processing`, `completed`, or `failed`.","x-example":"processing"},"exitCode":{"type":"integer","description":"The script exit code.","x-example":0,"format":"int32"},"stdout":{"type":"string","description":"The script stdout output string. Logs the last 4,000 characters of the execution stdout output.","x-example":""},"stderr":{"type":"string","description":"The script stderr output string. Logs the last 4,000 characters of the execution stderr output","x-example":""},"time":{"type":"number","description":"The script execution time in seconds.","x-example":0.4,"format":"double"}},"required":["$id","$read","functionId","dateCreated","trigger","status","exitCode","stdout","stderr","time"]},"project":{"description":"Project","type":"object","properties":{"$id":{"type":"string","description":"Project ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Project name.","x-example":"New Project"},"description":{"type":"string","description":"Project description.","x-example":"This is a new project."},"teamId":{"type":"string","description":"Project team ID.","x-example":"1592981250"},"logo":{"type":"string","description":"Project logo file ID.","x-example":"5f5c451b403cb"},"url":{"type":"string","description":"Project website URL.","x-example":"5f5c451b403cb"},"legalName":{"type":"string","description":"Company legal name.","x-example":"Company LTD."},"legalCountry":{"type":"string","description":"Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format.","x-example":"US"},"legalState":{"type":"string","description":"State name.","x-example":"New York"},"legalCity":{"type":"string","description":"City name.","x-example":"New York City."},"legalAddress":{"type":"string","description":"Company Address.","x-example":"620 Eighth Avenue, New York, NY 10018"},"legalTaxId":{"type":"string","description":"Company Tax ID.","x-example":"131102020"},"authLimit":{"type":"integer","description":"Max users allowed. 0 is unlimited.","x-example":100,"format":"int32"},"platforms":{"type":"array","description":"List of Platforms.","items":{"type":"object","$ref":"#\/definitions\/platform"},"x-example":{}},"webhooks":{"type":"array","description":"List of Webhooks.","items":{"type":"object","$ref":"#\/definitions\/webhook"},"x-example":{}},"keys":{"type":"array","description":"List of API Keys.","items":{"type":"object","$ref":"#\/definitions\/key"},"x-example":{}},"domains":{"type":"array","description":"List of Domains.","items":{"type":"object","$ref":"#\/definitions\/domain"},"x-example":{}},"providerAmazonAppid":{"type":"string","description":"Amazon OAuth app ID.","x-example":"123247283472834787438"},"providerAmazonSecret":{"type":"string","description":"Amazon OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerAppleAppid":{"type":"string","description":"Apple OAuth app ID.","x-example":"123247283472834787438"},"providerAppleSecret":{"type":"string","description":"Apple OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerBitbucketAppid":{"type":"string","description":"BitBucket OAuth app ID.","x-example":"123247283472834787438"},"providerBitbucketSecret":{"type":"string","description":"BitBucket OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerBitlyAppid":{"type":"string","description":"Bitly OAuth app ID.","x-example":"123247283472834787438"},"providerBitlySecret":{"type":"string","description":"Bitly OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerBoxAppid":{"type":"string","description":"Box OAuth app ID.","x-example":"123247283472834787438"},"providerBoxSecret":{"type":"string","description":"Box OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerDiscordAppid":{"type":"string","description":"Discord OAuth app ID.","x-example":"123247283472834787438"},"providerDiscordSecret":{"type":"string","description":"Discord OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerDropboxAppid":{"type":"string","description":"Dropbox OAuth app ID.","x-example":"123247283472834787438"},"providerDropboxSecret":{"type":"string","description":"Dropbox OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerFacebookAppid":{"type":"string","description":"Facebook OAuth app ID.","x-example":"123247283472834787438"},"providerFacebookSecret":{"type":"string","description":"Facebook OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerGithubAppid":{"type":"string","description":"GitHub OAuth app ID.","x-example":"123247283472834787438"},"providerGithubSecret":{"type":"string","description":"GitHub OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerGitlabAppid":{"type":"string","description":"GitLab OAuth app ID.","x-example":"123247283472834787438"},"providerGitlabSecret":{"type":"string","description":"GitLab OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerGoogleAppid":{"type":"string","description":"Google OAuth app ID.","x-example":"123247283472834787438"},"providerGoogleSecret":{"type":"string","description":"Google OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerLinkedinAppid":{"type":"string","description":"LinkedIn OAuth app ID.","x-example":"123247283472834787438"},"providerLinkedinSecret":{"type":"string","description":"LinkedIn OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerMicrosoftAppid":{"type":"string","description":"Microsoft OAuth app ID.","x-example":"123247283472834787438"},"providerMicrosoftSecret":{"type":"string","description":"Microsoft OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerPaypalAppid":{"type":"string","description":"PayPal OAuth app ID.","x-example":"123247283472834787438"},"providerPaypalSecret":{"type":"string","description":"PayPal OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerPaypalSandboxAppid":{"type":"string","description":"PayPal OAuth app ID.","x-example":"123247283472834787438"},"providerPaypalSandboxSecret":{"type":"string","description":"PayPal OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerSalesforceAppid":{"type":"string","description":"Salesforce OAuth app ID.","x-example":"123247283472834787438"},"providerSalesforceSecret":{"type":"string","description":"Salesforce OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerSlackAppid":{"type":"string","description":"Slack OAuth app ID.","x-example":"123247283472834787438"},"providerSlackSecret":{"type":"string","description":"Slack OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerSpotifyAppid":{"type":"string","description":"Spotify OAuth app ID.","x-example":"123247283472834787438"},"providerSpotifySecret":{"type":"string","description":"Spotify OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerTradeshiftAppid":{"type":"string","description":"Tradeshift OAuth app ID.","x-example":"123247283472834787438"},"providerTradeshiftSecret":{"type":"string","description":"Tradeshift OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerTradeshiftBoxAppid":{"type":"string","description":"Tradeshift OAuth app ID.","x-example":"123247283472834787438"},"providerTradeshiftBoxSecret":{"type":"string","description":"Tradeshift OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerTwitchAppid":{"type":"string","description":"Twitch OAuth app ID.","x-example":"123247283472834787438"},"providerTwitchSecret":{"type":"string","description":"Twitch OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerVkAppid":{"type":"string","description":"VK OAuth app ID.","x-example":"123247283472834787438"},"providerVkSecret":{"type":"string","description":"VK OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerYahooAppid":{"type":"string","description":"Yahoo OAuth app ID.","x-example":"123247283472834787438"},"providerYahooSecret":{"type":"string","description":"Yahoo OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerYandexAppid":{"type":"string","description":"Yandex OAuth app ID.","x-example":"123247283472834787438"},"providerYandexSecret":{"type":"string","description":"Yandex OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerWordpressAppid":{"type":"string","description":"WordPress OAuth app ID.","x-example":"123247283472834787438"},"providerWordpressSecret":{"type":"string","description":"WordPress OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerMockAppid":{"type":"string","description":"Mock OAuth app ID.","x-example":"123247283472834787438"},"providerMockSecret":{"type":"string","description":"Mock OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"authEmailPassword":{"type":"boolean","description":"Email\/Password auth method status","x-example":true},"authUsersAuthMagicURL":{"type":"boolean","description":"Magic URL auth method status","x-example":true},"authAnonymous":{"type":"boolean","description":"Anonymous auth method status","x-example":true},"authInvites":{"type":"boolean","description":"Invites auth method status","x-example":true},"authJWT":{"type":"boolean","description":"JWT auth method status","x-example":true},"authPhone":{"type":"boolean","description":"Phone auth method status","x-example":true},"serviceStatusForAccount":{"type":"boolean","description":"Account service status","x-example":true},"serviceStatusForAvatars":{"type":"boolean","description":"Avatars service status","x-example":true},"serviceStatusForDatabase":{"type":"boolean","description":"Database service status","x-example":true},"serviceStatusForLocale":{"type":"boolean","description":"Locale service status","x-example":true},"serviceStatusForHealth":{"type":"boolean","description":"Health service status","x-example":true},"serviceStatusForStorage":{"type":"boolean","description":"Storage service status","x-example":true},"serviceStatusForTeams":{"type":"boolean","description":"Teams service status","x-example":true},"serviceStatusForUsers":{"type":"boolean","description":"Users service status","x-example":true},"serviceStatusForFunctions":{"type":"boolean","description":"Functions service status","x-example":true}},"required":["$id","name","description","teamId","logo","url","legalName","legalCountry","legalState","legalCity","legalAddress","legalTaxId","authLimit","platforms","webhooks","keys","domains","providerAmazonAppid","providerAmazonSecret","providerAppleAppid","providerAppleSecret","providerBitbucketAppid","providerBitbucketSecret","providerBitlyAppid","providerBitlySecret","providerBoxAppid","providerBoxSecret","providerDiscordAppid","providerDiscordSecret","providerDropboxAppid","providerDropboxSecret","providerFacebookAppid","providerFacebookSecret","providerGithubAppid","providerGithubSecret","providerGitlabAppid","providerGitlabSecret","providerGoogleAppid","providerGoogleSecret","providerLinkedinAppid","providerLinkedinSecret","providerMicrosoftAppid","providerMicrosoftSecret","providerPaypalAppid","providerPaypalSecret","providerPaypalSandboxAppid","providerPaypalSandboxSecret","providerSalesforceAppid","providerSalesforceSecret","providerSlackAppid","providerSlackSecret","providerSpotifyAppid","providerSpotifySecret","providerTradeshiftAppid","providerTradeshiftSecret","providerTradeshiftBoxAppid","providerTradeshiftBoxSecret","providerTwitchAppid","providerTwitchSecret","providerVkAppid","providerVkSecret","providerYahooAppid","providerYahooSecret","providerYandexAppid","providerYandexSecret","providerWordpressAppid","providerWordpressSecret","providerMockAppid","providerMockSecret","authEmailPassword","authUsersAuthMagicURL","authAnonymous","authInvites","authJWT","authPhone","serviceStatusForAccount","serviceStatusForAvatars","serviceStatusForDatabase","serviceStatusForLocale","serviceStatusForHealth","serviceStatusForStorage","serviceStatusForTeams","serviceStatusForUsers","serviceStatusForFunctions"]},"webhook":{"description":"Webhook","type":"object","properties":{"$id":{"type":"string","description":"Webhook ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Webhook name.","x-example":"My Webhook"},"url":{"type":"string","description":"Webhook URL endpoint.","x-example":"https:\/\/example.com\/webhook"},"events":{"type":"array","description":"Webhook trigger events.","items":{"type":"string"},"x-example":"database.collections.update"},"security":{"type":"boolean","description":"Indicated if SSL \/ TLS Certificate verification is enabled.","x-example":true},"httpUser":{"type":"string","description":"HTTP basic authentication username.","x-example":"username"},"httpPass":{"type":"string","description":"HTTP basic authentication password.","x-example":"password"}},"required":["$id","name","url","events","security","httpUser","httpPass"]},"key":{"description":"Key","type":"object","properties":{"$id":{"type":"string","description":"Key ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Key name.","x-example":"My API Key"},"scopes":{"type":"array","description":"Allowed permission scopes.","items":{"type":"string"},"x-example":"users.read"},"secret":{"type":"string","description":"Secret key.","x-example":"919c2d18fb5d4...a2ae413da83346ad2"}},"required":["$id","name","scopes","secret"]},"domain":{"description":"Domain","type":"object","properties":{"$id":{"type":"string","description":"Domain ID.","x-example":"5e5ea5c16897e"},"domain":{"type":"string","description":"Domain name.","x-example":"appwrite.company.com"},"registerable":{"type":"string","description":"Registerable domain name.","x-example":"company.com"},"tld":{"type":"string","description":"TLD name.","x-example":"com"},"verification":{"type":"boolean","description":"Verification process status.","x-example":true},"certificateId":{"type":"string","description":"Certificate ID.","x-example":"6ejea5c13377e"}},"required":["$id","domain","registerable","tld","verification","certificateId"]},"platform":{"description":"Platform","type":"object","properties":{"$id":{"type":"string","description":"Platform ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Platform name.","x-example":"My Web App"},"type":{"type":"string","description":"Platform type. Possible values are: web, flutter-ios, flutter-android, ios, android, and unity.","x-example":"My Web App"},"key":{"type":"string","description":"Platform Key. iOS bundle ID or Android package name. Empty string for other platforms.","x-example":"com.company.appname"},"store":{"type":"string","description":"App store or Google Play store ID.","x-example":""},"hostname":{"type":"string","description":"Web app hostname. Empty string for other platforms.","x-example":true},"httpUser":{"type":"string","description":"HTTP basic authentication username.","x-example":"username"},"httpPass":{"type":"string","description":"HTTP basic authentication password.","x-example":"password"}},"required":["$id","name","type","key","store","hostname","httpUser","httpPass"]},"country":{"description":"Country","type":"object","properties":{"name":{"type":"string","description":"Country name.","x-example":"United States"},"code":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"}},"required":["name","code"]},"continent":{"description":"Continent","type":"object","properties":{"name":{"type":"string","description":"Continent name.","x-example":"Europe"},"code":{"type":"string","description":"Continent two letter code.","x-example":"EU"}},"required":["name","code"]},"language":{"description":"Language","type":"object","properties":{"name":{"type":"string","description":"Language name.","x-example":"Italian"},"code":{"type":"string","description":"Language two-character ISO 639-1 codes.","x-example":"it"},"nativeName":{"type":"string","description":"Language native name.","x-example":"Italiano"}},"required":["name","code","nativeName"]},"currency":{"description":"Currency","type":"object","properties":{"symbol":{"type":"string","description":"Currency symbol.","x-example":"$"},"name":{"type":"string","description":"Currency name.","x-example":"US dollar"},"symbolNative":{"type":"string","description":"Currency native symbol.","x-example":"$"},"decimalDigits":{"type":"integer","description":"Number of decimal digits.","x-example":2,"format":"int32"},"rounding":{"type":"number","description":"Currency digit rounding.","x-example":0,"format":"double"},"code":{"type":"string","description":"Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format.","x-example":"USD"},"namePlural":{"type":"string","description":"Currency plural name","x-example":"US dollars"}},"required":["symbol","name","symbolNative","decimalDigits","rounding","code","namePlural"]},"phone":{"description":"Phone","type":"object","properties":{"code":{"type":"string","description":"Phone code.","x-example":"+1"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"}},"required":["code","countryCode","countryName"]},"usageDatabase":{"description":"UsageDatabase","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"documentsCount":{"type":"array","description":"Aggregated stats for total number of documents.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"collectionsCount":{"type":"array","description":"Aggregated stats for total number of collections.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsCreate":{"type":"array","description":"Aggregated stats for documents created.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsRead":{"type":"array","description":"Aggregated stats for documents read.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsUpdate":{"type":"array","description":"Aggregated stats for documents updated.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsDelete":{"type":"array","description":"Aggregated stats for documents deleted.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"collectionsCreate":{"type":"array","description":"Aggregated stats for collections created.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"collectionsRead":{"type":"array","description":"Aggregated stats for collections read.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"collectionsUpdate":{"type":"array","description":"Aggregated stats for collections updated.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"collectionsDelete":{"type":"array","description":"Aggregated stats for collections delete.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","documentsCount","collectionsCount","documentsCreate","documentsRead","documentsUpdate","documentsDelete","collectionsCreate","collectionsRead","collectionsUpdate","collectionsDelete"]},"usageCollection":{"description":"UsageCollection","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"documentsCount":{"type":"array","description":"Aggregated stats for total number of documents.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsCreate":{"type":"array","description":"Aggregated stats for documents created.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsRead":{"type":"array","description":"Aggregated stats for documents read.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsUpdate":{"type":"array","description":"Aggregated stats for documents updated.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsDelete":{"type":"array","description":"Aggregated stats for documents deleted.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","documentsCount","documentsCreate","documentsRead","documentsUpdate","documentsDelete"]},"usageUsers":{"description":"UsageUsers","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"usersCount":{"type":"array","description":"Aggregated stats for total number of users.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"usersCreate":{"type":"array","description":"Aggregated stats for users created.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"usersRead":{"type":"array","description":"Aggregated stats for users read.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"usersUpdate":{"type":"array","description":"Aggregated stats for users updated.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"usersDelete":{"type":"array","description":"Aggregated stats for users deleted.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"sessionsCreate":{"type":"array","description":"Aggregated stats for sessions created.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"sessionsProviderCreate":{"type":"array","description":"Aggregated stats for sessions created for a provider ( email, anonymous or oauth2 ).","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"sessionsDelete":{"type":"array","description":"Aggregated stats for sessions deleted.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","usersCount","usersCreate","usersRead","usersUpdate","usersDelete","sessionsCreate","sessionsProviderCreate","sessionsDelete"]},"usageStorage":{"description":"StorageUsage","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"storage":{"type":"array","description":"Aggregated stats for the occupied storage size (in bytes).","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"files":{"type":"array","description":"Aggregated stats for total number of files.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","storage","files"]},"usageBuckets":{"description":"UsageBuckets","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"filesCount":{"type":"array","description":"Aggregated stats for total number of files in this bucket.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"filesCreate":{"type":"array","description":"Aggregated stats for files created.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"filesRead":{"type":"array","description":"Aggregated stats for files read.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"filesUpdate":{"type":"array","description":"Aggregated stats for files updated.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"filesDelete":{"type":"array","description":"Aggregated stats for files deleted.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","filesCount","filesCreate","filesRead","filesUpdate","filesDelete"]},"usageFunctions":{"description":"UsageFunctions","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"functionsExecutions":{"type":"array","description":"Aggregated stats for function executions.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"functionsFailures":{"type":"array","description":"Aggregated stats for function execution failures.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"functionsCompute":{"type":"array","description":"Aggregated stats for function execution duration.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","functionsExecutions","functionsFailures","functionsCompute"]},"usageProject":{"description":"UsageProject","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"requests":{"type":"array","description":"Aggregated stats for number of requests.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"network":{"type":"array","description":"Aggregated stats for consumed bandwidth.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"functions":{"type":"array","description":"Aggregated stats for function executions.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documents":{"type":"array","description":"Aggregated stats for number of documents.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"collections":{"type":"array","description":"Aggregated stats for number of collections.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"users":{"type":"array","description":"Aggregated stats for number of users.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"storage":{"type":"array","description":"Aggregated stats for the occupied storage size (in bytes).","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","requests","network","functions","documents","collections","users","storage"]}},"externalDocs":{"description":"Full API docs, specs and tutorials","url":"https:\/\/appwrite.io\/docs"}} \ No newline at end of file +{"swagger":"2.0","info":{"version":"0.12.0","title":"Appwrite","description":"Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)","termsOfService":"https:\/\/appwrite.io\/policy\/terms","contact":{"name":"Appwrite Team","url":"https:\/\/appwrite.io\/support","email":"team@appwrite.io"},"license":{"name":"BSD-3-Clause","url":"https:\/\/raw.githubusercontent.com\/appwrite\/appwrite\/master\/LICENSE"}},"host":"appwrite.io","basePath":"\/v1","schemes":["https"],"consumes":["application\/json","multipart\/form-data"],"produces":["application\/json"],"securityDefinitions":{"Project":{"type":"apiKey","name":"X-Appwrite-Project","description":"Your project ID","in":"header","x-appwrite":{"demo":"5df5acd0d48c2"}},"Key":{"type":"apiKey","name":"X-Appwrite-Key","description":"Your secret API key","in":"header","x-appwrite":{"demo":"919c2d18fb5d4...a2ae413da83346ad2"}},"JWT":{"type":"apiKey","name":"X-Appwrite-JWT","description":"Your secret JSON Web Token","in":"header","x-appwrite":{"demo":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."}},"Locale":{"type":"apiKey","name":"X-Appwrite-Locale","description":"","in":"header","x-appwrite":{"demo":"en"}},"Mode":{"type":"apiKey","name":"X-Appwrite-Mode","description":"","in":"header","x-appwrite":{"demo":""}}},"paths":{"\/account":{"get":{"summary":"Get Account","operationId":"accountGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user data as JSON object.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"get","weight":47,"cookies":false,"type":"","demo":"account\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]},"post":{"summary":"Create Account","operationId":"accountCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to allow a new user to register a new account in your project. After the user registration completes successfully, you can use the [\/account\/verfication](\/docs\/client\/account#accountCreateVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](\/docs\/client\/account#accountCreateSession).","responses":{"201":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"create","weight":37,"cookies":false,"type":"","demo":"account\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"},"name":{"type":"string","description":"User name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["userId","email","password"]}}]},"delete":{"summary":"Delete Account","operationId":"accountDelete","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Delete a currently logged in user account. Behind the scene, the user record is not deleted but permanently blocked from any access. This is done to avoid deleted accounts being overtaken by new users with the same email address. Any user-related resources like documents or storage files should be deleted separately.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":56,"cookies":false,"type":"","demo":"account\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/account\/email":{"patch":{"summary":"Update Account Email","operationId":"accountUpdateEmail","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account email address. After changing user address, the user confirmation status will get reset. A new confirmation email is not sent automatically however you can use the send confirmation email endpoint again to send the confirmation email. For security measures, user password is required to complete this request.\nThis endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.\n","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateEmail","weight":54,"cookies":false,"type":"","demo":"account\/update-email.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-email.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["email","password"]}}]}},"\/account\/jwt":{"post":{"summary":"Create Account JWT","operationId":"accountCreateJWT","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to create a JSON Web Token. You can use the resulting JWT to authenticate on behalf of the current user when working with the Appwrite server-side API and SDKs. The JWT secret is valid for 15 minutes from its creation and will be invalid if the user will logout in that time frame.","responses":{"201":{"description":"JWT","schema":{"$ref":"#\/definitions\/jwt"}}},"x-appwrite":{"method":"createJWT","weight":46,"cookies":false,"type":"","demo":"account\/create-j-w-t.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-jwt.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{userId}","scope":"account","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}]}},"\/account\/logs":{"get":{"summary":"Get Account Logs","operationId":"accountGetLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user list of latest security activity logs. Each log returns user IP address, location and date and time of log.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"getLogs","weight":50,"cookies":false,"type":"","demo":"account\/get-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"limit","description":"Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/account\/name":{"patch":{"summary":"Update Account Name","operationId":"accountUpdateName","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account name.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateName","weight":52,"cookies":false,"type":"","demo":"account\/update-name.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-name.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"User name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]}},"\/account\/password":{"patch":{"summary":"Update Account Password","operationId":"accountUpdatePassword","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user password. For validation, user is required to pass in the new password, and the old password. For users created with OAuth and Team Invites, oldPassword is optional.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePassword","weight":53,"cookies":false,"type":"","demo":"account\/update-password.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-password.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"},"oldPassword":{"type":"string","description":"Old user password. Must be at least 8 chars.","default":"","x-example":"password"}},"required":["password"]}}]}},"\/account\/prefs":{"get":{"summary":"Get Account Preferences","operationId":"accountGetPrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user preferences as a key-value object.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"getPrefs","weight":48,"cookies":false,"type":"","demo":"account\/get-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]},"patch":{"summary":"Update Account Preferences","operationId":"accountUpdatePrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account preferences. You can pass only the specific settings you wish to update.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePrefs","weight":55,"cookies":false,"type":"","demo":"account\/update-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"prefs":{"type":"object","description":"Prefs key-value JSON object.","default":{},"x-example":"{}"}},"required":["prefs"]}}]}},"\/account\/recovery":{"post":{"summary":"Create Password Recovery","operationId":"accountCreateRecovery","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Sends the user an email with a temporary secret key for password reset. When the user clicks the confirmation link he is redirected back to your app password reset URL with the secret key and email address values attached to the URL query string. Use the query string params to submit a request to the [PUT \/account\/recovery](\/docs\/client\/account#accountUpdateRecovery) endpoint to complete the process. The verification link sent to the user's email address is valid for 1 hour.","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createRecovery","weight":59,"cookies":false,"type":"","demo":"account\/create-recovery.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-recovery.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"url":{"type":"string","description":"URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"}},"required":["email","url"]}}]},"put":{"summary":"Create Password Recovery (confirmation)","operationId":"accountUpdateRecovery","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/recovery](\/docs\/client\/account#accountCreateRecovery) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.","responses":{"200":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"updateRecovery","weight":60,"cookies":false,"type":"","demo":"account\/update-recovery.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-recovery.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User account UID address.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Valid reset token.","default":null,"x-example":"[SECRET]"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"},"passwordAgain":{"type":"string","description":"New password again. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["userId","secret","password","passwordAgain"]}}]}},"\/account\/sessions":{"get":{"summary":"Get Account Sessions","operationId":"accountGetSessions","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user list of active sessions across different devices.","responses":{"200":{"description":"Sessions List","schema":{"$ref":"#\/definitions\/sessionList"}}},"x-appwrite":{"method":"getSessions","weight":49,"cookies":false,"type":"","demo":"account\/get-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]},"post":{"summary":"Create Account Session","operationId":"accountCreateSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Allow the user to login into their account by providing a valid email and password combination. This route will create a new session for the user.","responses":{"201":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"createSession","weight":38,"cookies":false,"type":"","demo":"account\/create-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["email","password"]}}]},"delete":{"summary":"Delete All Account Sessions","operationId":"accountDeleteSessions","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Delete all sessions from the user account and remove any sessions cookies from the end client.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSessions","weight":58,"cookies":false,"type":"","demo":"account\/delete-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-sessions.md","rate-limit":100,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/account\/sessions\/anonymous":{"post":{"summary":"Create Anonymous Session","operationId":"accountCreateAnonymousSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to allow a new user to register an anonymous account in your project. This route will also create a new session for the user. To allow the new user to convert an anonymous account to a normal account, you need to update its [email and password](\/docs\/client\/account#accountUpdateEmail) or create an [OAuth2 session](\/docs\/client\/account#accountCreateOAuth2Session).","responses":{"201":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"createAnonymousSession","weight":45,"cookies":false,"type":"","demo":"account\/create-anonymous-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session-anonymous.md","rate-limit":50,"rate-time":3600,"rate-key":"ip:{ip}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}]}},"\/account\/sessions\/magic-url":{"post":{"summary":"Create Magic URL session","operationId":"accountCreateMagicURLSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Sends the user an email with a secret key for creating a session. When the user clicks the link in the email, the user is redirected back to the URL you provided with the secret key and userId values attached to the URL query string. Use the query string parameters to submit a request to the [PUT \/account\/sessions\/magic-url](\/docs\/client\/account#accountUpdateMagicURLSession) endpoint to complete the login process. The link sent to the user's email address is valid for 1 hour. If you are on a mobile device you can leave the URL parameter empty, so that the login completion will be handled by your Appwrite instance by default.","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createMagicURLSession","weight":43,"cookies":false,"type":"","demo":"account\/create-magic-u-r-l-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-magic-url-session.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"url":{"type":"string","description":"URL to redirect the user back to your app from the magic URL login. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":"","x-example":"https:\/\/example.com"}},"required":["userId","email"]}}]},"put":{"summary":"Create Magic URL session (confirmation)","operationId":"accountUpdateMagicURLSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete creating the session with the Magic URL. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/sessions\/magic-url](\/docs\/client\/account#accountCreateMagicURLSession) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.","responses":{"200":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"updateMagicURLSession","weight":44,"cookies":false,"type":"","demo":"account\/update-magic-u-r-l-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-magic-url-session.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User unique ID.","default":null,"x-example":null},"secret":{"type":"string","description":"Valid verification token.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/account\/sessions\/oauth2\/{provider}":{"get":{"summary":"Create Account Session with OAuth2","operationId":"accountCreateOAuth2Session","consumes":["application\/json"],"produces":["text\/html"],"tags":["account"],"description":"Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the email received from the OAuth2 provider and attach the new session to the existing user. If no matching user is found - the server will create a new user..\n","responses":{"301":{"description":"No content"}},"x-appwrite":{"method":"createOAuth2Session","weight":39,"cookies":false,"type":"webAuth","demo":"account\/create-o-auth2session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session-oauth2.md","rate-limit":50,"rate-time":3600,"rate-key":"ip:{ip}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"provider","description":"OAuth2 Provider. Currently, supported providers are: amazon, apple, bitbucket, bitly, box, discord, dropbox, facebook, github, gitlab, google, linkedin, microsoft, paypal, paypalSandbox, salesforce, slack, spotify, tradeshift, tradeshiftBox, twitch, vk, yahoo, yandex, wordpress.","required":true,"type":"string","x-example":"amazon","in":"path"},{"name":"success","description":"URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","required":false,"type":"string","format":"url","x-example":"https:\/\/example.com","default":"","in":"query"},{"name":"failure","description":"URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","required":false,"type":"string","format":"url","x-example":"https:\/\/example.com","default":"","in":"query"},{"name":"scopes","description":"A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"}]}},"\/account\/sessions\/{sessionId}":{"get":{"summary":"Get Session By ID","operationId":"accountGetSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to get a logged in user's session using a Session ID. Inputting 'current' will return the current session being used.","responses":{"200":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"getSession","weight":51,"cookies":false,"type":"","demo":"account\/get-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-session.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"sessionId","description":"Session unique ID. Use the string 'current' to get the current device session.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]},"delete":{"summary":"Delete Account Session","operationId":"accountDeleteSession","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Use this endpoint to log out the currently logged in user from all their account sessions across all of their different devices. When using the option id argument, only the session unique ID provider will be deleted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSession","weight":57,"cookies":false,"type":"","demo":"account\/delete-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-session.md","rate-limit":100,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"sessionId","description":"Session unique ID. Use the string 'current' to delete the current device session.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]}},"\/account\/verification":{"post":{"summary":"Create Email Verification","operationId":"accountCreateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](\/docs\/client\/account#accountUpdateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createVerification","weight":61,"cookies":false,"type":"","demo":"account\/create-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-verification.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{userId}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"url":{"type":"string","description":"URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"}},"required":["url"]}}]},"put":{"summary":"Create Email Verification (confirmation)","operationId":"accountUpdateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.","responses":{"200":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"updateVerification","weight":62,"cookies":false,"type":"","demo":"account\/update-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-verification.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User unique ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Valid verification token.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/avatars\/browsers\/{code}":{"get":{"summary":"Get Browser Icon","operationId":"avatarsGetBrowser","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user \/account\/sessions endpoint. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getBrowser","weight":64,"cookies":false,"type":"location","demo":"avatars\/get-browser.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-browser.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"code","description":"Browser Code.","required":true,"type":"string","x-example":"aa","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/credit-cards\/{code}":{"get":{"summary":"Get Credit Card Icon","operationId":"avatarsGetCreditCard","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getCreditCard","weight":63,"cookies":false,"type":"location","demo":"avatars\/get-credit-card.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-credit-card.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"code","description":"Credit Card Code. Possible values: amex, argencard, cabal, censosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro.","required":true,"type":"string","x-example":"amex","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/favicon":{"get":{"summary":"Get Favicon","operationId":"avatarsGetFavicon","consumes":["application\/json"],"produces":["image\/*"],"tags":["avatars"],"description":"Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFavicon","weight":67,"cookies":false,"type":"location","demo":"avatars\/get-favicon.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-favicon.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"url","description":"Website URL which you want to fetch the favicon from.","required":true,"type":"string","format":"url","x-example":"https:\/\/example.com","in":"query"}]}},"\/avatars\/flags\/{code}":{"get":{"summary":"Get Country Flag","operationId":"avatarsGetFlag","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFlag","weight":65,"cookies":false,"type":"location","demo":"avatars\/get-flag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-flag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"code","description":"Country Code. ISO Alpha-2 country code format.","required":true,"type":"string","x-example":"af","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/image":{"get":{"summary":"Get Image from URL","operationId":"avatarsGetImage","consumes":["application\/json"],"produces":["image\/*"],"tags":["avatars"],"description":"Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getImage","weight":66,"cookies":false,"type":"location","demo":"avatars\/get-image.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-image.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"url","description":"Image URL which you want to crop.","required":true,"type":"string","format":"url","x-example":"https:\/\/example.com","in":"query"},{"name":"width","description":"Resize preview image width, Pass an integer between 0 to 2000.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"},{"name":"height","description":"Resize preview image height, Pass an integer between 0 to 2000.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"}]}},"\/avatars\/initials":{"get":{"summary":"Get User Initials","operationId":"avatarsGetInitials","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.\n\nYou can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getInitials","weight":69,"cookies":false,"type":"location","demo":"avatars\/get-initials.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-initials.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"name","description":"Full Name. When empty, current user name or email will be used. Max length: 128 chars.","required":false,"type":"string","x-example":"[NAME]","default":"","in":"query"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":500,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":500,"in":"query"},{"name":"color","description":"Changes text color. By default a random color will be picked and stay will persistent to the given name.","required":false,"type":"string","default":"","in":"query"},{"name":"background","description":"Changes background color. By default a random color will be picked and stay will persistent to the given name.","required":false,"type":"string","default":"","in":"query"}]}},"\/avatars\/qr":{"get":{"summary":"Get QR Code","operationId":"avatarsGetQR","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getQR","weight":68,"cookies":false,"type":"location","demo":"avatars\/get-q-r.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-qr.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"text","description":"Plain text to be converted to QR code image.","required":true,"type":"string","x-example":"[TEXT]","in":"query"},{"name":"size","description":"QR code size. Pass an integer between 0 to 1000. Defaults to 400.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"},{"name":"margin","description":"Margin from edge. Pass an integer between 0 to 10. Defaults to 1.","required":false,"type":"integer","format":"int32","x-example":0,"default":1,"in":"query"},{"name":"download","description":"Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.","required":false,"type":"boolean","x-example":false,"default":false,"in":"query"}]}},"\/database\/collections":{"get":{"summary":"List Collections","operationId":"databaseListCollections","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a list of all the user collections. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's collections. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Collections List","schema":{"$ref":"#\/definitions\/collectionList"}}},"x-appwrite":{"method":"listCollections","weight":71,"cookies":false,"type":"","demo":"database\/list-collections.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-collections.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the collection used as the starting point for the query, excluding the collection itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Collection","operationId":"databaseCreateCollection","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new Collection.","responses":{"201":{"description":"Collection","schema":{"$ref":"#\/definitions\/collection"}}},"x-appwrite":{"method":"createCollection","weight":70,"cookies":false,"type":"","demo":"database\/create-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"collectionId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Collection name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"permission":{"type":"string","description":"Permissions type model to use for reading documents in this collection. You can use collection-level permission set once on the collection using the `read` and `write` params, or you can set document-level permission where each document read and write params will decide who has access to read and write to each document individually. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"document"},"read":{"type":"array","description":"An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["collectionId","name","permission","read","write"]}}]}},"\/database\/collections\/{collectionId}":{"get":{"summary":"Get Collection","operationId":"databaseGetCollection","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.","responses":{"200":{"description":"Collection","schema":{"$ref":"#\/definitions\/collection"}}},"x-appwrite":{"method":"getCollection","weight":72,"cookies":false,"type":"","demo":"database\/get-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]},"put":{"summary":"Update Collection","operationId":"databaseUpdateCollection","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Update a collection by its unique ID.","responses":{"200":{"description":"Collection","schema":{"$ref":"#\/definitions\/collection"}}},"x-appwrite":{"method":"updateCollection","weight":76,"cookies":false,"type":"","demo":"database\/update-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/update-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Collection name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"permission":{"type":"string","description":"Permissions type model to use for reading documents in this collection. You can use collection-level permission set once on the collection using the `read` and `write` params, or you can set document-level permission where each document read and write params will decide who has access to read and write to each document individually. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"document"},"read":{"type":"array","description":"An array of strings with read permissions. By default inherits the existing read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default inherits the existing write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"enabled":{"type":"boolean","description":"Is collection enabled?","default":true,"x-example":false}},"required":["name","permission"]}}]},"delete":{"summary":"Delete Collection","operationId":"databaseDeleteCollection","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteCollection","weight":77,"cookies":false,"type":"","demo":"database\/delete-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]}},"\/database\/collections\/{collectionId}\/attributes":{"get":{"summary":"List Attributes","operationId":"databaseListAttributes","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"Attributes List","schema":{"$ref":"#\/definitions\/attributeList"}}},"x-appwrite":{"method":"listAttributes","weight":86,"cookies":false,"type":"","demo":"database\/list-attributes.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-attributes.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]}},"\/database\/collections\/{collectionId}\/attributes\/boolean":{"post":{"summary":"Create Boolean Attribute","operationId":"databaseCreateBooleanAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a boolean attribute.\n","responses":{"201":{"description":"AttributeBoolean","schema":{"$ref":"#\/definitions\/attributeBoolean"}}},"x-appwrite":{"method":"createBooleanAttribute","weight":85,"cookies":false,"type":"","demo":"database\/create-boolean-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-boolean-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"boolean","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":false},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/email":{"post":{"summary":"Create Email Attribute","operationId":"databaseCreateEmailAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create an email attribute.\n","responses":{"201":{"description":"AttributeEmail","schema":{"$ref":"#\/definitions\/attributeEmail"}}},"x-appwrite":{"method":"createEmailAttribute","weight":79,"cookies":false,"type":"","demo":"database\/create-email-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-email-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"email@example.com"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/enum":{"post":{"summary":"Create Enum Attribute","operationId":"databaseCreateEnumAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"201":{"description":"AttributeEnum","schema":{"$ref":"#\/definitions\/attributeEnum"}}},"x-appwrite":{"method":"createEnumAttribute","weight":80,"cookies":false,"type":"","demo":"database\/create-enum-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-attribute-enum.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"elements":{"type":"array","description":"Array of elements in enumerated type. Uses length of longest element to determine size.","default":null,"x-example":null,"items":{"type":"string"}},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"[DEFAULT]"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","elements","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/float":{"post":{"summary":"Create Float Attribute","operationId":"databaseCreateFloatAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a float attribute. Optionally, minimum and maximum values can be provided.\n","responses":{"201":{"description":"AttributeFloat","schema":{"$ref":"#\/definitions\/attributeFloat"}}},"x-appwrite":{"method":"createFloatAttribute","weight":84,"cookies":false,"type":"","demo":"database\/create-float-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-float-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"min":{"type":"string","description":"Minimum value to enforce on new documents","default":null,"x-example":null},"max":{"type":"string","description":"Maximum value to enforce on new documents","default":null,"x-example":null},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":null},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/integer":{"post":{"summary":"Create Integer Attribute","operationId":"databaseCreateIntegerAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create an integer attribute. Optionally, minimum and maximum values can be provided.\n","responses":{"201":{"description":"AttributeInteger","schema":{"$ref":"#\/definitions\/attributeInteger"}}},"x-appwrite":{"method":"createIntegerAttribute","weight":83,"cookies":false,"type":"","demo":"database\/create-integer-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-integer-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"min":{"type":"integer","description":"Minimum value to enforce on new documents","default":null,"x-example":null},"max":{"type":"integer","description":"Maximum value to enforce on new documents","default":null,"x-example":null},"default":{"type":"integer","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":null},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/ip":{"post":{"summary":"Create IP Address Attribute","operationId":"databaseCreateIpAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create IP address attribute.\n","responses":{"201":{"description":"AttributeIP","schema":{"$ref":"#\/definitions\/attributeIp"}}},"x-appwrite":{"method":"createIpAttribute","weight":81,"cookies":false,"type":"","demo":"database\/create-ip-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-ip-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":null},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/string":{"post":{"summary":"Create String Attribute","operationId":"databaseCreateStringAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new string attribute.\n","responses":{"201":{"description":"AttributeString","schema":{"$ref":"#\/definitions\/attributeString"}}},"x-appwrite":{"method":"createStringAttribute","weight":78,"cookies":false,"type":"","demo":"database\/create-string-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-string-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"size":{"type":"integer","description":"Attribute size for text attributes, in number of characters.","default":null,"x-example":1},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"[DEFAULT]"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","size","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/url":{"post":{"summary":"Create URL Attribute","operationId":"databaseCreateUrlAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a URL attribute.\n","responses":{"201":{"description":"AttributeURL","schema":{"$ref":"#\/definitions\/attributeUrl"}}},"x-appwrite":{"method":"createUrlAttribute","weight":82,"cookies":false,"type":"","demo":"database\/create-url-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-url-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"https:\/\/example.com"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/{attributeId}":{"get":{"summary":"Get Attribute","operationId":"databaseGetAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"AttributeBoolean, or AttributeInteger, or AttributeFloat, or AttributeEmail, or AttributeEnum, or AttributeURL, or AttributeIP, or AttributeString","schema":{"oneOf":[{"$ref":"#\/definitions\/attributeBoolean"},{"$ref":"#\/definitions\/attributeInteger"},{"$ref":"#\/definitions\/attributeFloat"},{"$ref":"#\/definitions\/attributeEmail"},{"$ref":"#\/definitions\/attributeEnum"},{"$ref":"#\/definitions\/attributeUrl"},{"$ref":"#\/definitions\/attributeIp"},{"$ref":"#\/definitions\/attributeString"}]}}},"x-appwrite":{"method":"getAttribute","weight":87,"cookies":false,"type":"","demo":"database\/get-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"attributeId","description":"Attribute ID.","required":true,"type":"string","in":"path"}]},"delete":{"summary":"Delete Attribute","operationId":"databaseDeleteAttribute","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteAttribute","weight":88,"cookies":false,"type":"","demo":"database\/delete-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"attributeId","description":"Attribute ID.","required":true,"type":"string","in":"path"}]}},"\/database\/collections\/{collectionId}\/documents":{"get":{"summary":"List Documents","operationId":"databaseListDocuments","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a list of all the user documents. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's documents. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Documents List","schema":{"$ref":"#\/definitions\/documentList"}}},"x-appwrite":{"method":"listDocuments","weight":94,"cookies":false,"type":"","demo":"database\/list-documents.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-documents.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"queries","description":"Array of query strings.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"},{"name":"limit","description":"Maximum number of documents to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the document used as the starting point for the query, excluding the document itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderAttributes","description":"Array of attributes used to sort results.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"},{"name":"orderTypes","description":"Array of order directions for sorting attribtues. Possible values are DESC for descending order, or ASC for ascending order.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"}]},"post":{"summary":"Create Document","operationId":"databaseCreateDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](\/docs\/server\/database#databaseCreateCollection) API or directly from your database console.","responses":{"201":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"createDocument","weight":93,"cookies":false,"type":"","demo":"database\/create-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection with validation rules using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"documentId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"data":{"type":"object","description":"Document data as JSON object.","default":{},"x-example":"{}"},"read":{"type":"array","description":"An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["documentId","data"]}}]}},"\/database\/collections\/{collectionId}\/documents\/{documentId}":{"get":{"summary":"Get Document","operationId":"databaseGetDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a document by its unique ID. This endpoint response returns a JSON object with the document data.","responses":{"200":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"getDocument","weight":95,"cookies":false,"type":"","demo":"database\/get-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"}]},"patch":{"summary":"Update Document","operationId":"databaseUpdateDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.","responses":{"200":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"updateDocument","weight":97,"cookies":false,"type":"","demo":"database\/update-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/update-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection with validation rules using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"data":{"type":"object","description":"Document data as JSON object.","default":{},"x-example":"{}"},"read":{"type":"array","description":"An array of strings with read permissions. By default inherits the existing read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default inherits the existing write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["data"]}}]},"delete":{"summary":"Delete Document","operationId":"databaseDeleteDocument","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"Delete a document by its unique ID. This endpoint deletes only the parent documents, its attributes and relations to other documents. Child documents **will not** be deleted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteDocument","weight":98,"cookies":false,"type":"","demo":"database\/delete-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"}]}},"\/database\/collections\/{collectionId}\/documents\/{documentId}\/logs":{"get":{"summary":"List Document Logs","operationId":"databaseListDocumentLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get the document activity logs list by its unique ID.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"listDocumentLogs","weight":96,"cookies":false,"type":"","demo":"database\/list-document-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-document-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"},{"name":"limit","description":"Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/database\/collections\/{collectionId}\/indexes":{"get":{"summary":"List Indexes","operationId":"databaseListIndexes","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"Indexes List","schema":{"$ref":"#\/definitions\/indexList"}}},"x-appwrite":{"method":"listIndexes","weight":90,"cookies":false,"type":"","demo":"database\/list-indexes.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-indexes.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]},"post":{"summary":"Create Index","operationId":"databaseCreateIndex","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"201":{"description":"Index","schema":{"$ref":"#\/definitions\/index"}}},"x-appwrite":{"method":"createIndex","weight":89,"cookies":false,"type":"","demo":"database\/create-index.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-index.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"indexId":{"type":"string","description":"Index ID.","default":null,"x-example":null},"type":{"type":"string","description":"Index type.","default":null,"x-example":"key"},"attributes":{"type":"array","description":"Array of attributes to index.","default":null,"x-example":null,"items":{"type":"string"}},"orders":{"type":"array","description":"Array of index orders.","default":[],"x-example":null,"items":{"type":"string"}}},"required":["indexId","type","attributes"]}}]}},"\/database\/collections\/{collectionId}\/indexes\/{indexId}":{"get":{"summary":"Get Index","operationId":"databaseGetIndex","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"Index","schema":{"$ref":"#\/definitions\/index"}}},"x-appwrite":{"method":"getIndex","weight":91,"cookies":false,"type":"","demo":"database\/get-index.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-index.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"indexId","description":"Index ID.","required":true,"type":"string","in":"path"}]},"delete":{"summary":"Delete Index","operationId":"databaseDeleteIndex","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteIndex","weight":92,"cookies":false,"type":"","demo":"database\/delete-index.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-index.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"indexId","description":"Index ID.","required":true,"type":"string","in":"path"}]}},"\/database\/collections\/{collectionId}\/logs":{"get":{"summary":"List Collection Logs","operationId":"databaseListCollectionLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get the collection activity logs list by its unique ID.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"listCollectionLogs","weight":75,"cookies":false,"type":"","demo":"database\/list-collection-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-collection-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"limit","description":"Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/database\/usage":{"get":{"summary":"Get usage stats for the database","operationId":"databaseGetUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"UsageDatabase","schema":{"$ref":"#\/definitions\/usageDatabase"}}},"x-appwrite":{"method":"getUsage","weight":73,"cookies":false,"type":"","demo":"database\/get-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"}]}},"\/database\/{collectionId}\/usage":{"get":{"summary":"Get usage stats for a collection","operationId":"databaseGetCollectionUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"UsageCollection","schema":{"$ref":"#\/definitions\/usageCollection"}}},"x-appwrite":{"method":"getCollectionUsage","weight":74,"cookies":false,"type":"","demo":"database\/get-collection-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"},{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]}},"\/functions":{"get":{"summary":"List Functions","operationId":"functionsList","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the project's functions. You can use the query params to filter your results.","responses":{"200":{"description":"Functions List","schema":{"$ref":"#\/definitions\/functionList"}}},"x-appwrite":{"method":"list","weight":187,"cookies":false,"type":"","demo":"functions\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-functions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the function used as the starting point for the query, excluding the function itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Function","operationId":"functionsCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Create a new function. You can pass a list of [permissions](\/docs\/permissions) to allow different project users or team with access to execute the function using the client API.","responses":{"201":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"create","weight":186,"cookies":false,"type":"","demo":"functions\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"functionId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Function name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"execute":{"type":"array","description":"An array of strings with execution permissions. By default no user is granted with any execute permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"runtime":{"type":"string","description":"Execution runtime.","default":null,"x-example":"dotnet-5.0"},"vars":{"type":"object","description":"Key-value JSON object.","default":[],"x-example":"{}"},"events":{"type":"array","description":"Events list.","default":[],"x-example":null,"items":{"type":"string"}},"schedule":{"type":"string","description":"Schedule CRON syntax.","default":"","x-example":null},"timeout":{"type":"integer","description":"Function maximum execution time in seconds.","default":15,"x-example":1}},"required":["functionId","name","execute","runtime"]}}]}},"\/functions\/runtimes":{"get":{"summary":"List the currently active function runtimes.","operationId":"functionsListRuntimes","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all runtimes that are currently active in your project.","responses":{"200":{"description":"Runtimes List","schema":{"$ref":"#\/definitions\/runtimeList"}}},"x-appwrite":{"method":"listRuntimes","weight":188,"cookies":false,"type":"","demo":"functions\/list-runtimes.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-runtimes.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/functions\/{functionId}":{"get":{"summary":"Get Function","operationId":"functionsGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a function by its unique ID.","responses":{"200":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"get","weight":189,"cookies":false,"type":"","demo":"functions\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"}]},"put":{"summary":"Update Function","operationId":"functionsUpdate","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Update function by its unique ID.","responses":{"200":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"update","weight":191,"cookies":false,"type":"","demo":"functions\/update.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/update-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Function name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"execute":{"type":"array","description":"An array of strings with execution permissions. By default no user is granted with any execute permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"vars":{"type":"object","description":"Key-value JSON object.","default":[],"x-example":"{}"},"events":{"type":"array","description":"Events list.","default":[],"x-example":null,"items":{"type":"string"}},"schedule":{"type":"string","description":"Schedule CRON syntax.","default":"","x-example":null},"timeout":{"type":"integer","description":"Function maximum execution time in seconds.","default":15,"x-example":1}},"required":["name","execute"]}}]},"delete":{"summary":"Delete Function","operationId":"functionsDelete","consumes":["application\/json"],"produces":[],"tags":["functions"],"description":"Delete a function by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":193,"cookies":false,"type":"","demo":"functions\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/delete-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"}]}},"\/functions\/{functionId}\/executions":{"get":{"summary":"List Executions","operationId":"functionsListExecutions","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the current user function execution logs. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's executions. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Executions List","schema":{"$ref":"#\/definitions\/executionList"}}},"x-appwrite":{"method":"listExecutions","weight":199,"cookies":false,"type":"","demo":"functions\/list-executions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-executions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"execution.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"cursor","description":"ID of the execution used as the starting point for the query, excluding the execution itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"}]},"post":{"summary":"Create Execution","operationId":"functionsCreateExecution","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.","responses":{"201":{"description":"Execution","schema":{"$ref":"#\/definitions\/execution"}}},"x-appwrite":{"method":"createExecution","weight":198,"cookies":false,"type":"","demo":"functions\/create-execution.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-execution.md","rate-limit":60,"rate-time":60,"rate-key":"url:{url},ip:{ip}","scope":"execution.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"data":{"type":"string","description":"String of custom data to send to function.","default":"","x-example":"[DATA]"}}}}]}},"\/functions\/{functionId}\/executions\/{executionId}":{"get":{"summary":"Get Execution","operationId":"functionsGetExecution","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a function execution log by its unique ID.","responses":{"200":{"description":"Execution","schema":{"$ref":"#\/definitions\/execution"}}},"x-appwrite":{"method":"getExecution","weight":200,"cookies":false,"type":"","demo":"functions\/get-execution.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-execution.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"execution.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"executionId","description":"Execution unique ID.","required":true,"type":"string","x-example":"[EXECUTION_ID]","in":"path"}]}},"\/functions\/{functionId}\/tag":{"patch":{"summary":"Update Function Tag","operationId":"functionsUpdateTag","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Update the function code tag ID using the unique function ID. Use this endpoint to switch the code tag that should be executed by the execution endpoint.","responses":{"200":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"updateTag","weight":192,"cookies":false,"type":"","demo":"functions\/update-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/update-function-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"tag":{"type":"string","description":"Tag unique ID.","default":null,"x-example":"[TAG]"}},"required":["tag"]}}]}},"\/functions\/{functionId}\/tags":{"get":{"summary":"List Tags","operationId":"functionsListTags","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the project's code tags. You can use the query params to filter your results.","responses":{"200":{"description":"Tags List","schema":{"$ref":"#\/definitions\/tagList"}}},"x-appwrite":{"method":"listTags","weight":195,"cookies":false,"type":"","demo":"functions\/list-tags.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-tags.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the tag used as the starting point for the query, excluding the tag itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Tag","operationId":"functionsCreateTag","consumes":["multipart\/form-data"],"produces":["application\/json"],"tags":["functions"],"description":"Create a new function code tag. Use this endpoint to upload a new version of your code function. To execute your newly uploaded code, you'll need to update the function's tag to use your new tag UID.\n\nThis endpoint accepts a tar.gz file compressed with your code. Make sure to include any dependencies your code has within the compressed file. You can learn more about code packaging in the [Appwrite Cloud Functions tutorial](\/docs\/functions).\n\nUse the \"command\" param to set the entry point used to execute your code.","responses":{"201":{"description":"Tag","schema":{"$ref":"#\/definitions\/tag"}}},"x-appwrite":{"method":"createTag","weight":194,"cookies":false,"type":"","demo":"functions\/create-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":true,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"command","description":"Code execution command.","required":true,"type":"string","x-example":"[COMMAND]","in":"formData"},{"name":"code","description":"Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.","required":true,"type":"file","in":"formData"}]}},"\/functions\/{functionId}\/tags\/{tagId}":{"get":{"summary":"Get Tag","operationId":"functionsGetTag","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a code tag by its unique ID.","responses":{"200":{"description":"Tag","schema":{"$ref":"#\/definitions\/tag"}}},"x-appwrite":{"method":"getTag","weight":196,"cookies":false,"type":"","demo":"functions\/get-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"tagId","description":"Tag unique ID.","required":true,"type":"string","x-example":"[TAG_ID]","in":"path"}]},"delete":{"summary":"Delete Tag","operationId":"functionsDeleteTag","consumes":["application\/json"],"produces":[],"tags":["functions"],"description":"Delete a code tag by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteTag","weight":197,"cookies":false,"type":"","demo":"functions\/delete-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/delete-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"tagId","description":"Tag unique ID.","required":true,"type":"string","x-example":"[TAG_ID]","in":"path"}]}},"\/functions\/{functionId}\/usage":{"get":{"summary":"Get Function Usage","operationId":"functionsGetUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"","responses":{"200":{"description":"UsageFunctions","schema":{"$ref":"#\/definitions\/usageFunctions"}}},"x-appwrite":{"method":"getUsage","weight":190,"cookies":false,"type":"","demo":"functions\/get-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"}]}},"\/health":{"get":{"summary":"Get HTTP","operationId":"healthGet","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite HTTP server is up and responsive.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"get","weight":106,"cookies":false,"type":"","demo":"health\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/anti-virus":{"get":{"summary":"Get Anti virus","operationId":"healthGetAntiVirus","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite Anti Virus server is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getAntiVirus","weight":117,"cookies":false,"type":"","demo":"health\/get-anti-virus.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-anti-virus.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/cache":{"get":{"summary":"Get Cache","operationId":"healthGetCache","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite in-memory cache server is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getCache","weight":109,"cookies":false,"type":"","demo":"health\/get-cache.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-cache.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/db":{"get":{"summary":"Get DB","operationId":"healthGetDB","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite database server is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getDB","weight":108,"cookies":false,"type":"","demo":"health\/get-d-b.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-db.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/certificates":{"get":{"summary":"Get Certificates Queue","operationId":"healthGetQueueCertificates","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of certificates that are waiting to be issued against [Letsencrypt](https:\/\/letsencrypt.org\/) in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueCertificates","weight":114,"cookies":false,"type":"","demo":"health\/get-queue-certificates.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-certificates.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/functions":{"get":{"summary":"Get Functions Queue","operationId":"healthGetQueueFunctions","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueFunctions","weight":115,"cookies":false,"type":"","demo":"health\/get-queue-functions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-functions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/logs":{"get":{"summary":"Get Logs Queue","operationId":"healthGetQueueLogs","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of logs that are waiting to be processed in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueLogs","weight":112,"cookies":false,"type":"","demo":"health\/get-queue-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/usage":{"get":{"summary":"Get Usage Queue","operationId":"healthGetQueueUsage","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of usage stats that are waiting to be processed in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueUsage","weight":113,"cookies":false,"type":"","demo":"health\/get-queue-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-usage.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/webhooks":{"get":{"summary":"Get Webhooks Queue","operationId":"healthGetQueueWebhooks","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of webhooks that are waiting to be processed in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueWebhooks","weight":111,"cookies":false,"type":"","demo":"health\/get-queue-webhooks.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-webhooks.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/storage\/local":{"get":{"summary":"Get Local Storage","operationId":"healthGetStorageLocal","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite local storage device is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getStorageLocal","weight":116,"cookies":false,"type":"","demo":"health\/get-storage-local.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-local.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/time":{"get":{"summary":"Get Time","operationId":"healthGetTime","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite server time is synced with Google remote NTP server. We use this technology to smoothly handle leap seconds with no disruptive events. The [Network Time Protocol](https:\/\/en.wikipedia.org\/wiki\/Network_Time_Protocol) (NTP) is used by hundreds of millions of computers and devices to synchronize their clocks over the Internet. If your computer sets its own clock, it likely uses NTP.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getTime","weight":110,"cookies":false,"type":"","demo":"health\/get-time.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-time.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/locale":{"get":{"summary":"Get User Locale","operationId":"localeGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.\n\n([IP Geolocation by DB-IP](https:\/\/db-ip.com))","responses":{"200":{"description":"Locale","schema":{"$ref":"#\/definitions\/locale"}}},"x-appwrite":{"method":"get","weight":99,"cookies":false,"type":"","demo":"locale\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/continents":{"get":{"summary":"List Continents","operationId":"localeGetContinents","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all continents. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Continents List","schema":{"$ref":"#\/definitions\/continentList"}}},"x-appwrite":{"method":"getContinents","weight":103,"cookies":false,"type":"","demo":"locale\/get-continents.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-continents.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/countries":{"get":{"summary":"List Countries","operationId":"localeGetCountries","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Countries List","schema":{"$ref":"#\/definitions\/countryList"}}},"x-appwrite":{"method":"getCountries","weight":100,"cookies":false,"type":"","demo":"locale\/get-countries.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/countries\/eu":{"get":{"summary":"List EU Countries","operationId":"localeGetCountriesEU","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries that are currently members of the EU. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Countries List","schema":{"$ref":"#\/definitions\/countryList"}}},"x-appwrite":{"method":"getCountriesEU","weight":101,"cookies":false,"type":"","demo":"locale\/get-countries-e-u.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries-eu.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/countries\/phones":{"get":{"summary":"List Countries Phone Codes","operationId":"localeGetCountriesPhones","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries phone codes. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Phones List","schema":{"$ref":"#\/definitions\/phoneList"}}},"x-appwrite":{"method":"getCountriesPhones","weight":102,"cookies":false,"type":"","demo":"locale\/get-countries-phones.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries-phones.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/currencies":{"get":{"summary":"List Currencies","operationId":"localeGetCurrencies","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Currencies List","schema":{"$ref":"#\/definitions\/currencyList"}}},"x-appwrite":{"method":"getCurrencies","weight":104,"cookies":false,"type":"","demo":"locale\/get-currencies.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-currencies.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/languages":{"get":{"summary":"List Languages","operationId":"localeGetLanguages","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.","responses":{"200":{"description":"Languages List","schema":{"$ref":"#\/definitions\/languageList"}}},"x-appwrite":{"method":"getLanguages","weight":105,"cookies":false,"type":"","demo":"locale\/get-languages.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-languages.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/projects":{"get":{"summary":"List Projects","operationId":"projectsList","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Projects List","schema":{"$ref":"#\/definitions\/projectList"}}},"x-appwrite":{"method":"list","weight":120,"cookies":false,"type":"","demo":"projects\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the project used as the starting point for the query, excluding the project itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Project","operationId":"projectsCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"201":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"create","weight":119,"cookies":false,"type":"","demo":"projects\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"projectId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Project name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"teamId":{"type":"string","description":"Team unique ID.","default":null,"x-example":"[TEAM_ID]"},"description":{"type":"string","description":"Project description. Max length: 256 chars.","default":"","x-example":"[DESCRIPTION]"},"logo":{"type":"string","description":"Project logo.","default":"","x-example":"[LOGO]"},"url":{"type":"string","description":"Project URL.","default":"","x-example":"https:\/\/example.com"},"legalName":{"type":"string","description":"Project legal Name. Max length: 256 chars.","default":"","x-example":"[LEGAL_NAME]"},"legalCountry":{"type":"string","description":"Project legal Country. Max length: 256 chars.","default":"","x-example":"[LEGAL_COUNTRY]"},"legalState":{"type":"string","description":"Project legal State. Max length: 256 chars.","default":"","x-example":"[LEGAL_STATE]"},"legalCity":{"type":"string","description":"Project legal City. Max length: 256 chars.","default":"","x-example":"[LEGAL_CITY]"},"legalAddress":{"type":"string","description":"Project legal Address. Max length: 256 chars.","default":"","x-example":"[LEGAL_ADDRESS]"},"legalTaxId":{"type":"string","description":"Project legal Tax ID. Max length: 256 chars.","default":"","x-example":"[LEGAL_TAX_ID]"}},"required":["projectId","name","teamId"]}}]}},"\/projects\/{projectId}":{"get":{"summary":"Get Project","operationId":"projectsGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"get","weight":121,"cookies":false,"type":"","demo":"projects\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"}]},"patch":{"summary":"Update Project","operationId":"projectsUpdate","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"update","weight":123,"cookies":false,"type":"","demo":"projects\/update.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Project name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"description":{"type":"string","description":"Project description. Max length: 256 chars.","default":"","x-example":"[DESCRIPTION]"},"logo":{"type":"string","description":"Project logo.","default":"","x-example":"[LOGO]"},"url":{"type":"string","description":"Project URL.","default":"","x-example":"https:\/\/example.com"},"legalName":{"type":"string","description":"Project legal name. Max length: 256 chars.","default":"","x-example":"[LEGAL_NAME]"},"legalCountry":{"type":"string","description":"Project legal country. Max length: 256 chars.","default":"","x-example":"[LEGAL_COUNTRY]"},"legalState":{"type":"string","description":"Project legal state. Max length: 256 chars.","default":"","x-example":"[LEGAL_STATE]"},"legalCity":{"type":"string","description":"Project legal city. Max length: 256 chars.","default":"","x-example":"[LEGAL_CITY]"},"legalAddress":{"type":"string","description":"Project legal address. Max length: 256 chars.","default":"","x-example":"[LEGAL_ADDRESS]"},"legalTaxId":{"type":"string","description":"Project legal tax ID. Max length: 256 chars.","default":"","x-example":"[LEGAL_TAX_ID]"}},"required":["name"]}}]},"delete":{"summary":"Delete Project","operationId":"projectsDelete","consumes":["application\/json"],"produces":[],"tags":["projects"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":128,"cookies":false,"type":"","demo":"projects\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"password":{"type":"string","description":"Your user password for confirmation. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["password"]}}]}},"\/projects\/{projectId}\/auth\/limit":{"patch":{"summary":"Update Project users limit","operationId":"projectsUpdateAuthLimit","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"updateAuthLimit","weight":126,"cookies":false,"type":"","demo":"projects\/update-auth-limit.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"limit":{"type":"integer","description":"Set the max number of users allowed in this project. Use 0 for unlimited.","default":null,"x-example":null}},"required":["limit"]}}]}},"\/projects\/{projectId}\/auth\/{method}":{"patch":{"summary":"Update Project auth method status. Use this endpoint to enable or disable a given auth method for this project.","operationId":"projectsUpdateAuthStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"updateAuthStatus","weight":127,"cookies":false,"type":"","demo":"projects\/update-auth-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"method","description":"Auth Method. Possible values: email-password,magic-url,anonymous,invites,jwt,phone","required":true,"type":"string","x-example":"email-password","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"status":{"type":"boolean","description":"Set the status of this auth method.","default":null,"x-example":false}},"required":["status"]}}]}},"\/projects\/{projectId}\/domains":{"get":{"summary":"List Domains","operationId":"projectsListDomains","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Domains List","schema":{"$ref":"#\/definitions\/domainList"}}},"x-appwrite":{"method":"listDomains","weight":145,"cookies":false,"type":"","demo":"projects\/list-domains.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"}]},"post":{"summary":"Create Domain","operationId":"projectsCreateDomain","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"201":{"description":"Domain","schema":{"$ref":"#\/definitions\/domain"}}},"x-appwrite":{"method":"createDomain","weight":144,"cookies":false,"type":"","demo":"projects\/create-domain.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name.","default":null,"x-example":null}},"required":["domain"]}}]}},"\/projects\/{projectId}\/domains\/{domainId}":{"get":{"summary":"Get Domain","operationId":"projectsGetDomain","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Domain","schema":{"$ref":"#\/definitions\/domain"}}},"x-appwrite":{"method":"getDomain","weight":146,"cookies":false,"type":"","demo":"projects\/get-domain.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"domainId","description":"Domain unique ID.","required":true,"type":"string","x-example":"[DOMAIN_ID]","in":"path"}]},"delete":{"summary":"Delete Domain","operationId":"projectsDeleteDomain","consumes":["application\/json"],"produces":[],"tags":["projects"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteDomain","weight":148,"cookies":false,"type":"","demo":"projects\/delete-domain.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"domainId","description":"Domain unique ID.","required":true,"type":"string","x-example":"[DOMAIN_ID]","in":"path"}]}},"\/projects\/{projectId}\/domains\/{domainId}\/verification":{"patch":{"summary":"Update Domain Verification Status","operationId":"projectsUpdateDomainVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Domain","schema":{"$ref":"#\/definitions\/domain"}}},"x-appwrite":{"method":"updateDomainVerification","weight":147,"cookies":false,"type":"","demo":"projects\/update-domain-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"domainId","description":"Domain unique ID.","required":true,"type":"string","x-example":"[DOMAIN_ID]","in":"path"}]}},"\/projects\/{projectId}\/keys":{"get":{"summary":"List Keys","operationId":"projectsListKeys","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"API Keys List","schema":{"$ref":"#\/definitions\/keyList"}}},"x-appwrite":{"method":"listKeys","weight":135,"cookies":false,"type":"","demo":"projects\/list-keys.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"}]},"post":{"summary":"Create Key","operationId":"projectsCreateKey","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"201":{"description":"Key","schema":{"$ref":"#\/definitions\/key"}}},"x-appwrite":{"method":"createKey","weight":134,"cookies":false,"type":"","demo":"projects\/create-key.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Key name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"scopes":{"type":"array","description":"Key scopes list.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["name","scopes"]}}]}},"\/projects\/{projectId}\/keys\/{keyId}":{"get":{"summary":"Get Key","operationId":"projectsGetKey","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Key","schema":{"$ref":"#\/definitions\/key"}}},"x-appwrite":{"method":"getKey","weight":136,"cookies":false,"type":"","demo":"projects\/get-key.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"keyId","description":"Key unique ID.","required":true,"type":"string","x-example":"[KEY_ID]","in":"path"}]},"put":{"summary":"Update Key","operationId":"projectsUpdateKey","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Key","schema":{"$ref":"#\/definitions\/key"}}},"x-appwrite":{"method":"updateKey","weight":137,"cookies":false,"type":"","demo":"projects\/update-key.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"keyId","description":"Key unique ID.","required":true,"type":"string","x-example":"[KEY_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Key name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"scopes":{"type":"array","description":"Key scopes list","default":null,"x-example":null,"items":{"type":"string"}}},"required":["name","scopes"]}}]},"delete":{"summary":"Delete Key","operationId":"projectsDeleteKey","consumes":["application\/json"],"produces":[],"tags":["projects"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteKey","weight":138,"cookies":false,"type":"","demo":"projects\/delete-key.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"keyId","description":"Key unique ID.","required":true,"type":"string","x-example":"[KEY_ID]","in":"path"}]}},"\/projects\/{projectId}\/oauth2":{"patch":{"summary":"Update Project OAuth2","operationId":"projectsUpdateOAuth2","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"updateOAuth2","weight":125,"cookies":false,"type":"","demo":"projects\/update-o-auth2.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"provider":{"type":"string","description":"Provider Name","default":null,"x-example":"amazon"},"appId":{"type":"string","description":"Provider app ID. Max length: 256 chars.","default":"","x-example":"[APP_ID]"},"secret":{"type":"string","description":"Provider secret key. Max length: 512 chars.","default":"","x-example":"[SECRET]"}},"required":["provider"]}}]}},"\/projects\/{projectId}\/platforms":{"get":{"summary":"List Platforms","operationId":"projectsListPlatforms","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Platforms List","schema":{"$ref":"#\/definitions\/platformList"}}},"x-appwrite":{"method":"listPlatforms","weight":140,"cookies":false,"type":"","demo":"projects\/list-platforms.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"}]},"post":{"summary":"Create Platform","operationId":"projectsCreatePlatform","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"201":{"description":"Platform","schema":{"$ref":"#\/definitions\/platform"}}},"x-appwrite":{"method":"createPlatform","weight":139,"cookies":false,"type":"","demo":"projects\/create-platform.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"type":{"type":"string","description":"Platform type.","default":null,"x-example":"web"},"name":{"type":"string","description":"Platform name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"key":{"type":"string","description":"Package name for Android or bundle ID for iOS or macOS. Max length: 256 chars.","default":"","x-example":"[KEY]"},"store":{"type":"string","description":"App store or Google Play store ID. Max length: 256 chars.","default":"","x-example":"[STORE]"},"hostname":{"type":"string","description":"Platform client hostname. Max length: 256 chars.","default":"","x-example":"[HOSTNAME]"}},"required":["type","name"]}}]}},"\/projects\/{projectId}\/platforms\/{platformId}":{"get":{"summary":"Get Platform","operationId":"projectsGetPlatform","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Platform","schema":{"$ref":"#\/definitions\/platform"}}},"x-appwrite":{"method":"getPlatform","weight":141,"cookies":false,"type":"","demo":"projects\/get-platform.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"platformId","description":"Platform unique ID.","required":true,"type":"string","x-example":"[PLATFORM_ID]","in":"path"}]},"put":{"summary":"Update Platform","operationId":"projectsUpdatePlatform","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Platform","schema":{"$ref":"#\/definitions\/platform"}}},"x-appwrite":{"method":"updatePlatform","weight":142,"cookies":false,"type":"","demo":"projects\/update-platform.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"platformId","description":"Platform unique ID.","required":true,"type":"string","x-example":"[PLATFORM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Platform name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"key":{"type":"string","description":"Package name for android or bundle ID for iOS. Max length: 256 chars.","default":"","x-example":"[KEY]"},"store":{"type":"string","description":"App store or Google Play store ID. Max length: 256 chars.","default":"","x-example":"[STORE]"},"hostname":{"type":"string","description":"Platform client URL. Max length: 256 chars.","default":"","x-example":"[HOSTNAME]"}},"required":["name"]}}]},"delete":{"summary":"Delete Platform","operationId":"projectsDeletePlatform","consumes":["application\/json"],"produces":[],"tags":["projects"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deletePlatform","weight":143,"cookies":false,"type":"","demo":"projects\/delete-platform.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"platformId","description":"Platform unique ID.","required":true,"type":"string","x-example":"[PLATFORM_ID]","in":"path"}]}},"\/projects\/{projectId}\/service":{"patch":{"summary":"Update service status","operationId":"projectsUpdateServiceStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"updateServiceStatus","weight":124,"cookies":false,"type":"","demo":"projects\/update-service-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"service":{"type":"string","description":"Service name.","default":null,"x-example":"account"},"status":{"type":"boolean","description":"Service status.","default":null,"x-example":false}},"required":["service","status"]}}]}},"\/projects\/{projectId}\/usage":{"get":{"summary":"Get usage stats for a project","operationId":"projectsGetUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"UsageProject","schema":{"$ref":"#\/definitions\/usageProject"}}},"x-appwrite":{"method":"getUsage","weight":122,"cookies":false,"type":"","demo":"projects\/get-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"}]}},"\/projects\/{projectId}\/webhooks":{"get":{"summary":"List Webhooks","operationId":"projectsListWebhooks","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Webhooks List","schema":{"$ref":"#\/definitions\/webhookList"}}},"x-appwrite":{"method":"listWebhooks","weight":130,"cookies":false,"type":"","demo":"projects\/list-webhooks.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"}]},"post":{"summary":"Create Webhook","operationId":"projectsCreateWebhook","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"201":{"description":"Webhook","schema":{"$ref":"#\/definitions\/webhook"}}},"x-appwrite":{"method":"createWebhook","weight":129,"cookies":false,"type":"","demo":"projects\/create-webhook.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Webhook name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"events":{"type":"array","description":"Events list.","default":null,"x-example":null,"items":{"type":"string"}},"url":{"type":"string","description":"Webhook URL.","default":null,"x-example":"https:\/\/example.com"},"security":{"type":"boolean","description":"Certificate verification, false for disabled or true for enabled.","default":null,"x-example":false},"httpUser":{"type":"string","description":"Webhook HTTP user. Max length: 256 chars.","default":"","x-example":"[HTTP_USER]"},"httpPass":{"type":"string","description":"Webhook HTTP password. Max length: 256 chars.","default":"","x-example":"[HTTP_PASS]"}},"required":["name","events","url","security"]}}]}},"\/projects\/{projectId}\/webhooks\/{webhookId}":{"get":{"summary":"Get Webhook","operationId":"projectsGetWebhook","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Webhook","schema":{"$ref":"#\/definitions\/webhook"}}},"x-appwrite":{"method":"getWebhook","weight":131,"cookies":false,"type":"","demo":"projects\/get-webhook.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"webhookId","description":"Webhook unique ID.","required":true,"type":"string","x-example":"[WEBHOOK_ID]","in":"path"}]},"put":{"summary":"Update Webhook","operationId":"projectsUpdateWebhook","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Webhook","schema":{"$ref":"#\/definitions\/webhook"}}},"x-appwrite":{"method":"updateWebhook","weight":132,"cookies":false,"type":"","demo":"projects\/update-webhook.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"webhookId","description":"Webhook unique ID.","required":true,"type":"string","x-example":"[WEBHOOK_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Webhook name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"events":{"type":"array","description":"Events list.","default":null,"x-example":null,"items":{"type":"string"}},"url":{"type":"string","description":"Webhook URL.","default":null,"x-example":"https:\/\/example.com"},"security":{"type":"boolean","description":"Certificate verification, false for disabled or true for enabled.","default":null,"x-example":false},"httpUser":{"type":"string","description":"Webhook HTTP user. Max length: 256 chars.","default":"","x-example":"[HTTP_USER]"},"httpPass":{"type":"string","description":"Webhook HTTP password. Max length: 256 chars.","default":"","x-example":"[HTTP_PASS]"}},"required":["name","events","url","security"]}}]},"delete":{"summary":"Delete Webhook","operationId":"projectsDeleteWebhook","consumes":["application\/json"],"produces":[],"tags":["projects"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteWebhook","weight":133,"cookies":false,"type":"","demo":"projects\/delete-webhook.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"webhookId","description":"Webhook unique ID.","required":true,"type":"string","x-example":"[WEBHOOK_ID]","in":"path"}]}},"\/storage\/files":{"get":{"summary":"List Files","operationId":"storageListFiles","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Get a list of all the user files. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's files. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Files List","schema":{"$ref":"#\/definitions\/fileList"}}},"x-appwrite":{"method":"listFiles","weight":150,"cookies":false,"type":"","demo":"storage\/list-files.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the file used as the starting point for the query, excluding the file itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create File","operationId":"storageCreateFile","consumes":["multipart\/form-data"],"produces":["application\/json"],"tags":["storage"],"description":"Create a new file. The user who creates the file will automatically be assigned to read and write access unless he has passed custom values for read and write arguments.","responses":{"201":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"createFile","weight":149,"cookies":false,"type":"upload","demo":"storage\/create-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","required":true,"type":"string","in":"formData"},{"name":"file","description":"Binary file.","required":true,"type":"file","in":"formData"},{"name":"read","description":"An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"in":"formData"},{"name":"write","description":"An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"in":"formData"}]}},"\/storage\/files\/{fileId}":{"get":{"summary":"Get File","operationId":"storageGetFile","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.","responses":{"200":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"getFile","weight":151,"cookies":false,"type":"","demo":"storage\/get-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]},"put":{"summary":"Update File","operationId":"storageUpdateFile","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Update a file by its unique ID. Only users with write permissions have access to update this resource.","responses":{"200":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"updateFile","weight":155,"cookies":false,"type":"","demo":"storage\/update-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"read":{"type":"array","description":"An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["read","write"]}}]},"delete":{"summary":"Delete File","operationId":"storageDeleteFile","consumes":["application\/json"],"produces":[],"tags":["storage"],"description":"Delete a file by its unique ID. Only users with write permissions have access to delete this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteFile","weight":156,"cookies":false,"type":"","demo":"storage\/delete-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/files\/{fileId}\/download":{"get":{"summary":"Get File for Download","operationId":"storageGetFileDownload","consumes":["application\/json"],"produces":["*\/*"],"tags":["storage"],"description":"Get a file content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.","responses":{"200":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getFileDownload","weight":153,"cookies":false,"type":"location","demo":"storage\/get-file-download.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/files\/{fileId}\/preview":{"get":{"summary":"Get File Preview","operationId":"storageGetFilePreview","consumes":["application\/json"],"produces":["image\/*"],"tags":["storage"],"description":"Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFilePreview","weight":152,"cookies":false,"type":"location","demo":"storage\/get-file-preview.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"},{"name":"width","description":"Resize preview image width, Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"height","description":"Resize preview image height, Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"gravity","description":"Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right","required":false,"type":"string","x-example":"center","default":"center","in":"query"},{"name":"quality","description":"Preview image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"borderWidth","description":"Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"borderColor","description":"Preview image border color. Use a valid HEX color, no # is needed for prefix.","required":false,"type":"string","default":"","in":"query"},{"name":"borderRadius","description":"Preview image border radius in pixels. Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"opacity","description":"Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.","required":false,"type":"number","format":"float","x-example":0,"default":1,"in":"query"},{"name":"rotation","description":"Preview image rotation in degrees. Pass an integer between -360 and 360.","required":false,"type":"integer","format":"int32","x-example":-360,"default":0,"in":"query"},{"name":"background","description":"Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.","required":false,"type":"string","default":"","in":"query"},{"name":"output","description":"Output format type (jpeg, jpg, png, gif and webp).","required":false,"type":"string","x-example":"jpg","default":"","in":"query"}]}},"\/storage\/files\/{fileId}\/view":{"get":{"summary":"Get File for View","operationId":"storageGetFileView","consumes":["application\/json"],"produces":["*\/*"],"tags":["storage"],"description":"Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.","responses":{"200":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getFileView","weight":154,"cookies":false,"type":"location","demo":"storage\/get-file-view.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/usage":{"get":{"summary":"Get usage stats for storage","operationId":"storageGetUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"","responses":{"200":{"description":"StorageUsage","schema":{"$ref":"#\/definitions\/usageStorage"}}},"x-appwrite":{"method":"getUsage","weight":157,"cookies":false,"type":"","demo":"storage\/get-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"}]}},"\/storage\/{bucketId}\/usage":{"get":{"summary":"Get usage stats for a storage bucket","operationId":"storageGetBucketUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"","responses":{"200":{"description":"UsageBuckets","schema":{"$ref":"#\/definitions\/usageBuckets"}}},"x-appwrite":{"method":"getBucketUsage","weight":158,"cookies":false,"type":"","demo":"storage\/get-bucket-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"bucketId","description":"Bucket unique ID.","required":true,"type":"string","x-example":"[BUCKET_ID]","in":"path"},{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"}]}},"\/teams":{"get":{"summary":"List Teams","operationId":"teamsList","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a list of all the current user teams. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's teams. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Teams List","schema":{"$ref":"#\/definitions\/teamList"}}},"x-appwrite":{"method":"list","weight":160,"cookies":false,"type":"","demo":"teams\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the team used as the starting point for the query, excluding the team itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Team","operationId":"teamsCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Create a new team. The user who creates the team will automatically be assigned as the owner of the team. The team owner can invite new members, who will be able add new owners and update or delete the team from your project.","responses":{"201":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"create","weight":159,"cookies":false,"type":"","demo":"teams\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"teamId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Team name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"roles":{"type":"array","description":"Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":["owner"],"x-example":null,"items":{"type":"string"}}},"required":["teamId","name"]}}]}},"\/teams\/{teamId}":{"get":{"summary":"Get Team","operationId":"teamsGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team by its unique ID. All team members have read access for this resource.","responses":{"200":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"get","weight":161,"cookies":false,"type":"","demo":"teams\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"}]},"put":{"summary":"Update Team","operationId":"teamsUpdate","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Update a team by its unique ID. Only team owners have write access for this resource.","responses":{"200":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"update","weight":162,"cookies":false,"type":"","demo":"teams\/update.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Team name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]},"delete":{"summary":"Delete Team","operationId":"teamsDelete","consumes":["application\/json"],"produces":[],"tags":["teams"],"description":"Delete a team by its unique ID. Only team owners have write access for this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":163,"cookies":false,"type":"","demo":"teams\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"}]}},"\/teams\/{teamId}\/memberships":{"get":{"summary":"Get Team Memberships","operationId":"teamsGetMemberships","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team members by the team unique ID. All team members have read access for this list of resources.","responses":{"200":{"description":"Memberships List","schema":{"$ref":"#\/definitions\/membershipList"}}},"x-appwrite":{"method":"getMemberships","weight":165,"cookies":false,"type":"","demo":"teams\/get-memberships.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-members.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the membership used as the starting point for the query, excluding the membership itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Team Membership","operationId":"teamsCreateMembership","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"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.\n\nUse 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.\n\nPlease 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.","responses":{"201":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"createMembership","weight":164,"cookies":false,"type":"","demo":"teams\/create-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team-membership.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"New team member email.","default":null,"x-example":"email@example.com"},"roles":{"type":"array","description":"Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":null,"x-example":null,"items":{"type":"string"}},"url":{"type":"string","description":"URL to redirect the user back to your app from the invitation email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"},"name":{"type":"string","description":"New team member name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["email","roles","url"]}}]}},"\/teams\/{teamId}\/memberships\/{membershipId}":{"get":{"summary":"Get Team Membership","operationId":"teamsGetMembership","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team member by the membership unique id. All team members have read access for this resource.","responses":{"200":{"description":"Memberships List","schema":{"$ref":"#\/definitions\/membershipList"}}},"x-appwrite":{"method":"getMembership","weight":166,"cookies":false,"type":"","demo":"teams\/get-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"membership unique ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"}]},"patch":{"summary":"Update Membership Roles","operationId":"teamsUpdateMembershipRoles","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"","responses":{"200":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"updateMembershipRoles","weight":167,"cookies":false,"type":"","demo":"teams\/update-membership-roles.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-roles.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"roles":{"type":"array","description":"Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["roles"]}}]},"delete":{"summary":"Delete Team Membership","operationId":"teamsDeleteMembership","consumes":["application\/json"],"produces":[],"tags":["teams"],"description":"This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteMembership","weight":169,"cookies":false,"type":"","demo":"teams\/delete-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"}]}},"\/teams\/{teamId}\/memberships\/{membershipId}\/status":{"patch":{"summary":"Update Team Membership Status","operationId":"teamsUpdateMembershipStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user.","responses":{"200":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"updateMembershipStatus","weight":168,"cookies":false,"type":"","demo":"teams\/update-membership-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User unique ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Secret key.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/users":{"get":{"summary":"List Users","operationId":"usersList","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get a list of all the project's users. You can use the query params to filter your results.","responses":{"200":{"description":"Users List","schema":{"$ref":"#\/definitions\/userList"}}},"x-appwrite":{"method":"list","weight":171,"cookies":false,"type":"","demo":"users\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-users.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the user used as the starting point for the query, excluding the user itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create User","operationId":"usersCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Create a new user.","responses":{"201":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"create","weight":170,"cookies":false,"type":"","demo":"users\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"},"name":{"type":"string","description":"User name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["userId","email","password"]}}]}},"\/users\/usage":{"get":{"summary":"Get usage stats for the users API","operationId":"usersGetUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"","responses":{"200":{"description":"UsageUsers","schema":{"$ref":"#\/definitions\/usageUsers"}}},"x-appwrite":{"method":"getUsage","weight":185,"cookies":false,"type":"","demo":"users\/get-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"},{"name":"provider","description":"Provider Name.","required":false,"type":"string","x-example":"email","default":"","in":"query"}]}},"\/users\/{userId}":{"get":{"summary":"Get User","operationId":"usersGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get a user by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"get","weight":172,"cookies":false,"type":"","demo":"users\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]},"delete":{"summary":"Delete User","operationId":"usersDelete","consumes":["application\/json"],"produces":[],"tags":["users"],"description":"Delete a user by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":184,"cookies":false,"type":"","demo":"users\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]}},"\/users\/{userId}\/email":{"patch":{"summary":"Update Email","operationId":"usersUpdateEmail","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user email by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateEmail","weight":180,"cookies":false,"type":"","demo":"users\/update-email.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"}},"required":["email"]}}]}},"\/users\/{userId}\/logs":{"get":{"summary":"Get User Logs","operationId":"usersGetLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get the user activity logs list by its unique ID.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"getLogs","weight":175,"cookies":false,"type":"","demo":"users\/get-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"limit","description":"Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/users\/{userId}\/name":{"patch":{"summary":"Update Name","operationId":"usersUpdateName","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user name by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateName","weight":178,"cookies":false,"type":"","demo":"users\/update-name.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-name.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"User name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]}},"\/users\/{userId}\/password":{"patch":{"summary":"Update Password","operationId":"usersUpdatePassword","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user password by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePassword","weight":179,"cookies":false,"type":"","demo":"users\/update-password.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-password.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"password":{"type":"string","description":"New user password. Must be between 6 to 32 chars.","default":null,"x-example":"password"}},"required":["password"]}}]}},"\/users\/{userId}\/prefs":{"get":{"summary":"Get User Preferences","operationId":"usersGetPrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get the user preferences by its unique ID.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"getPrefs","weight":173,"cookies":false,"type":"","demo":"users\/get-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]},"patch":{"summary":"Update User Preferences","operationId":"usersUpdatePrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user preferences by its unique ID. You can pass only the specific settings you wish to update.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"updatePrefs","weight":181,"cookies":false,"type":"","demo":"users\/update-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"prefs":{"type":"object","description":"Prefs key-value JSON object.","default":{},"x-example":"{}"}},"required":["prefs"]}}]}},"\/users\/{userId}\/sessions":{"get":{"summary":"Get User Sessions","operationId":"usersGetSessions","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get the user sessions list by its unique ID.","responses":{"200":{"description":"Sessions List","schema":{"$ref":"#\/definitions\/sessionList"}}},"x-appwrite":{"method":"getSessions","weight":174,"cookies":false,"type":"","demo":"users\/get-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]},"delete":{"summary":"Delete User Sessions","operationId":"usersDeleteSessions","consumes":["application\/json"],"produces":[],"tags":["users"],"description":"Delete all user's sessions by using the user's unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSessions","weight":183,"cookies":false,"type":"","demo":"users\/delete-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]}},"\/users\/{userId}\/sessions\/{sessionId}":{"delete":{"summary":"Delete User Session","operationId":"usersDeleteSession","consumes":["application\/json"],"produces":[],"tags":["users"],"description":"Delete a user sessions by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSession","weight":182,"cookies":false,"type":"","demo":"users\/delete-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-session.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"sessionId","description":"User unique session ID.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]}},"\/users\/{userId}\/status":{"patch":{"summary":"Update User Status","operationId":"usersUpdateStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user status by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateStatus","weight":176,"cookies":false,"type":"","demo":"users\/update-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-status.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"status":{"type":"boolean","description":"User Status. To activate the user pass `true` and to block the user pass `false`","default":null,"x-example":false}},"required":["status"]}}]}},"\/users\/{userId}\/verification":{"patch":{"summary":"Update Email Verification","operationId":"usersUpdateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user email verification status by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateVerification","weight":177,"cookies":false,"type":"","demo":"users\/update-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-verification.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"emailVerification":{"type":"boolean","description":"User Email Verification Status.","default":null,"x-example":false}},"required":["emailVerification"]}}]}}},"tags":[{"name":"account","description":"The Account service allows you to authenticate and manage a user account."},{"name":"avatars","description":"The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars."},{"name":"database","description":"The Database service allows you to create structured collections of documents, query and filter lists of documents"},{"name":"locale","description":"The Locale service allows you to customize your app based on your users' location."},{"name":"health","description":"The Health service allows you to both validate and monitor your Appwrite server's health."},{"name":"projects","description":"The Project service allows you to manage all the projects in your Appwrite server."},{"name":"storage","description":"The Storage service allows you to manage your project files."},{"name":"teams","description":"The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources"},{"name":"users","description":"The Users service allows you to manage your project users."},{"name":"functions","description":"The Functions Service allows you view, create and manage your Cloud Functions."}],"definitions":{"collectionList":{"description":"Collections List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"collections":{"type":"array","description":"List of collections.","items":{"type":"object","$ref":"#\/definitions\/collection"},"x-example":""}},"required":["sum","collections"]},"indexList":{"description":"Indexes List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"indexes":{"type":"array","description":"List of indexes.","items":{"type":"object","$ref":"#\/definitions\/index"},"x-example":""}},"required":["sum","indexes"]},"documentList":{"description":"Documents List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"documents":{"type":"array","description":"List of documents.","items":{"type":"object","$ref":"#\/definitions\/document"},"x-example":""}},"required":["sum","documents"]},"userList":{"description":"Users List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"users":{"type":"array","description":"List of users.","items":{"type":"object","$ref":"#\/definitions\/user"},"x-example":""}},"required":["sum","users"]},"sessionList":{"description":"Sessions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"sessions":{"type":"array","description":"List of sessions.","items":{"type":"object","$ref":"#\/definitions\/session"},"x-example":""}},"required":["sum","sessions"]},"logList":{"description":"Logs List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"logs":{"type":"array","description":"List of logs.","items":{"type":"object","$ref":"#\/definitions\/log"},"x-example":""}},"required":["sum","logs"]},"fileList":{"description":"Files List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"files":{"type":"array","description":"List of files.","items":{"type":"object","$ref":"#\/definitions\/file"},"x-example":""}},"required":["sum","files"]},"teamList":{"description":"Teams List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"teams":{"type":"array","description":"List of teams.","items":{"type":"object","$ref":"#\/definitions\/team"},"x-example":""}},"required":["sum","teams"]},"membershipList":{"description":"Memberships List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"memberships":{"type":"array","description":"List of memberships.","items":{"type":"object","$ref":"#\/definitions\/membership"},"x-example":""}},"required":["sum","memberships"]},"functionList":{"description":"Functions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"functions":{"type":"array","description":"List of functions.","items":{"type":"object","$ref":"#\/definitions\/function"},"x-example":""}},"required":["sum","functions"]},"runtimeList":{"description":"Runtimes List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"runtimes":{"type":"array","description":"List of runtimes.","items":{"type":"object","$ref":"#\/definitions\/runtime"},"x-example":""}},"required":["sum","runtimes"]},"tagList":{"description":"Tags List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"tags":{"type":"array","description":"List of tags.","items":{"type":"object","$ref":"#\/definitions\/tag"},"x-example":""}},"required":["sum","tags"]},"executionList":{"description":"Executions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"executions":{"type":"array","description":"List of executions.","items":{"type":"object","$ref":"#\/definitions\/execution"},"x-example":""}},"required":["sum","executions"]},"projectList":{"description":"Projects List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"projects":{"type":"array","description":"List of projects.","items":{"type":"object","$ref":"#\/definitions\/project"},"x-example":""}},"required":["sum","projects"]},"webhookList":{"description":"Webhooks List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"webhooks":{"type":"array","description":"List of webhooks.","items":{"type":"object","$ref":"#\/definitions\/webhook"},"x-example":""}},"required":["sum","webhooks"]},"keyList":{"description":"API Keys List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"keys":{"type":"array","description":"List of keys.","items":{"type":"object","$ref":"#\/definitions\/key"},"x-example":""}},"required":["sum","keys"]},"platformList":{"description":"Platforms List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"platforms":{"type":"array","description":"List of platforms.","items":{"type":"object","$ref":"#\/definitions\/platform"},"x-example":""}},"required":["sum","platforms"]},"domainList":{"description":"Domains List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"domains":{"type":"array","description":"List of domains.","items":{"type":"object","$ref":"#\/definitions\/domain"},"x-example":""}},"required":["sum","domains"]},"countryList":{"description":"Countries List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"countries":{"type":"array","description":"List of countries.","items":{"type":"object","$ref":"#\/definitions\/country"},"x-example":""}},"required":["sum","countries"]},"continentList":{"description":"Continents List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"continents":{"type":"array","description":"List of continents.","items":{"type":"object","$ref":"#\/definitions\/continent"},"x-example":""}},"required":["sum","continents"]},"languageList":{"description":"Languages List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"languages":{"type":"array","description":"List of languages.","items":{"type":"object","$ref":"#\/definitions\/language"},"x-example":""}},"required":["sum","languages"]},"currencyList":{"description":"Currencies List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"currencies":{"type":"array","description":"List of currencies.","items":{"type":"object","$ref":"#\/definitions\/currency"},"x-example":""}},"required":["sum","currencies"]},"phoneList":{"description":"Phones List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"phones":{"type":"array","description":"List of phones.","items":{"type":"object","$ref":"#\/definitions\/phone"},"x-example":""}},"required":["sum","phones"]},"metricList":{"description":"Metric List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"metrics":{"type":"array","description":"List of metrics.","items":{"type":"object","$ref":"#\/definitions\/metric"},"x-example":""}},"required":["sum","metrics"]},"collection":{"description":"Collection","type":"object","properties":{"$id":{"type":"string","description":"Collection ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"Collection read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"Collection write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"},"name":{"type":"string","description":"Collection name.","x-example":"My Collection"},"enabled":{"type":"boolean","description":"Collection enabled.","x-example":false},"permission":{"type":"string","description":"Collection permission model. Possible values: `document` or `collection`","x-example":"document"},"attributes":{"type":"array","description":"Collection attributes.","items":{"anyOf":[{"$ref":"#\/definitions\/attributeBoolean"},{"$ref":"#\/definitions\/attributeInteger"},{"$ref":"#\/definitions\/attributeFloat"},{"$ref":"#\/definitions\/attributeEmail"},{"$ref":"#\/definitions\/attributeEnum"},{"$ref":"#\/definitions\/attributeUrl"},{"$ref":"#\/definitions\/attributeIp"},{"$ref":"#\/definitions\/attributeString"}]},"x-example":{}},"indexes":{"type":"array","description":"Collection indexes.","items":{"type":"object","$ref":"#\/definitions\/index"},"x-example":{}}},"required":["$id","$read","$write","name","enabled","permission","attributes","indexes"]},"attributeList":{"description":"Attributes List","type":"object","properties":{"sum":{"type":"integer","description":"Total sum of items in the list.","x-example":5,"format":"int32"},"attributes":{"type":"array","description":"List of attributes.","items":{"anyOf":[{"$ref":"#\/definitions\/attributeBoolean"},{"$ref":"#\/definitions\/attributeInteger"},{"$ref":"#\/definitions\/attributeFloat"},{"$ref":"#\/definitions\/attributeEmail"},{"$ref":"#\/definitions\/attributeEnum"},{"$ref":"#\/definitions\/attributeUrl"},{"$ref":"#\/definitions\/attributeIp"},{"$ref":"#\/definitions\/attributeString"}]},"x-example":""}},"required":["sum","attributes"]},"attributeString":{"description":"AttributeString","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"size":{"type":"string","description":"Attribute size.","x-example":128},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"default","nullable":true}},"required":["key","type","status","required","size"]},"attributeInteger":{"description":"AttributeInteger","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"min":{"type":"integer","description":"Minimum value to enforce for new documents.","x-example":1,"format":"int32","nullable":true},"max":{"type":"integer","description":"Maximum value to enforce for new documents.","x-example":10,"format":"int32","nullable":true},"default":{"type":"integer","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":10,"format":"int32","nullable":true}},"required":["key","type","status","required"]},"attributeFloat":{"description":"AttributeFloat","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"min":{"type":"number","description":"Minimum value to enforce for new documents.","x-example":1.5,"format":"double","nullable":true},"max":{"type":"number","description":"Maximum value to enforce for new documents.","x-example":10.5,"format":"double","nullable":true},"default":{"type":"number","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":2.5,"format":"double","nullable":true}},"required":["key","type","status","required"]},"attributeBoolean":{"description":"AttributeBoolean","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"default":{"type":"boolean","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":false,"nullable":true}},"required":["key","type","status","required"]},"attributeEmail":{"description":"AttributeEmail","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"format":{"type":"string","description":"String format.","x-example":"email"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"default@example.com","nullable":true}},"required":["key","type","status","required","format"]},"attributeEnum":{"description":"AttributeEnum","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"elements":{"type":"array","description":"Array of elements in enumerated type.","items":{"type":"string"},"x-example":"element"},"format":{"type":"string","description":"String format.","x-example":"enum"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"element","nullable":true}},"required":["key","type","status","required","elements","format"]},"attributeIp":{"description":"AttributeIP","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"format":{"type":"string","description":"String format.","x-example":"ip"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"192.0.2.0","nullable":true}},"required":["key","type","status","required","format"]},"attributeUrl":{"description":"AttributeURL","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"format":{"type":"string","description":"String format.","x-example":"url"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"http:\/\/example.com","nullable":true}},"required":["key","type","status","required","format"]},"index":{"description":"Index","type":"object","properties":{"key":{"type":"string","description":"Index Key.","x-example":"index1"},"type":{"type":"string","description":"Index type.","x-example":""},"status":{"type":"string","description":"Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"attributes":{"type":"array","description":"Index attributes.","items":{"type":"string"},"x-example":[]},"orders":{"type":"array","description":"Index orders.","items":{"type":"string"},"x-example":[]}},"required":["key","type","status","attributes","orders"]},"document":{"description":"Document","type":"object","properties":{"$id":{"type":"string","description":"Document ID.","x-example":"5e5ea5c16897e"},"$collection":{"type":"string","description":"Collection ID.","x-example":"5e5ea5c15117e"},"$read":{"type":"array","description":"Document read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"Document write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"}},"additionalProperties":true,"required":["$id","$collection","$read","$write"]},"log":{"description":"Log","type":"object","properties":{"event":{"type":"string","description":"Event name.","x-example":"account.sessions.create"},"userId":{"type":"string","description":"User ID.","x-example":"610fc2f985ee0"},"userEmail":{"type":"string","description":"User Email.","x-example":"john@appwrite.io"},"userName":{"type":"string","description":"User Name.","x-example":"John Doe"},"mode":{"type":"string","description":"API mode when event triggered.","x-example":"admin"},"ip":{"type":"string","description":"IP session in use when the session was created.","x-example":"127.0.0.1"},"time":{"type":"integer","description":"Log creation time in Unix timestamp.","x-example":1592981250,"format":"int32"},"osCode":{"type":"string","description":"Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).","x-example":"Mac"},"osName":{"type":"string","description":"Operating system name.","x-example":"Mac"},"osVersion":{"type":"string","description":"Operating system version.","x-example":"Mac"},"clientType":{"type":"string","description":"Client type.","x-example":"browser"},"clientCode":{"type":"string","description":"Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).","x-example":"CM"},"clientName":{"type":"string","description":"Client name.","x-example":"Chrome Mobile iOS"},"clientVersion":{"type":"string","description":"Client version.","x-example":"84.0"},"clientEngine":{"type":"string","description":"Client engine name.","x-example":"WebKit"},"clientEngineVersion":{"type":"string","description":"Client engine name.","x-example":"605.1.15"},"deviceName":{"type":"string","description":"Device name.","x-example":"smartphone"},"deviceBrand":{"type":"string","description":"Device brand name.","x-example":"Google"},"deviceModel":{"type":"string","description":"Device model name.","x-example":"Nexus 5"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"}},"required":["event","userId","userEmail","userName","mode","ip","time","osCode","osName","osVersion","clientType","clientCode","clientName","clientVersion","clientEngine","clientEngineVersion","deviceName","deviceBrand","deviceModel","countryCode","countryName"]},"user":{"description":"User","type":"object","properties":{"$id":{"type":"string","description":"User ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"User name.","x-example":"John Doe"},"registration":{"type":"integer","description":"User registration date in Unix timestamp.","x-example":1592981250,"format":"int32"},"status":{"type":"boolean","description":"User status. Pass `true` for enabled and `false` for disabled.","x-example":true},"passwordUpdate":{"type":"integer","description":"Unix timestamp of the most recent password update","x-example":1592981250,"format":"int32"},"email":{"type":"string","description":"User email address.","x-example":"john@appwrite.io"},"emailVerification":{"type":"boolean","description":"Email verification status.","x-example":true},"prefs":{"type":"object","description":"User preferences as a key-value object","x-example":{"theme":"pink","timezone":"UTC"},"items":{"type":"object","$ref":"#\/definitions\/preferences"}}},"required":["$id","name","registration","status","passwordUpdate","email","emailVerification","prefs"]},"preferences":{"description":"Preferences","type":"object","additionalProperties":true},"session":{"description":"Session","type":"object","properties":{"$id":{"type":"string","description":"Session ID.","x-example":"5e5ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5bb8c16897e"},"expire":{"type":"integer","description":"Session expiration date in Unix timestamp.","x-example":1592981250,"format":"int32"},"provider":{"type":"string","description":"Session Provider.","x-example":"email"},"providerUid":{"type":"string","description":"Session Provider User ID.","x-example":"user@example.com"},"providerToken":{"type":"string","description":"Session Provider Token.","x-example":"MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"},"ip":{"type":"string","description":"IP in use when the session was created.","x-example":"127.0.0.1"},"osCode":{"type":"string","description":"Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).","x-example":"Mac"},"osName":{"type":"string","description":"Operating system name.","x-example":"Mac"},"osVersion":{"type":"string","description":"Operating system version.","x-example":"Mac"},"clientType":{"type":"string","description":"Client type.","x-example":"browser"},"clientCode":{"type":"string","description":"Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).","x-example":"CM"},"clientName":{"type":"string","description":"Client name.","x-example":"Chrome Mobile iOS"},"clientVersion":{"type":"string","description":"Client version.","x-example":"84.0"},"clientEngine":{"type":"string","description":"Client engine name.","x-example":"WebKit"},"clientEngineVersion":{"type":"string","description":"Client engine name.","x-example":"605.1.15"},"deviceName":{"type":"string","description":"Device name.","x-example":"smartphone"},"deviceBrand":{"type":"string","description":"Device brand name.","x-example":"Google"},"deviceModel":{"type":"string","description":"Device model name.","x-example":"Nexus 5"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"},"current":{"type":"boolean","description":"Returns true if this the current user session.","x-example":true}},"required":["$id","userId","expire","provider","providerUid","providerToken","ip","osCode","osName","osVersion","clientType","clientCode","clientName","clientVersion","clientEngine","clientEngineVersion","deviceName","deviceBrand","deviceModel","countryCode","countryName","current"]},"token":{"description":"Token","type":"object","properties":{"$id":{"type":"string","description":"Token ID.","x-example":"bb8ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5ea5c168bb8"},"secret":{"type":"string","description":"Token secret key. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.","x-example":""},"expire":{"type":"integer","description":"Token expiration date in Unix timestamp.","x-example":1592981250,"format":"int32"}},"required":["$id","userId","secret","expire"]},"jwt":{"description":"JWT","type":"object","properties":{"jwt":{"type":"string","description":"JWT encoded string.","x-example":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"}},"required":["jwt"]},"locale":{"description":"Locale","type":"object","properties":{"ip":{"type":"string","description":"User IP address.","x-example":"127.0.0.1"},"countryCode":{"type":"string","description":"Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format","x-example":"US"},"country":{"type":"string","description":"Country name. This field support localization.","x-example":"United States"},"continentCode":{"type":"string","description":"Continent code. A two character continent code \"AF\" for Africa, \"AN\" for Antarctica, \"AS\" for Asia, \"EU\" for Europe, \"NA\" for North America, \"OC\" for Oceania, and \"SA\" for South America.","x-example":"NA"},"continent":{"type":"string","description":"Continent name. This field support localization.","x-example":"North America"},"eu":{"type":"boolean","description":"True if country is part of the Europian Union.","x-example":false},"currency":{"type":"string","description":"Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format","x-example":"USD"}},"required":["ip","countryCode","country","continentCode","continent","eu","currency"]},"file":{"description":"File","type":"object","properties":{"$id":{"type":"string","description":"File ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"File read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"File write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"},"name":{"type":"string","description":"File name.","x-example":"Pink.png"},"dateCreated":{"type":"integer","description":"File creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"signature":{"type":"string","description":"File MD5 signature.","x-example":"5d529fd02b544198ae075bd57c1762bb"},"mimeType":{"type":"string","description":"File mime type.","x-example":"image\/png"},"sizeOriginal":{"type":"integer","description":"File original size in bytes.","x-example":17890,"format":"int32"}},"required":["$id","$read","$write","name","dateCreated","signature","mimeType","sizeOriginal"]},"team":{"description":"Team","type":"object","properties":{"$id":{"type":"string","description":"Team ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Team name.","x-example":"VIP"},"dateCreated":{"type":"integer","description":"Team creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"sum":{"type":"integer","description":"Total sum of team members.","x-example":7,"format":"int32"}},"required":["$id","name","dateCreated","sum"]},"membership":{"description":"Membership","type":"object","properties":{"$id":{"type":"string","description":"Membership ID.","x-example":"5e5ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5ea5c16897e"},"teamId":{"type":"string","description":"Team ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"User name.","x-example":"VIP"},"email":{"type":"string","description":"User email address.","x-example":"john@appwrite.io"},"invited":{"type":"integer","description":"Date, the user has been invited to join the team in Unix timestamp.","x-example":1592981250,"format":"int32"},"joined":{"type":"integer","description":"Date, the user has accepted the invitation to join the team in Unix timestamp.","x-example":1592981250,"format":"int32"},"confirm":{"type":"boolean","description":"User confirmation status, true if the user has joined the team or false otherwise.","x-example":false},"roles":{"type":"array","description":"User list of roles","items":{"type":"string"},"x-example":"admin"}},"required":["$id","userId","teamId","name","email","invited","joined","confirm","roles"]},"function":{"description":"Function","type":"object","properties":{"$id":{"type":"string","description":"Function ID.","x-example":"5e5ea5c16897e"},"execute":{"type":"object","description":"Function permissions.","x-example":{},"items":{"type":"object","$ref":"#\/definitions\/funcPermissions"}},"name":{"type":"string","description":"Function name.","x-example":"My Function"},"dateCreated":{"type":"integer","description":"Function creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"dateUpdated":{"type":"integer","description":"Function update date in Unix timestamp.","x-example":1592981257,"format":"int32"},"status":{"type":"string","description":"Function status. Possible values: `disabled`, `enabled`","x-example":"enabled"},"runtime":{"type":"string","description":"Function execution runtime.","x-example":"python-3.8"},"tag":{"type":"string","description":"Function active tag ID.","x-example":"5e5ea5c16897e"},"vars":{"type":"string","description":"Function environment variables.","x-example":{"key":"value"}},"events":{"type":"array","description":"Function trigger events.","items":{"type":"string"},"x-example":"account.create"},"schedule":{"type":"string","description":"Function execution schedult in CRON format.","x-example":"5 4 * * *"},"scheduleNext":{"type":"integer","description":"Function next scheduled execution date in Unix timestamp.","x-example":1592981292,"format":"int32"},"schedulePrevious":{"type":"integer","description":"Function next scheduled execution date in Unix timestamp.","x-example":1592981237,"format":"int32"},"timeout":{"type":"integer","description":"Function execution timeout in seconds.","x-example":1592981237,"format":"int32"}},"required":["$id","execute","name","dateCreated","dateUpdated","status","runtime","tag","vars","events","schedule","scheduleNext","schedulePrevious","timeout"]},"runtime":{"description":"Runtime","type":"object","properties":{"$id":{"type":"string","description":"Runtime ID.","x-example":"python-3.8"},"name":{"type":"string","description":"Runtime Name.","x-example":"Python"},"version":{"type":"string","description":"Runtime version.","x-example":"3.8"},"base":{"type":"string","description":"Base Docker image used to build the runtime.","x-example":"python:3.8-alpine"},"image":{"type":"string","description":"Image name of Docker Hub.","x-example":"appwrite\\\/runtime-for-python:3.8"},"logo":{"type":"string","description":"Name of the logo image.","x-example":"python.png"},"supports":{"type":"array","description":"List of supported architectures.","items":{"type":"string"},"x-example":"amd64"}},"required":["$id","name","version","base","image","logo","supports"]},"funcPermissions":{"description":"FuncPermissions","type":"object","properties":{"execute":{"type":"array","description":"Execution permissions.","items":{"type":"string"},"x-example":"user:5e5ea5c16897e"}},"required":["execute"]},"tag":{"description":"Tag","type":"object","properties":{"$id":{"type":"string","description":"Tag ID.","x-example":"5e5ea5c16897e"},"functionId":{"type":"string","description":"Function ID.","x-example":"5e5ea6g16897e"},"dateCreated":{"type":"integer","description":"The tag creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"command":{"type":"string","description":"The entrypoint command in use to execute the tag code.","x-example":"enabled"},"size":{"type":"string","description":"The code size in bytes.","x-example":"python-3.8"}},"required":["$id","functionId","dateCreated","command","size"]},"execution":{"description":"Execution","type":"object","properties":{"$id":{"type":"string","description":"Execution ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"Execution read permissions.","items":{"type":"string"},"x-example":"role:all"},"functionId":{"type":"string","description":"Function ID.","x-example":"5e5ea6g16897e"},"dateCreated":{"type":"integer","description":"The execution creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"trigger":{"type":"string","description":"The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.","x-example":"http"},"status":{"type":"string","description":"The status of the function execution. Possible values can be: `waiting`, `processing`, `completed`, or `failed`.","x-example":"processing"},"exitCode":{"type":"integer","description":"The script exit code.","x-example":0,"format":"int32"},"stdout":{"type":"string","description":"The script stdout output string. Logs the last 4,000 characters of the execution stdout output.","x-example":""},"stderr":{"type":"string","description":"The script stderr output string. Logs the last 4,000 characters of the execution stderr output","x-example":""},"time":{"type":"number","description":"The script execution time in seconds.","x-example":0.4,"format":"double"}},"required":["$id","$read","functionId","dateCreated","trigger","status","exitCode","stdout","stderr","time"]},"project":{"description":"Project","type":"object","properties":{"$id":{"type":"string","description":"Project ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Project name.","x-example":"New Project"},"description":{"type":"string","description":"Project description.","x-example":"This is a new project."},"teamId":{"type":"string","description":"Project team ID.","x-example":"1592981250"},"logo":{"type":"string","description":"Project logo file ID.","x-example":"5f5c451b403cb"},"url":{"type":"string","description":"Project website URL.","x-example":"5f5c451b403cb"},"legalName":{"type":"string","description":"Company legal name.","x-example":"Company LTD."},"legalCountry":{"type":"string","description":"Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format.","x-example":"US"},"legalState":{"type":"string","description":"State name.","x-example":"New York"},"legalCity":{"type":"string","description":"City name.","x-example":"New York City."},"legalAddress":{"type":"string","description":"Company Address.","x-example":"620 Eighth Avenue, New York, NY 10018"},"legalTaxId":{"type":"string","description":"Company Tax ID.","x-example":"131102020"},"authLimit":{"type":"integer","description":"Max users allowed. 0 is unlimited.","x-example":100,"format":"int32"},"platforms":{"type":"array","description":"List of Platforms.","items":{"type":"object","$ref":"#\/definitions\/platform"},"x-example":{}},"webhooks":{"type":"array","description":"List of Webhooks.","items":{"type":"object","$ref":"#\/definitions\/webhook"},"x-example":{}},"keys":{"type":"array","description":"List of API Keys.","items":{"type":"object","$ref":"#\/definitions\/key"},"x-example":{}},"domains":{"type":"array","description":"List of Domains.","items":{"type":"object","$ref":"#\/definitions\/domain"},"x-example":{}},"providerAmazonAppid":{"type":"string","description":"Amazon OAuth app ID.","x-example":"123247283472834787438"},"providerAmazonSecret":{"type":"string","description":"Amazon OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerAppleAppid":{"type":"string","description":"Apple OAuth app ID.","x-example":"123247283472834787438"},"providerAppleSecret":{"type":"string","description":"Apple OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerBitbucketAppid":{"type":"string","description":"BitBucket OAuth app ID.","x-example":"123247283472834787438"},"providerBitbucketSecret":{"type":"string","description":"BitBucket OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerBitlyAppid":{"type":"string","description":"Bitly OAuth app ID.","x-example":"123247283472834787438"},"providerBitlySecret":{"type":"string","description":"Bitly OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerBoxAppid":{"type":"string","description":"Box OAuth app ID.","x-example":"123247283472834787438"},"providerBoxSecret":{"type":"string","description":"Box OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerDiscordAppid":{"type":"string","description":"Discord OAuth app ID.","x-example":"123247283472834787438"},"providerDiscordSecret":{"type":"string","description":"Discord OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerDropboxAppid":{"type":"string","description":"Dropbox OAuth app ID.","x-example":"123247283472834787438"},"providerDropboxSecret":{"type":"string","description":"Dropbox OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerFacebookAppid":{"type":"string","description":"Facebook OAuth app ID.","x-example":"123247283472834787438"},"providerFacebookSecret":{"type":"string","description":"Facebook OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerGithubAppid":{"type":"string","description":"GitHub OAuth app ID.","x-example":"123247283472834787438"},"providerGithubSecret":{"type":"string","description":"GitHub OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerGitlabAppid":{"type":"string","description":"GitLab OAuth app ID.","x-example":"123247283472834787438"},"providerGitlabSecret":{"type":"string","description":"GitLab OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerGoogleAppid":{"type":"string","description":"Google OAuth app ID.","x-example":"123247283472834787438"},"providerGoogleSecret":{"type":"string","description":"Google OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerLinkedinAppid":{"type":"string","description":"LinkedIn OAuth app ID.","x-example":"123247283472834787438"},"providerLinkedinSecret":{"type":"string","description":"LinkedIn OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerMicrosoftAppid":{"type":"string","description":"Microsoft OAuth app ID.","x-example":"123247283472834787438"},"providerMicrosoftSecret":{"type":"string","description":"Microsoft OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerPaypalAppid":{"type":"string","description":"PayPal OAuth app ID.","x-example":"123247283472834787438"},"providerPaypalSecret":{"type":"string","description":"PayPal OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerPaypalSandboxAppid":{"type":"string","description":"PayPal OAuth app ID.","x-example":"123247283472834787438"},"providerPaypalSandboxSecret":{"type":"string","description":"PayPal OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerSalesforceAppid":{"type":"string","description":"Salesforce OAuth app ID.","x-example":"123247283472834787438"},"providerSalesforceSecret":{"type":"string","description":"Salesforce OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerSlackAppid":{"type":"string","description":"Slack OAuth app ID.","x-example":"123247283472834787438"},"providerSlackSecret":{"type":"string","description":"Slack OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerSpotifyAppid":{"type":"string","description":"Spotify OAuth app ID.","x-example":"123247283472834787438"},"providerSpotifySecret":{"type":"string","description":"Spotify OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerTradeshiftAppid":{"type":"string","description":"Tradeshift OAuth app ID.","x-example":"123247283472834787438"},"providerTradeshiftSecret":{"type":"string","description":"Tradeshift OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerTradeshiftBoxAppid":{"type":"string","description":"Tradeshift OAuth app ID.","x-example":"123247283472834787438"},"providerTradeshiftBoxSecret":{"type":"string","description":"Tradeshift OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerTwitchAppid":{"type":"string","description":"Twitch OAuth app ID.","x-example":"123247283472834787438"},"providerTwitchSecret":{"type":"string","description":"Twitch OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerVkAppid":{"type":"string","description":"VK OAuth app ID.","x-example":"123247283472834787438"},"providerVkSecret":{"type":"string","description":"VK OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerYahooAppid":{"type":"string","description":"Yahoo OAuth app ID.","x-example":"123247283472834787438"},"providerYahooSecret":{"type":"string","description":"Yahoo OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerYandexAppid":{"type":"string","description":"Yandex OAuth app ID.","x-example":"123247283472834787438"},"providerYandexSecret":{"type":"string","description":"Yandex OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerWordpressAppid":{"type":"string","description":"WordPress OAuth app ID.","x-example":"123247283472834787438"},"providerWordpressSecret":{"type":"string","description":"WordPress OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerMockAppid":{"type":"string","description":"Mock OAuth app ID.","x-example":"123247283472834787438"},"providerMockSecret":{"type":"string","description":"Mock OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"authEmailPassword":{"type":"boolean","description":"Email\/Password auth method status","x-example":true},"authUsersAuthMagicURL":{"type":"boolean","description":"Magic URL auth method status","x-example":true},"authAnonymous":{"type":"boolean","description":"Anonymous auth method status","x-example":true},"authInvites":{"type":"boolean","description":"Invites auth method status","x-example":true},"authJWT":{"type":"boolean","description":"JWT auth method status","x-example":true},"authPhone":{"type":"boolean","description":"Phone auth method status","x-example":true},"serviceStatusForAccount":{"type":"boolean","description":"Account service status","x-example":true},"serviceStatusForAvatars":{"type":"boolean","description":"Avatars service status","x-example":true},"serviceStatusForDatabase":{"type":"boolean","description":"Database service status","x-example":true},"serviceStatusForLocale":{"type":"boolean","description":"Locale service status","x-example":true},"serviceStatusForHealth":{"type":"boolean","description":"Health service status","x-example":true},"serviceStatusForStorage":{"type":"boolean","description":"Storage service status","x-example":true},"serviceStatusForTeams":{"type":"boolean","description":"Teams service status","x-example":true},"serviceStatusForUsers":{"type":"boolean","description":"Users service status","x-example":true},"serviceStatusForFunctions":{"type":"boolean","description":"Functions service status","x-example":true}},"required":["$id","name","description","teamId","logo","url","legalName","legalCountry","legalState","legalCity","legalAddress","legalTaxId","authLimit","platforms","webhooks","keys","domains","providerAmazonAppid","providerAmazonSecret","providerAppleAppid","providerAppleSecret","providerBitbucketAppid","providerBitbucketSecret","providerBitlyAppid","providerBitlySecret","providerBoxAppid","providerBoxSecret","providerDiscordAppid","providerDiscordSecret","providerDropboxAppid","providerDropboxSecret","providerFacebookAppid","providerFacebookSecret","providerGithubAppid","providerGithubSecret","providerGitlabAppid","providerGitlabSecret","providerGoogleAppid","providerGoogleSecret","providerLinkedinAppid","providerLinkedinSecret","providerMicrosoftAppid","providerMicrosoftSecret","providerPaypalAppid","providerPaypalSecret","providerPaypalSandboxAppid","providerPaypalSandboxSecret","providerSalesforceAppid","providerSalesforceSecret","providerSlackAppid","providerSlackSecret","providerSpotifyAppid","providerSpotifySecret","providerTradeshiftAppid","providerTradeshiftSecret","providerTradeshiftBoxAppid","providerTradeshiftBoxSecret","providerTwitchAppid","providerTwitchSecret","providerVkAppid","providerVkSecret","providerYahooAppid","providerYahooSecret","providerYandexAppid","providerYandexSecret","providerWordpressAppid","providerWordpressSecret","providerMockAppid","providerMockSecret","authEmailPassword","authUsersAuthMagicURL","authAnonymous","authInvites","authJWT","authPhone","serviceStatusForAccount","serviceStatusForAvatars","serviceStatusForDatabase","serviceStatusForLocale","serviceStatusForHealth","serviceStatusForStorage","serviceStatusForTeams","serviceStatusForUsers","serviceStatusForFunctions"]},"webhook":{"description":"Webhook","type":"object","properties":{"$id":{"type":"string","description":"Webhook ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Webhook name.","x-example":"My Webhook"},"url":{"type":"string","description":"Webhook URL endpoint.","x-example":"https:\/\/example.com\/webhook"},"events":{"type":"array","description":"Webhook trigger events.","items":{"type":"string"},"x-example":"database.collections.update"},"security":{"type":"boolean","description":"Indicated if SSL \/ TLS Certificate verification is enabled.","x-example":true},"httpUser":{"type":"string","description":"HTTP basic authentication username.","x-example":"username"},"httpPass":{"type":"string","description":"HTTP basic authentication password.","x-example":"password"}},"required":["$id","name","url","events","security","httpUser","httpPass"]},"key":{"description":"Key","type":"object","properties":{"$id":{"type":"string","description":"Key ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Key name.","x-example":"My API Key"},"scopes":{"type":"array","description":"Allowed permission scopes.","items":{"type":"string"},"x-example":"users.read"},"secret":{"type":"string","description":"Secret key.","x-example":"919c2d18fb5d4...a2ae413da83346ad2"}},"required":["$id","name","scopes","secret"]},"domain":{"description":"Domain","type":"object","properties":{"$id":{"type":"string","description":"Domain ID.","x-example":"5e5ea5c16897e"},"domain":{"type":"string","description":"Domain name.","x-example":"appwrite.company.com"},"registerable":{"type":"string","description":"Registerable domain name.","x-example":"company.com"},"tld":{"type":"string","description":"TLD name.","x-example":"com"},"verification":{"type":"boolean","description":"Verification process status.","x-example":true},"certificateId":{"type":"string","description":"Certificate ID.","x-example":"6ejea5c13377e"}},"required":["$id","domain","registerable","tld","verification","certificateId"]},"platform":{"description":"Platform","type":"object","properties":{"$id":{"type":"string","description":"Platform ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Platform name.","x-example":"My Web App"},"type":{"type":"string","description":"Platform type. Possible values are: web, flutter-ios, flutter-android, ios, android, and unity.","x-example":"My Web App"},"key":{"type":"string","description":"Platform Key. iOS bundle ID or Android package name. Empty string for other platforms.","x-example":"com.company.appname"},"store":{"type":"string","description":"App store or Google Play store ID.","x-example":""},"hostname":{"type":"string","description":"Web app hostname. Empty string for other platforms.","x-example":true},"httpUser":{"type":"string","description":"HTTP basic authentication username.","x-example":"username"},"httpPass":{"type":"string","description":"HTTP basic authentication password.","x-example":"password"}},"required":["$id","name","type","key","store","hostname","httpUser","httpPass"]},"country":{"description":"Country","type":"object","properties":{"name":{"type":"string","description":"Country name.","x-example":"United States"},"code":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"}},"required":["name","code"]},"continent":{"description":"Continent","type":"object","properties":{"name":{"type":"string","description":"Continent name.","x-example":"Europe"},"code":{"type":"string","description":"Continent two letter code.","x-example":"EU"}},"required":["name","code"]},"language":{"description":"Language","type":"object","properties":{"name":{"type":"string","description":"Language name.","x-example":"Italian"},"code":{"type":"string","description":"Language two-character ISO 639-1 codes.","x-example":"it"},"nativeName":{"type":"string","description":"Language native name.","x-example":"Italiano"}},"required":["name","code","nativeName"]},"currency":{"description":"Currency","type":"object","properties":{"symbol":{"type":"string","description":"Currency symbol.","x-example":"$"},"name":{"type":"string","description":"Currency name.","x-example":"US dollar"},"symbolNative":{"type":"string","description":"Currency native symbol.","x-example":"$"},"decimalDigits":{"type":"integer","description":"Number of decimal digits.","x-example":2,"format":"int32"},"rounding":{"type":"number","description":"Currency digit rounding.","x-example":0,"format":"double"},"code":{"type":"string","description":"Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format.","x-example":"USD"},"namePlural":{"type":"string","description":"Currency plural name","x-example":"US dollars"}},"required":["symbol","name","symbolNative","decimalDigits","rounding","code","namePlural"]},"phone":{"description":"Phone","type":"object","properties":{"code":{"type":"string","description":"Phone code.","x-example":"+1"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"}},"required":["code","countryCode","countryName"]},"usageDatabase":{"description":"UsageDatabase","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"documentsCount":{"type":"array","description":"Aggregated stats for total number of documents.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"collectionsCount":{"type":"array","description":"Aggregated stats for total number of collections.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsCreate":{"type":"array","description":"Aggregated stats for documents created.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsRead":{"type":"array","description":"Aggregated stats for documents read.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsUpdate":{"type":"array","description":"Aggregated stats for documents updated.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsDelete":{"type":"array","description":"Aggregated stats for documents deleted.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"collectionsCreate":{"type":"array","description":"Aggregated stats for collections created.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"collectionsRead":{"type":"array","description":"Aggregated stats for collections read.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"collectionsUpdate":{"type":"array","description":"Aggregated stats for collections updated.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"collectionsDelete":{"type":"array","description":"Aggregated stats for collections delete.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","documentsCount","collectionsCount","documentsCreate","documentsRead","documentsUpdate","documentsDelete","collectionsCreate","collectionsRead","collectionsUpdate","collectionsDelete"]},"usageCollection":{"description":"UsageCollection","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"documentsCount":{"type":"array","description":"Aggregated stats for total number of documents.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsCreate":{"type":"array","description":"Aggregated stats for documents created.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsRead":{"type":"array","description":"Aggregated stats for documents read.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsUpdate":{"type":"array","description":"Aggregated stats for documents updated.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsDelete":{"type":"array","description":"Aggregated stats for documents deleted.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","documentsCount","documentsCreate","documentsRead","documentsUpdate","documentsDelete"]},"usageUsers":{"description":"UsageUsers","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"usersCount":{"type":"array","description":"Aggregated stats for total number of users.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"usersCreate":{"type":"array","description":"Aggregated stats for users created.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"usersRead":{"type":"array","description":"Aggregated stats for users read.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"usersUpdate":{"type":"array","description":"Aggregated stats for users updated.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"usersDelete":{"type":"array","description":"Aggregated stats for users deleted.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"sessionsCreate":{"type":"array","description":"Aggregated stats for sessions created.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"sessionsProviderCreate":{"type":"array","description":"Aggregated stats for sessions created for a provider ( email, anonymous or oauth2 ).","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"sessionsDelete":{"type":"array","description":"Aggregated stats for sessions deleted.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","usersCount","usersCreate","usersRead","usersUpdate","usersDelete","sessionsCreate","sessionsProviderCreate","sessionsDelete"]},"usageStorage":{"description":"StorageUsage","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"storage":{"type":"array","description":"Aggregated stats for the occupied storage size (in bytes).","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"files":{"type":"array","description":"Aggregated stats for total number of files.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","storage","files"]},"usageBuckets":{"description":"UsageBuckets","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"filesCount":{"type":"array","description":"Aggregated stats for total number of files in this bucket.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"filesCreate":{"type":"array","description":"Aggregated stats for files created.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"filesRead":{"type":"array","description":"Aggregated stats for files read.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"filesUpdate":{"type":"array","description":"Aggregated stats for files updated.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"filesDelete":{"type":"array","description":"Aggregated stats for files deleted.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","filesCount","filesCreate","filesRead","filesUpdate","filesDelete"]},"usageFunctions":{"description":"UsageFunctions","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"functionsExecutions":{"type":"array","description":"Aggregated stats for function executions.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"functionsFailures":{"type":"array","description":"Aggregated stats for function execution failures.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"functionsCompute":{"type":"array","description":"Aggregated stats for function execution duration.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","functionsExecutions","functionsFailures","functionsCompute"]},"usageProject":{"description":"UsageProject","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"requests":{"type":"array","description":"Aggregated stats for number of requests.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"network":{"type":"array","description":"Aggregated stats for consumed bandwidth.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"functions":{"type":"array","description":"Aggregated stats for function executions.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documents":{"type":"array","description":"Aggregated stats for number of documents.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"collections":{"type":"array","description":"Aggregated stats for number of collections.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"users":{"type":"array","description":"Aggregated stats for number of users.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"storage":{"type":"array","description":"Aggregated stats for the occupied storage size (in bytes).","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","requests","network","functions","documents","collections","users","storage"]}},"externalDocs":{"description":"Full API docs, specs and tutorials","url":"https:\/\/appwrite.io\/docs"}} \ No newline at end of file diff --git a/app/config/specs/0.12.x.server.json b/app/config/specs/0.12.x.server.json index 4c63d9f143..d978e405b3 100644 --- a/app/config/specs/0.12.x.server.json +++ b/app/config/specs/0.12.x.server.json @@ -1 +1 @@ -{"swagger":"2.0","info":{"version":"0.12.0","title":"Appwrite","description":"Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)","termsOfService":"https:\/\/appwrite.io\/policy\/terms","contact":{"name":"Appwrite Team","url":"https:\/\/appwrite.io\/support","email":"team@appwrite.io"},"license":{"name":"BSD-3-Clause","url":"https:\/\/raw.githubusercontent.com\/appwrite\/appwrite\/master\/LICENSE"}},"host":"appwrite.io","basePath":"\/v1","schemes":["https"],"consumes":["application\/json","multipart\/form-data"],"produces":["application\/json"],"securityDefinitions":{"Project":{"type":"apiKey","name":"X-Appwrite-Project","description":"Your project ID","in":"header","x-appwrite":{"demo":"5df5acd0d48c2"}},"Key":{"type":"apiKey","name":"X-Appwrite-Key","description":"Your secret API key","in":"header","x-appwrite":{"demo":"919c2d18fb5d4...a2ae413da83346ad2"}},"JWT":{"type":"apiKey","name":"X-Appwrite-JWT","description":"Your secret JSON Web Token","in":"header","x-appwrite":{"demo":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."}},"Locale":{"type":"apiKey","name":"X-Appwrite-Locale","description":"","in":"header","x-appwrite":{"demo":"en"}}},"paths":{"\/account":{"get":{"summary":"Get Account","operationId":"accountGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user data as JSON object.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"get","weight":47,"cookies":false,"type":"","demo":"account\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}]},"delete":{"summary":"Delete Account","operationId":"accountDelete","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Delete a currently logged in user account. Behind the scene, the user record is not deleted but permanently blocked from any access. This is done to avoid deleted accounts being overtaken by new users with the same email address. Any user-related resources like documents or storage files should be deleted separately.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":56,"cookies":false,"type":"","demo":"account\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/account\/email":{"patch":{"summary":"Update Account Email","operationId":"accountUpdateEmail","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account email address. After changing user address, user confirmation status is being reset and a new confirmation mail is sent. For security measures, user password is required to complete this request.\nThis endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateEmail","weight":54,"cookies":false,"type":"","demo":"account\/update-email.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-email.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be between 6 to 32 chars.","default":null,"x-example":"password"}},"required":["email","password"]}}]}},"\/account\/logs":{"get":{"summary":"Get Account Logs","operationId":"accountGetLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user list of latest security activity logs. Each log returns user IP address, location and date and time of log.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"getLogs","weight":50,"cookies":false,"type":"","demo":"account\/get-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"limit","description":"Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/account\/name":{"patch":{"summary":"Update Account Name","operationId":"accountUpdateName","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account name.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateName","weight":52,"cookies":false,"type":"","demo":"account\/update-name.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-name.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"User name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]}},"\/account\/password":{"patch":{"summary":"Update Account Password","operationId":"accountUpdatePassword","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user password. For validation, user is required to pass in the new password, and the old password. For users created with OAuth and Team Invites, oldPassword is optional.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePassword","weight":53,"cookies":false,"type":"","demo":"account\/update-password.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-password.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"password":{"type":"string","description":"New user password. Must be between 6 to 32 chars.","default":null,"x-example":"password"},"oldPassword":{"type":"string","description":"Old user password. Must be between 6 to 32 chars.","default":"","x-example":"password"}},"required":["password"]}}]}},"\/account\/prefs":{"get":{"summary":"Get Account Preferences","operationId":"accountGetPrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user preferences as a key-value object.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"getPrefs","weight":48,"cookies":false,"type":"","demo":"account\/get-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}]},"patch":{"summary":"Update Account Preferences","operationId":"accountUpdatePrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account preferences. You can pass only the specific settings you wish to update.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePrefs","weight":55,"cookies":false,"type":"","demo":"account\/update-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"prefs":{"type":"object","description":"Prefs key-value JSON object.","default":{},"x-example":"{}"}},"required":["prefs"]}}]}},"\/account\/recovery":{"post":{"summary":"Create Password Recovery","operationId":"accountCreateRecovery","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Sends the user an email with a temporary secret key for password reset. When the user clicks the confirmation link he is redirected back to your app password reset URL with the secret key and email address values attached to the URL query string. Use the query string params to submit a request to the [PUT \/account\/recovery](\/docs\/client\/account#accountUpdateRecovery) endpoint to complete the process. The verification link sent to the user's email address is valid for 1 hour.","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createRecovery","weight":59,"cookies":false,"type":"","demo":"account\/create-recovery.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-recovery.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"url":{"type":"string","description":"URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"}},"required":["email","url"]}}]},"put":{"summary":"Create Password Recovery (confirmation)","operationId":"accountUpdateRecovery","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/recovery](\/docs\/client\/account#accountCreateRecovery) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.","responses":{"200":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"updateRecovery","weight":60,"cookies":false,"type":"","demo":"account\/update-recovery.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-recovery.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User account UID address.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Valid reset token.","default":null,"x-example":"[SECRET]"},"password":{"type":"string","description":"New password. Must be between 6 to 32 chars.","default":null,"x-example":"password"},"passwordAgain":{"type":"string","description":"New password again. Must be between 6 to 32 chars.","default":null,"x-example":"password"}},"required":["userId","secret","password","passwordAgain"]}}]}},"\/account\/sessions":{"get":{"summary":"Get Account Sessions","operationId":"accountGetSessions","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user list of active sessions across different devices.","responses":{"200":{"description":"Sessions List","schema":{"$ref":"#\/definitions\/sessionList"}}},"x-appwrite":{"method":"getSessions","weight":49,"cookies":false,"type":"","demo":"account\/get-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}]},"delete":{"summary":"Delete All Account Sessions","operationId":"accountDeleteSessions","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Delete all sessions from the user account and remove any sessions cookies from the end client.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSessions","weight":58,"cookies":false,"type":"","demo":"account\/delete-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-sessions.md","rate-limit":100,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/account\/sessions\/{sessionId}":{"get":{"summary":"Get Session By ID","operationId":"accountGetSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to get a logged in user's session using a Session ID. Inputting 'current' will return the current session being used.","responses":{"200":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"getSession","weight":51,"cookies":false,"type":"","demo":"account\/get-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-session.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"sessionId","description":"Session unique ID. Use the string 'current' to get the current device session.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]},"delete":{"summary":"Delete Account Session","operationId":"accountDeleteSession","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Use this endpoint to log out the currently logged in user from all their account sessions across all of their different devices. When using the option id argument, only the session unique ID provider will be deleted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSession","weight":57,"cookies":false,"type":"","demo":"account\/delete-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-session.md","rate-limit":100,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"sessionId","description":"Session unique ID. Use the string 'current' to delete the current device session.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]}},"\/account\/verification":{"post":{"summary":"Create Email Verification","operationId":"accountCreateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](\/docs\/client\/account#accountUpdateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createVerification","weight":61,"cookies":false,"type":"","demo":"account\/create-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-verification.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{userId}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"url":{"type":"string","description":"URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"}},"required":["url"]}}]},"put":{"summary":"Create Email Verification (confirmation)","operationId":"accountUpdateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.","responses":{"200":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"updateVerification","weight":62,"cookies":false,"type":"","demo":"account\/update-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-verification.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User unique ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Valid verification token.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/avatars\/browsers\/{code}":{"get":{"summary":"Get Browser Icon","operationId":"avatarsGetBrowser","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user \/account\/sessions endpoint. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getBrowser","weight":64,"cookies":false,"type":"location","demo":"avatars\/get-browser.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-browser.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"code","description":"Browser Code.","required":true,"type":"string","x-example":"aa","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/credit-cards\/{code}":{"get":{"summary":"Get Credit Card Icon","operationId":"avatarsGetCreditCard","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getCreditCard","weight":63,"cookies":false,"type":"location","demo":"avatars\/get-credit-card.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-credit-card.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"code","description":"Credit Card Code. Possible values: amex, argencard, cabal, censosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro.","required":true,"type":"string","x-example":"amex","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/favicon":{"get":{"summary":"Get Favicon","operationId":"avatarsGetFavicon","consumes":["application\/json"],"produces":["image\/*"],"tags":["avatars"],"description":"Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFavicon","weight":67,"cookies":false,"type":"location","demo":"avatars\/get-favicon.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-favicon.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"url","description":"Website URL which you want to fetch the favicon from.","required":true,"type":"string","format":"url","x-example":"https:\/\/example.com","in":"query"}]}},"\/avatars\/flags\/{code}":{"get":{"summary":"Get Country Flag","operationId":"avatarsGetFlag","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFlag","weight":65,"cookies":false,"type":"location","demo":"avatars\/get-flag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-flag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"code","description":"Country Code. ISO Alpha-2 country code format.","required":true,"type":"string","x-example":"af","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/image":{"get":{"summary":"Get Image from URL","operationId":"avatarsGetImage","consumes":["application\/json"],"produces":["image\/*"],"tags":["avatars"],"description":"Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getImage","weight":66,"cookies":false,"type":"location","demo":"avatars\/get-image.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-image.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"url","description":"Image URL which you want to crop.","required":true,"type":"string","format":"url","x-example":"https:\/\/example.com","in":"query"},{"name":"width","description":"Resize preview image width, Pass an integer between 0 to 2000.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"},{"name":"height","description":"Resize preview image height, Pass an integer between 0 to 2000.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"}]}},"\/avatars\/initials":{"get":{"summary":"Get User Initials","operationId":"avatarsGetInitials","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.\n\nYou can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getInitials","weight":69,"cookies":false,"type":"location","demo":"avatars\/get-initials.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-initials.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"name","description":"Full Name. When empty, current user name or email will be used. Max length: 128 chars.","required":false,"type":"string","x-example":"[NAME]","default":"","in":"query"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":500,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":500,"in":"query"},{"name":"color","description":"Changes text color. By default a random color will be picked and stay will persistent to the given name.","required":false,"type":"string","default":"","in":"query"},{"name":"background","description":"Changes background color. By default a random color will be picked and stay will persistent to the given name.","required":false,"type":"string","default":"","in":"query"}]}},"\/avatars\/qr":{"get":{"summary":"Get QR Code","operationId":"avatarsGetQR","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getQR","weight":68,"cookies":false,"type":"location","demo":"avatars\/get-q-r.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-qr.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"text","description":"Plain text to be converted to QR code image.","required":true,"type":"string","x-example":"[TEXT]","in":"query"},{"name":"size","description":"QR code size. Pass an integer between 0 to 1000. Defaults to 400.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"},{"name":"margin","description":"Margin from edge. Pass an integer between 0 to 10. Defaults to 1.","required":false,"type":"integer","format":"int32","x-example":0,"default":1,"in":"query"},{"name":"download","description":"Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.","required":false,"type":"boolean","x-example":false,"default":false,"in":"query"}]}},"\/database\/collections":{"get":{"summary":"List Collections","operationId":"databaseListCollections","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a list of all the user collections. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's collections. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Collections List","schema":{"$ref":"#\/definitions\/collectionList"}}},"x-appwrite":{"method":"listCollections","weight":71,"cookies":false,"type":"","demo":"database\/list-collections.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-collections.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the collection used as the starting point for the query, excluding the collection itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Collection","operationId":"databaseCreateCollection","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new Collection.","responses":{"201":{"description":"Collection","schema":{"$ref":"#\/definitions\/collection"}}},"x-appwrite":{"method":"createCollection","weight":70,"cookies":false,"type":"","demo":"database\/create-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"collectionId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Collection name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"permission":{"type":"string","description":"Permissions type model to use for reading documents in this collection. You can use collection-level permission set once on the collection using the `read` and `write` params, or you can set document-level permission where each document read and write params will decide who has access to read and write to each document individually. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"document"},"read":{"type":"array","description":"An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["collectionId","name","permission","read","write"]}}]}},"\/database\/collections\/{collectionId}":{"get":{"summary":"Get Collection","operationId":"databaseGetCollection","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.","responses":{"200":{"description":"Collection","schema":{"$ref":"#\/definitions\/collection"}}},"x-appwrite":{"method":"getCollection","weight":72,"cookies":false,"type":"","demo":"database\/get-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]},"put":{"summary":"Update Collection","operationId":"databaseUpdateCollection","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Update a collection by its unique ID.","responses":{"200":{"description":"Collection","schema":{"$ref":"#\/definitions\/collection"}}},"x-appwrite":{"method":"updateCollection","weight":76,"cookies":false,"type":"","demo":"database\/update-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/update-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Collection name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"permission":{"type":"string","description":"Permissions type model to use for reading documents in this collection. You can use collection-level permission set once on the collection using the `read` and `write` params, or you can set document-level permission where each document read and write params will decide who has access to read and write to each document individually. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"document"},"read":{"type":"array","description":"An array of strings with read permissions. By default inherits the existing read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default inherits the existing write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["name","permission"]}}]},"delete":{"summary":"Delete Collection","operationId":"databaseDeleteCollection","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteCollection","weight":77,"cookies":false,"type":"","demo":"database\/delete-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]}},"\/database\/collections\/{collectionId}\/attributes":{"get":{"summary":"List Attributes","operationId":"databaseListAttributes","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"Attributes List","schema":{"$ref":"#\/definitions\/attributeList"}}},"x-appwrite":{"method":"listAttributes","weight":86,"cookies":false,"type":"","demo":"database\/list-attributes.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-attributes.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]}},"\/database\/collections\/{collectionId}\/attributes\/boolean":{"post":{"summary":"Create Boolean Attribute","operationId":"databaseCreateBooleanAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a boolean attribute.\n","responses":{"201":{"description":"AttributeBoolean","schema":{"$ref":"#\/definitions\/attributeBoolean"}}},"x-appwrite":{"method":"createBooleanAttribute","weight":85,"cookies":false,"type":"","demo":"database\/create-boolean-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-boolean-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"boolean","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":false},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/email":{"post":{"summary":"Create Email Attribute","operationId":"databaseCreateEmailAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create an email attribute.\n","responses":{"201":{"description":"AttributeEmail","schema":{"$ref":"#\/definitions\/attributeEmail"}}},"x-appwrite":{"method":"createEmailAttribute","weight":79,"cookies":false,"type":"","demo":"database\/create-email-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-email-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"email@example.com"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/enum":{"post":{"summary":"Create Enum Attribute","operationId":"databaseCreateEnumAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"201":{"description":"AttributeEnum","schema":{"$ref":"#\/definitions\/attributeEnum"}}},"x-appwrite":{"method":"createEnumAttribute","weight":80,"cookies":false,"type":"","demo":"database\/create-enum-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-attribute-enum.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"elements":{"type":"array","description":"Array of elements in enumerated type. Uses length of longest element to determine size.","default":null,"x-example":null,"items":{"type":"string"}},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"[DEFAULT]"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","elements","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/float":{"post":{"summary":"Create Float Attribute","operationId":"databaseCreateFloatAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a float attribute. Optionally, minimum and maximum values can be provided.\n","responses":{"201":{"description":"AttributeFloat","schema":{"$ref":"#\/definitions\/attributeFloat"}}},"x-appwrite":{"method":"createFloatAttribute","weight":84,"cookies":false,"type":"","demo":"database\/create-float-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-float-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"min":{"type":"string","description":"Minimum value to enforce on new documents","default":null,"x-example":null},"max":{"type":"string","description":"Maximum value to enforce on new documents","default":null,"x-example":null},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":null},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/integer":{"post":{"summary":"Create Integer Attribute","operationId":"databaseCreateIntegerAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create an integer attribute. Optionally, minimum and maximum values can be provided.\n","responses":{"201":{"description":"AttributeInteger","schema":{"$ref":"#\/definitions\/attributeInteger"}}},"x-appwrite":{"method":"createIntegerAttribute","weight":83,"cookies":false,"type":"","demo":"database\/create-integer-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-integer-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"min":{"type":"integer","description":"Minimum value to enforce on new documents","default":null,"x-example":null},"max":{"type":"integer","description":"Maximum value to enforce on new documents","default":null,"x-example":null},"default":{"type":"integer","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":null},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/ip":{"post":{"summary":"Create IP Address Attribute","operationId":"databaseCreateIpAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create IP address attribute.\n","responses":{"201":{"description":"AttributeIP","schema":{"$ref":"#\/definitions\/attributeIp"}}},"x-appwrite":{"method":"createIpAttribute","weight":81,"cookies":false,"type":"","demo":"database\/create-ip-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-ip-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":null},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/string":{"post":{"summary":"Create String Attribute","operationId":"databaseCreateStringAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new string attribute.\n","responses":{"201":{"description":"AttributeString","schema":{"$ref":"#\/definitions\/attributeString"}}},"x-appwrite":{"method":"createStringAttribute","weight":78,"cookies":false,"type":"","demo":"database\/create-string-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-string-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"size":{"type":"integer","description":"Attribute size for text attributes, in number of characters.","default":null,"x-example":1},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"[DEFAULT]"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","size","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/url":{"post":{"summary":"Create URL Attribute","operationId":"databaseCreateUrlAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a URL attribute.\n","responses":{"201":{"description":"AttributeURL","schema":{"$ref":"#\/definitions\/attributeUrl"}}},"x-appwrite":{"method":"createUrlAttribute","weight":82,"cookies":false,"type":"","demo":"database\/create-url-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-url-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"https:\/\/example.com"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/{attributeId}":{"get":{"summary":"Get Attribute","operationId":"databaseGetAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"AttributeBoolean, or AttributeInteger, or AttributeFloat, or AttributeEmail, or AttributeEnum, or AttributeURL, or AttributeIP, or AttributeString","schema":{"oneOf":[{"$ref":"#\/definitions\/attributeBoolean"},{"$ref":"#\/definitions\/attributeInteger"},{"$ref":"#\/definitions\/attributeFloat"},{"$ref":"#\/definitions\/attributeEmail"},{"$ref":"#\/definitions\/attributeEnum"},{"$ref":"#\/definitions\/attributeUrl"},{"$ref":"#\/definitions\/attributeIp"},{"$ref":"#\/definitions\/attributeString"}]}}},"x-appwrite":{"method":"getAttribute","weight":87,"cookies":false,"type":"","demo":"database\/get-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"attributeId","description":"Attribute ID.","required":true,"type":"string","in":"path"}]},"delete":{"summary":"Delete Attribute","operationId":"databaseDeleteAttribute","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteAttribute","weight":88,"cookies":false,"type":"","demo":"database\/delete-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"attributeId","description":"Attribute ID.","required":true,"type":"string","in":"path"}]}},"\/database\/collections\/{collectionId}\/documents":{"get":{"summary":"List Documents","operationId":"databaseListDocuments","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a list of all the user documents. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's documents. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Documents List","schema":{"$ref":"#\/definitions\/documentList"}}},"x-appwrite":{"method":"listDocuments","weight":94,"cookies":false,"type":"","demo":"database\/list-documents.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-documents.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"queries","description":"Array of query strings.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"},{"name":"limit","description":"Maximum number of documents to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the document used as the starting point for the query, excluding the document itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderAttributes","description":"Array of attributes used to sort results.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"},{"name":"orderTypes","description":"Array of order directions for sorting attribtues. Possible values are DESC for descending order, or ASC for ascending order.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"}]},"post":{"summary":"Create Document","operationId":"databaseCreateDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](\/docs\/server\/database#databaseCreateCollection) API or directly from your database console.","responses":{"201":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"createDocument","weight":93,"cookies":false,"type":"","demo":"database\/create-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection with validation rules using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"documentId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"data":{"type":"object","description":"Document data as JSON object.","default":{},"x-example":"{}"},"read":{"type":"array","description":"An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["documentId","data"]}}]}},"\/database\/collections\/{collectionId}\/documents\/{documentId}":{"get":{"summary":"Get Document","operationId":"databaseGetDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a document by its unique ID. This endpoint response returns a JSON object with the document data.","responses":{"200":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"getDocument","weight":95,"cookies":false,"type":"","demo":"database\/get-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"}]},"patch":{"summary":"Update Document","operationId":"databaseUpdateDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.","responses":{"200":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"updateDocument","weight":97,"cookies":false,"type":"","demo":"database\/update-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/update-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection with validation rules using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"data":{"type":"object","description":"Document data as JSON object.","default":{},"x-example":"{}"},"read":{"type":"array","description":"An array of strings with read permissions. By default inherits the existing read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default inherits the existing write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["data"]}}]},"delete":{"summary":"Delete Document","operationId":"databaseDeleteDocument","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"Delete a document by its unique ID. This endpoint deletes only the parent documents, its attributes and relations to other documents. Child documents **will not** be deleted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteDocument","weight":98,"cookies":false,"type":"","demo":"database\/delete-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"}]}},"\/database\/collections\/{collectionId}\/indexes":{"get":{"summary":"List Indexes","operationId":"databaseListIndexes","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"Indexes List","schema":{"$ref":"#\/definitions\/indexList"}}},"x-appwrite":{"method":"listIndexes","weight":90,"cookies":false,"type":"","demo":"database\/list-indexes.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-indexes.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]},"post":{"summary":"Create Index","operationId":"databaseCreateIndex","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"201":{"description":"Index","schema":{"$ref":"#\/definitions\/index"}}},"x-appwrite":{"method":"createIndex","weight":89,"cookies":false,"type":"","demo":"database\/create-index.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-index.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"indexId":{"type":"string","description":"Index ID.","default":null,"x-example":null},"type":{"type":"string","description":"Index type.","default":null,"x-example":"key"},"attributes":{"type":"array","description":"Array of attributes to index.","default":null,"x-example":null,"items":{"type":"string"}},"orders":{"type":"array","description":"Array of index orders.","default":[],"x-example":null,"items":{"type":"string"}}},"required":["indexId","type","attributes"]}}]}},"\/database\/collections\/{collectionId}\/indexes\/{indexId}":{"get":{"summary":"Get Index","operationId":"databaseGetIndex","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"Index","schema":{"$ref":"#\/definitions\/index"}}},"x-appwrite":{"method":"getIndex","weight":91,"cookies":false,"type":"","demo":"database\/get-index.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-index.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"indexId","description":"Index ID.","required":true,"type":"string","in":"path"}]},"delete":{"summary":"Delete Index","operationId":"databaseDeleteIndex","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteIndex","weight":92,"cookies":false,"type":"","demo":"database\/delete-index.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-index.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"indexId","description":"Index ID.","required":true,"type":"string","in":"path"}]}},"\/functions":{"get":{"summary":"List Functions","operationId":"functionsList","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the project's functions. You can use the query params to filter your results.","responses":{"200":{"description":"Functions List","schema":{"$ref":"#\/definitions\/functionList"}}},"x-appwrite":{"method":"list","weight":187,"cookies":false,"type":"","demo":"functions\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-functions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the function used as the starting point for the query, excluding the function itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Function","operationId":"functionsCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Create a new function. You can pass a list of [permissions](\/docs\/permissions) to allow different project users or team with access to execute the function using the client API.","responses":{"201":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"create","weight":186,"cookies":false,"type":"","demo":"functions\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"functionId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Function name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"execute":{"type":"array","description":"An array of strings with execution permissions. By default no user is granted with any execute permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"runtime":{"type":"string","description":"Execution runtime.","default":null,"x-example":"dotnet-5.0"},"vars":{"type":"object","description":"Key-value JSON object.","default":[],"x-example":"{}"},"events":{"type":"array","description":"Events list.","default":[],"x-example":null,"items":{"type":"string"}},"schedule":{"type":"string","description":"Schedule CRON syntax.","default":"","x-example":null},"timeout":{"type":"integer","description":"Function maximum execution time in seconds.","default":15,"x-example":1}},"required":["functionId","name","execute","runtime"]}}]}},"\/functions\/{functionId}":{"get":{"summary":"Get Function","operationId":"functionsGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a function by its unique ID.","responses":{"200":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"get","weight":188,"cookies":false,"type":"","demo":"functions\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"}]},"put":{"summary":"Update Function","operationId":"functionsUpdate","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Update function by its unique ID.","responses":{"200":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"update","weight":190,"cookies":false,"type":"","demo":"functions\/update.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/update-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Function name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"execute":{"type":"array","description":"An array of strings with execution permissions. By default no user is granted with any execute permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"vars":{"type":"object","description":"Key-value JSON object.","default":[],"x-example":"{}"},"events":{"type":"array","description":"Events list.","default":[],"x-example":null,"items":{"type":"string"}},"schedule":{"type":"string","description":"Schedule CRON syntax.","default":"","x-example":null},"timeout":{"type":"integer","description":"Function maximum execution time in seconds.","default":15,"x-example":1}},"required":["name","execute"]}}]},"delete":{"summary":"Delete Function","operationId":"functionsDelete","consumes":["application\/json"],"produces":[],"tags":["functions"],"description":"Delete a function by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":192,"cookies":false,"type":"","demo":"functions\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/delete-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"}]}},"\/functions\/{functionId}\/executions":{"get":{"summary":"List Executions","operationId":"functionsListExecutions","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the current user function execution logs. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's executions. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Executions List","schema":{"$ref":"#\/definitions\/executionList"}}},"x-appwrite":{"method":"listExecutions","weight":198,"cookies":false,"type":"","demo":"functions\/list-executions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-executions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"execution.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"cursor","description":"ID of the execution used as the starting point for the query, excluding the execution itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"}]},"post":{"summary":"Create Execution","operationId":"functionsCreateExecution","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.","responses":{"201":{"description":"Execution","schema":{"$ref":"#\/definitions\/execution"}}},"x-appwrite":{"method":"createExecution","weight":197,"cookies":false,"type":"","demo":"functions\/create-execution.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-execution.md","rate-limit":60,"rate-time":60,"rate-key":"url:{url},ip:{ip}","scope":"execution.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"data":{"type":"string","description":"String of custom data to send to function.","default":"","x-example":"[DATA]"}}}}]}},"\/functions\/{functionId}\/executions\/{executionId}":{"get":{"summary":"Get Execution","operationId":"functionsGetExecution","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a function execution log by its unique ID.","responses":{"200":{"description":"Execution","schema":{"$ref":"#\/definitions\/execution"}}},"x-appwrite":{"method":"getExecution","weight":199,"cookies":false,"type":"","demo":"functions\/get-execution.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-execution.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"execution.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"executionId","description":"Execution unique ID.","required":true,"type":"string","x-example":"[EXECUTION_ID]","in":"path"}]}},"\/functions\/{functionId}\/tag":{"patch":{"summary":"Update Function Tag","operationId":"functionsUpdateTag","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Update the function code tag ID using the unique function ID. Use this endpoint to switch the code tag that should be executed by the execution endpoint.","responses":{"200":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"updateTag","weight":191,"cookies":false,"type":"","demo":"functions\/update-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/update-function-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"tag":{"type":"string","description":"Tag unique ID.","default":null,"x-example":"[TAG]"}},"required":["tag"]}}]}},"\/functions\/{functionId}\/tags":{"get":{"summary":"List Tags","operationId":"functionsListTags","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the project's code tags. You can use the query params to filter your results.","responses":{"200":{"description":"Tags List","schema":{"$ref":"#\/definitions\/tagList"}}},"x-appwrite":{"method":"listTags","weight":194,"cookies":false,"type":"","demo":"functions\/list-tags.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-tags.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the tag used as the starting point for the query, excluding the tag itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Tag","operationId":"functionsCreateTag","consumes":["multipart\/form-data"],"produces":["application\/json"],"tags":["functions"],"description":"Create a new function code tag. Use this endpoint to upload a new version of your code function. To execute your newly uploaded code, you'll need to update the function's tag to use your new tag UID.\n\nThis endpoint accepts a tar.gz file compressed with your code. Make sure to include any dependencies your code has within the compressed file. You can learn more about code packaging in the [Appwrite Cloud Functions tutorial](\/docs\/functions).\n\nUse the \"command\" param to set the entry point used to execute your code.","responses":{"201":{"description":"Tag","schema":{"$ref":"#\/definitions\/tag"}}},"x-appwrite":{"method":"createTag","weight":193,"cookies":false,"type":"","demo":"functions\/create-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":true,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"command","description":"Code execution command.","required":true,"type":"string","x-example":"[COMMAND]","in":"formData"},{"name":"code","description":"Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.","required":true,"type":"file","in":"formData"}]}},"\/functions\/{functionId}\/tags\/{tagId}":{"get":{"summary":"Get Tag","operationId":"functionsGetTag","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a code tag by its unique ID.","responses":{"200":{"description":"Tag","schema":{"$ref":"#\/definitions\/tag"}}},"x-appwrite":{"method":"getTag","weight":195,"cookies":false,"type":"","demo":"functions\/get-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"tagId","description":"Tag unique ID.","required":true,"type":"string","x-example":"[TAG_ID]","in":"path"}]},"delete":{"summary":"Delete Tag","operationId":"functionsDeleteTag","consumes":["application\/json"],"produces":[],"tags":["functions"],"description":"Delete a code tag by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteTag","weight":196,"cookies":false,"type":"","demo":"functions\/delete-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/delete-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"tagId","description":"Tag unique ID.","required":true,"type":"string","x-example":"[TAG_ID]","in":"path"}]}},"\/health":{"get":{"summary":"Get HTTP","operationId":"healthGet","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite HTTP server is up and responsive.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"get","weight":106,"cookies":false,"type":"","demo":"health\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/anti-virus":{"get":{"summary":"Get Anti virus","operationId":"healthGetAntiVirus","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite Anti Virus server is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getAntiVirus","weight":117,"cookies":false,"type":"","demo":"health\/get-anti-virus.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-anti-virus.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/cache":{"get":{"summary":"Get Cache","operationId":"healthGetCache","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite in-memory cache server is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getCache","weight":109,"cookies":false,"type":"","demo":"health\/get-cache.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-cache.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/db":{"get":{"summary":"Get DB","operationId":"healthGetDB","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite database server is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getDB","weight":108,"cookies":false,"type":"","demo":"health\/get-d-b.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-db.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/certificates":{"get":{"summary":"Get Certificates Queue","operationId":"healthGetQueueCertificates","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of certificates that are waiting to be issued against [Letsencrypt](https:\/\/letsencrypt.org\/) in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueCertificates","weight":114,"cookies":false,"type":"","demo":"health\/get-queue-certificates.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-certificates.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/functions":{"get":{"summary":"Get Functions Queue","operationId":"healthGetQueueFunctions","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueFunctions","weight":115,"cookies":false,"type":"","demo":"health\/get-queue-functions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-functions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/logs":{"get":{"summary":"Get Logs Queue","operationId":"healthGetQueueLogs","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of logs that are waiting to be processed in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueLogs","weight":112,"cookies":false,"type":"","demo":"health\/get-queue-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/usage":{"get":{"summary":"Get Usage Queue","operationId":"healthGetQueueUsage","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of usage stats that are waiting to be processed in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueUsage","weight":113,"cookies":false,"type":"","demo":"health\/get-queue-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-usage.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/webhooks":{"get":{"summary":"Get Webhooks Queue","operationId":"healthGetQueueWebhooks","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of webhooks that are waiting to be processed in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueWebhooks","weight":111,"cookies":false,"type":"","demo":"health\/get-queue-webhooks.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-webhooks.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/storage\/local":{"get":{"summary":"Get Local Storage","operationId":"healthGetStorageLocal","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite local storage device is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getStorageLocal","weight":116,"cookies":false,"type":"","demo":"health\/get-storage-local.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-local.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/time":{"get":{"summary":"Get Time","operationId":"healthGetTime","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite server time is synced with Google remote NTP server. We use this technology to smoothly handle leap seconds with no disruptive events. The [Network Time Protocol](https:\/\/en.wikipedia.org\/wiki\/Network_Time_Protocol) (NTP) is used by hundreds of millions of computers and devices to synchronize their clocks over the Internet. If your computer sets its own clock, it likely uses NTP.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getTime","weight":110,"cookies":false,"type":"","demo":"health\/get-time.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-time.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/locale":{"get":{"summary":"Get User Locale","operationId":"localeGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.\n\n([IP Geolocation by DB-IP](https:\/\/db-ip.com))","responses":{"200":{"description":"Locale","schema":{"$ref":"#\/definitions\/locale"}}},"x-appwrite":{"method":"get","weight":99,"cookies":false,"type":"","demo":"locale\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/continents":{"get":{"summary":"List Continents","operationId":"localeGetContinents","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all continents. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Continents List","schema":{"$ref":"#\/definitions\/continentList"}}},"x-appwrite":{"method":"getContinents","weight":103,"cookies":false,"type":"","demo":"locale\/get-continents.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-continents.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/countries":{"get":{"summary":"List Countries","operationId":"localeGetCountries","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Countries List","schema":{"$ref":"#\/definitions\/countryList"}}},"x-appwrite":{"method":"getCountries","weight":100,"cookies":false,"type":"","demo":"locale\/get-countries.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/countries\/eu":{"get":{"summary":"List EU Countries","operationId":"localeGetCountriesEU","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries that are currently members of the EU. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Countries List","schema":{"$ref":"#\/definitions\/countryList"}}},"x-appwrite":{"method":"getCountriesEU","weight":101,"cookies":false,"type":"","demo":"locale\/get-countries-e-u.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries-eu.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/countries\/phones":{"get":{"summary":"List Countries Phone Codes","operationId":"localeGetCountriesPhones","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries phone codes. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Phones List","schema":{"$ref":"#\/definitions\/phoneList"}}},"x-appwrite":{"method":"getCountriesPhones","weight":102,"cookies":false,"type":"","demo":"locale\/get-countries-phones.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries-phones.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/currencies":{"get":{"summary":"List Currencies","operationId":"localeGetCurrencies","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Currencies List","schema":{"$ref":"#\/definitions\/currencyList"}}},"x-appwrite":{"method":"getCurrencies","weight":104,"cookies":false,"type":"","demo":"locale\/get-currencies.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-currencies.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/languages":{"get":{"summary":"List Languages","operationId":"localeGetLanguages","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.","responses":{"200":{"description":"Languages List","schema":{"$ref":"#\/definitions\/languageList"}}},"x-appwrite":{"method":"getLanguages","weight":105,"cookies":false,"type":"","demo":"locale\/get-languages.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-languages.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/storage\/files":{"get":{"summary":"List Files","operationId":"storageListFiles","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Get a list of all the user files. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's files. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Files List","schema":{"$ref":"#\/definitions\/fileList"}}},"x-appwrite":{"method":"listFiles","weight":150,"cookies":false,"type":"","demo":"storage\/list-files.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the file used as the starting point for the query, excluding the file itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create File","operationId":"storageCreateFile","consumes":["multipart\/form-data"],"produces":["application\/json"],"tags":["storage"],"description":"Create a new file. The user who creates the file will automatically be assigned to read and write access unless he has passed custom values for read and write arguments.","responses":{"201":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"createFile","weight":149,"cookies":false,"type":"upload","demo":"storage\/create-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","required":true,"type":"string","in":"formData"},{"name":"file","description":"Binary file.","required":true,"type":"file","in":"formData"},{"name":"read","description":"An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"in":"formData"},{"name":"write","description":"An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"in":"formData"}]}},"\/storage\/files\/{fileId}":{"get":{"summary":"Get File","operationId":"storageGetFile","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.","responses":{"200":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"getFile","weight":151,"cookies":false,"type":"","demo":"storage\/get-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]},"put":{"summary":"Update File","operationId":"storageUpdateFile","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Update a file by its unique ID. Only users with write permissions have access to update this resource.","responses":{"200":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"updateFile","weight":155,"cookies":false,"type":"","demo":"storage\/update-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"read":{"type":"array","description":"An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["read","write"]}}]},"delete":{"summary":"Delete File","operationId":"storageDeleteFile","consumes":["application\/json"],"produces":[],"tags":["storage"],"description":"Delete a file by its unique ID. Only users with write permissions have access to delete this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteFile","weight":156,"cookies":false,"type":"","demo":"storage\/delete-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/files\/{fileId}\/download":{"get":{"summary":"Get File for Download","operationId":"storageGetFileDownload","consumes":["application\/json"],"produces":["*\/*"],"tags":["storage"],"description":"Get a file content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.","responses":{"200":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getFileDownload","weight":153,"cookies":false,"type":"location","demo":"storage\/get-file-download.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/files\/{fileId}\/preview":{"get":{"summary":"Get File Preview","operationId":"storageGetFilePreview","consumes":["application\/json"],"produces":["image\/*"],"tags":["storage"],"description":"Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFilePreview","weight":152,"cookies":false,"type":"location","demo":"storage\/get-file-preview.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"},{"name":"width","description":"Resize preview image width, Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"height","description":"Resize preview image height, Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"gravity","description":"Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right","required":false,"type":"string","x-example":"center","default":"center","in":"query"},{"name":"quality","description":"Preview image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"borderWidth","description":"Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"borderColor","description":"Preview image border color. Use a valid HEX color, no # is needed for prefix.","required":false,"type":"string","default":"","in":"query"},{"name":"borderRadius","description":"Preview image border radius in pixels. Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"opacity","description":"Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.","required":false,"type":"number","format":"float","x-example":0,"default":1,"in":"query"},{"name":"rotation","description":"Preview image rotation in degrees. Pass an integer between 0 and 360.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"background","description":"Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.","required":false,"type":"string","default":"","in":"query"},{"name":"output","description":"Output format type (jpeg, jpg, png, gif and webp).","required":false,"type":"string","x-example":"jpg","default":"","in":"query"}]}},"\/storage\/files\/{fileId}\/view":{"get":{"summary":"Get File for View","operationId":"storageGetFileView","consumes":["application\/json"],"produces":["*\/*"],"tags":["storage"],"description":"Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.","responses":{"200":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getFileView","weight":154,"cookies":false,"type":"location","demo":"storage\/get-file-view.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/teams":{"get":{"summary":"List Teams","operationId":"teamsList","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a list of all the current user teams. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's teams. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Teams List","schema":{"$ref":"#\/definitions\/teamList"}}},"x-appwrite":{"method":"list","weight":160,"cookies":false,"type":"","demo":"teams\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the team used as the starting point for the query, excluding the team itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Team","operationId":"teamsCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Create a new team. The user who creates the team will automatically be assigned as the owner of the team. The team owner can invite new members, who will be able add new owners and update or delete the team from your project.","responses":{"201":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"create","weight":159,"cookies":false,"type":"","demo":"teams\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"teamId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Team name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"roles":{"type":"array","description":"Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":["owner"],"x-example":null,"items":{"type":"string"}}},"required":["teamId","name"]}}]}},"\/teams\/{teamId}":{"get":{"summary":"Get Team","operationId":"teamsGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team by its unique ID. All team members have read access for this resource.","responses":{"200":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"get","weight":161,"cookies":false,"type":"","demo":"teams\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"}]},"put":{"summary":"Update Team","operationId":"teamsUpdate","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Update a team by its unique ID. Only team owners have write access for this resource.","responses":{"200":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"update","weight":162,"cookies":false,"type":"","demo":"teams\/update.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Team name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]},"delete":{"summary":"Delete Team","operationId":"teamsDelete","consumes":["application\/json"],"produces":[],"tags":["teams"],"description":"Delete a team by its unique ID. Only team owners have write access for this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":163,"cookies":false,"type":"","demo":"teams\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"}]}},"\/teams\/{teamId}\/memberships":{"get":{"summary":"Get Team Memberships","operationId":"teamsGetMemberships","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team members by the team unique ID. All team members have read access for this list of resources.","responses":{"200":{"description":"Memberships List","schema":{"$ref":"#\/definitions\/membershipList"}}},"x-appwrite":{"method":"getMemberships","weight":165,"cookies":false,"type":"","demo":"teams\/get-memberships.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-members.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the membership used as the starting point for the query, excluding the membership itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Team Membership","operationId":"teamsCreateMembership","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"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.\n\nUse 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.\n\nPlease 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.","responses":{"201":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"createMembership","weight":164,"cookies":false,"type":"","demo":"teams\/create-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team-membership.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"New team member email.","default":null,"x-example":"email@example.com"},"roles":{"type":"array","description":"Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":null,"x-example":null,"items":{"type":"string"}},"url":{"type":"string","description":"URL to redirect the user back to your app from the invitation email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"},"name":{"type":"string","description":"New team member name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["email","roles","url"]}}]}},"\/teams\/{teamId}\/memberships\/{membershipId}":{"get":{"summary":"Get Team Membership","operationId":"teamsGetMembership","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team member by the membership unique id. All team members have read access for this resource.","responses":{"200":{"description":"Memberships List","schema":{"$ref":"#\/definitions\/membershipList"}}},"x-appwrite":{"method":"getMembership","weight":166,"cookies":false,"type":"","demo":"teams\/get-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"membership unique ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"}]},"patch":{"summary":"Update Membership Roles","operationId":"teamsUpdateMembershipRoles","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"","responses":{"200":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"updateMembershipRoles","weight":167,"cookies":false,"type":"","demo":"teams\/update-membership-roles.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-roles.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"roles":{"type":"array","description":"Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["roles"]}}]},"delete":{"summary":"Delete Team Membership","operationId":"teamsDeleteMembership","consumes":["application\/json"],"produces":[],"tags":["teams"],"description":"This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteMembership","weight":169,"cookies":false,"type":"","demo":"teams\/delete-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"}]}},"\/teams\/{teamId}\/memberships\/{membershipId}\/status":{"patch":{"summary":"Update Team Membership Status","operationId":"teamsUpdateMembershipStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email recieved by the user.","responses":{"200":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"updateMembershipStatus","weight":168,"cookies":false,"type":"","demo":"teams\/update-membership-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User unique ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Secret key.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/users":{"get":{"summary":"List Users","operationId":"usersList","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get a list of all the project's users. You can use the query params to filter your results.","responses":{"200":{"description":"Users List","schema":{"$ref":"#\/definitions\/userList"}}},"x-appwrite":{"method":"list","weight":171,"cookies":false,"type":"","demo":"users\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-users.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the user used as the starting point for the query, excluding the user itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create User","operationId":"usersCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Create a new user.","responses":{"201":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"create","weight":170,"cookies":false,"type":"","demo":"users\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be between 6 to 32 chars.","default":null,"x-example":"password"},"name":{"type":"string","description":"User name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["userId","email","password"]}}]}},"\/users\/{userId}":{"get":{"summary":"Get User","operationId":"usersGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get a user by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"get","weight":172,"cookies":false,"type":"","demo":"users\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]},"delete":{"summary":"Delete User","operationId":"usersDelete","consumes":["application\/json"],"produces":[],"tags":["users"],"description":"Delete a user by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":184,"cookies":false,"type":"","demo":"users\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]}},"\/users\/{userId}\/email":{"patch":{"summary":"Update Email","operationId":"usersUpdateEmail","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user email by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateEmail","weight":180,"cookies":false,"type":"","demo":"users\/update-email.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"}},"required":["email"]}}]}},"\/users\/{userId}\/logs":{"get":{"summary":"Get User Logs","operationId":"usersGetLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get the user activity logs list by its unique ID.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"getLogs","weight":175,"cookies":false,"type":"","demo":"users\/get-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"limit","description":"Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/users\/{userId}\/name":{"patch":{"summary":"Update Name","operationId":"usersUpdateName","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user name by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateName","weight":178,"cookies":false,"type":"","demo":"users\/update-name.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-name.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"User name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]}},"\/users\/{userId}\/password":{"patch":{"summary":"Update Password","operationId":"usersUpdatePassword","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user password by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePassword","weight":179,"cookies":false,"type":"","demo":"users\/update-password.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-password.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"password":{"type":"string","description":"New user password. Must be between 6 to 32 chars.","default":null,"x-example":"password"}},"required":["password"]}}]}},"\/users\/{userId}\/prefs":{"get":{"summary":"Get User Preferences","operationId":"usersGetPrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get the user preferences by its unique ID.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"getPrefs","weight":173,"cookies":false,"type":"","demo":"users\/get-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]},"patch":{"summary":"Update User Preferences","operationId":"usersUpdatePrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user preferences by its unique ID. You can pass only the specific settings you wish to update.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"updatePrefs","weight":181,"cookies":false,"type":"","demo":"users\/update-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"prefs":{"type":"object","description":"Prefs key-value JSON object.","default":{},"x-example":"{}"}},"required":["prefs"]}}]}},"\/users\/{userId}\/sessions":{"get":{"summary":"Get User Sessions","operationId":"usersGetSessions","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get the user sessions list by its unique ID.","responses":{"200":{"description":"Sessions List","schema":{"$ref":"#\/definitions\/sessionList"}}},"x-appwrite":{"method":"getSessions","weight":174,"cookies":false,"type":"","demo":"users\/get-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]},"delete":{"summary":"Delete User Sessions","operationId":"usersDeleteSessions","consumes":["application\/json"],"produces":[],"tags":["users"],"description":"Delete all user's sessions by using the user's unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSessions","weight":183,"cookies":false,"type":"","demo":"users\/delete-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]}},"\/users\/{userId}\/sessions\/{sessionId}":{"delete":{"summary":"Delete User Session","operationId":"usersDeleteSession","consumes":["application\/json"],"produces":[],"tags":["users"],"description":"Delete a user sessions by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSession","weight":182,"cookies":false,"type":"","demo":"users\/delete-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-session.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"sessionId","description":"User unique session ID.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]}},"\/users\/{userId}\/status":{"patch":{"summary":"Update User Status","operationId":"usersUpdateStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user status by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateStatus","weight":176,"cookies":false,"type":"","demo":"users\/update-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-status.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"status":{"type":"boolean","description":"User Status. To activate the user pass `true` and to block the user pass `false`","default":null,"x-example":false}},"required":["status"]}}]}},"\/users\/{userId}\/verification":{"patch":{"summary":"Update Email Verification","operationId":"usersUpdateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user email verification status by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateVerification","weight":177,"cookies":false,"type":"","demo":"users\/update-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-verification.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"emailVerification":{"type":"boolean","description":"User Email Verification Status.","default":null,"x-example":false}},"required":["emailVerification"]}}]}}},"tags":[{"name":"account","description":"The Account service allows you to authenticate and manage a user account."},{"name":"avatars","description":"The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars."},{"name":"database","description":"The Database service allows you to create structured collections of documents, query and filter lists of documents"},{"name":"locale","description":"The Locale service allows you to customize your app based on your users' location."},{"name":"health","description":"The Health service allows you to both validate and monitor your Appwrite server's health."},{"name":"projects","description":"The Project service allows you to manage all the projects in your Appwrite server."},{"name":"storage","description":"The Storage service allows you to manage your project files."},{"name":"teams","description":"The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources"},{"name":"users","description":"The Users service allows you to manage your project users."},{"name":"functions","description":"The Functions Service allows you view, create and manage your Cloud Functions."}],"definitions":{"collectionList":{"description":"Collections List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"collections":{"type":"array","description":"List of collections.","items":{"type":"object","$ref":"#\/definitions\/collection"},"x-example":""}},"required":["sum","collections"]},"indexList":{"description":"Indexes List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"indexes":{"type":"array","description":"List of indexes.","items":{"type":"object","$ref":"#\/definitions\/index"},"x-example":""}},"required":["sum","indexes"]},"documentList":{"description":"Documents List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"documents":{"type":"array","description":"List of documents.","items":{"type":"object","$ref":"#\/definitions\/document"},"x-example":""}},"required":["sum","documents"]},"userList":{"description":"Users List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"users":{"type":"array","description":"List of users.","items":{"type":"object","$ref":"#\/definitions\/user"},"x-example":""}},"required":["sum","users"]},"sessionList":{"description":"Sessions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"sessions":{"type":"array","description":"List of sessions.","items":{"type":"object","$ref":"#\/definitions\/session"},"x-example":""}},"required":["sum","sessions"]},"logList":{"description":"Logs List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"logs":{"type":"array","description":"List of logs.","items":{"type":"object","$ref":"#\/definitions\/log"},"x-example":""}},"required":["sum","logs"]},"fileList":{"description":"Files List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"files":{"type":"array","description":"List of files.","items":{"type":"object","$ref":"#\/definitions\/file"},"x-example":""}},"required":["sum","files"]},"teamList":{"description":"Teams List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"teams":{"type":"array","description":"List of teams.","items":{"type":"object","$ref":"#\/definitions\/team"},"x-example":""}},"required":["sum","teams"]},"membershipList":{"description":"Memberships List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"memberships":{"type":"array","description":"List of memberships.","items":{"type":"object","$ref":"#\/definitions\/membership"},"x-example":""}},"required":["sum","memberships"]},"functionList":{"description":"Functions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"functions":{"type":"array","description":"List of functions.","items":{"type":"object","$ref":"#\/definitions\/function"},"x-example":""}},"required":["sum","functions"]},"tagList":{"description":"Tags List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"tags":{"type":"array","description":"List of tags.","items":{"type":"object","$ref":"#\/definitions\/tag"},"x-example":""}},"required":["sum","tags"]},"executionList":{"description":"Executions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"executions":{"type":"array","description":"List of executions.","items":{"type":"object","$ref":"#\/definitions\/execution"},"x-example":""}},"required":["sum","executions"]},"countryList":{"description":"Countries List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"countries":{"type":"array","description":"List of countries.","items":{"type":"object","$ref":"#\/definitions\/country"},"x-example":""}},"required":["sum","countries"]},"continentList":{"description":"Continents List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"continents":{"type":"array","description":"List of continents.","items":{"type":"object","$ref":"#\/definitions\/continent"},"x-example":""}},"required":["sum","continents"]},"languageList":{"description":"Languages List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"languages":{"type":"array","description":"List of languages.","items":{"type":"object","$ref":"#\/definitions\/language"},"x-example":""}},"required":["sum","languages"]},"currencyList":{"description":"Currencies List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"currencies":{"type":"array","description":"List of currencies.","items":{"type":"object","$ref":"#\/definitions\/currency"},"x-example":""}},"required":["sum","currencies"]},"phoneList":{"description":"Phones List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"phones":{"type":"array","description":"List of phones.","items":{"type":"object","$ref":"#\/definitions\/phone"},"x-example":""}},"required":["sum","phones"]},"collection":{"description":"Collection","type":"object","properties":{"$id":{"type":"string","description":"Collection ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"Collection read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"Collection write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"},"name":{"type":"string","description":"Collection name.","x-example":"My Collection"},"permission":{"type":"string","description":"Collection permission model. Possible values: `document` or `collection`","x-example":"document"},"attributes":{"type":"array","description":"Collection attributes.","items":{"anyOf":[{"$ref":"#\/definitions\/attributeBoolean"},{"$ref":"#\/definitions\/attributeInteger"},{"$ref":"#\/definitions\/attributeFloat"},{"$ref":"#\/definitions\/attributeEmail"},{"$ref":"#\/definitions\/attributeEnum"},{"$ref":"#\/definitions\/attributeUrl"},{"$ref":"#\/definitions\/attributeIp"},{"$ref":"#\/definitions\/attributeString"}]},"x-example":{}},"indexes":{"type":"array","description":"Collection indexes.","items":{"type":"object","$ref":"#\/definitions\/index"},"x-example":{}}},"required":["$id","$read","$write","name","permission","attributes","indexes"]},"attributeList":{"description":"Attributes List","type":"object","properties":{"sum":{"type":"integer","description":"Total sum of items in the list.","x-example":5,"format":"int32"},"attributes":{"type":"array","description":"List of attributes.","items":{"anyOf":[{"$ref":"#\/definitions\/attributeBoolean"},{"$ref":"#\/definitions\/attributeInteger"},{"$ref":"#\/definitions\/attributeFloat"},{"$ref":"#\/definitions\/attributeEmail"},{"$ref":"#\/definitions\/attributeEnum"},{"$ref":"#\/definitions\/attributeUrl"},{"$ref":"#\/definitions\/attributeIp"},{"$ref":"#\/definitions\/attributeString"}]},"x-example":""}},"required":["sum","attributes"]},"attributeString":{"description":"AttributeString","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"size":{"type":"string","description":"Attribute size.","x-example":128},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"default","nullable":true}},"required":["key","type","status","required","size"]},"attributeInteger":{"description":"AttributeInteger","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"min":{"type":"integer","description":"Minimum value to enforce for new documents.","x-example":1,"format":"int32","nullable":true},"max":{"type":"integer","description":"Maximum value to enforce for new documents.","x-example":10,"format":"int32","nullable":true},"default":{"type":"integer","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":10,"format":"int32","nullable":true}},"required":["key","type","status","required"]},"attributeFloat":{"description":"AttributeFloat","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"min":{"type":"number","description":"Minimum value to enforce for new documents.","x-example":1.5,"format":"double","nullable":true},"max":{"type":"number","description":"Maximum value to enforce for new documents.","x-example":10.5,"format":"double","nullable":true},"default":{"type":"number","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":2.5,"format":"double","nullable":true}},"required":["key","type","status","required"]},"attributeBoolean":{"description":"AttributeBoolean","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"default":{"type":"boolean","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":false,"nullable":true}},"required":["key","type","status","required"]},"attributeEmail":{"description":"AttributeEmail","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"format":{"type":"string","description":"String format.","x-example":"email"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"default@example.com","nullable":true}},"required":["key","type","status","required","format"]},"attributeEnum":{"description":"AttributeEnum","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"elements":{"type":"array","description":"Array of elements in enumerated type.","items":{"type":"string"},"x-example":"element"},"format":{"type":"string","description":"String format.","x-example":"enum"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"element","nullable":true}},"required":["key","type","status","required","elements","format"]},"attributeIp":{"description":"AttributeIP","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"format":{"type":"string","description":"String format.","x-example":"ip"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"192.0.2.0","nullable":true}},"required":["key","type","status","required","format"]},"attributeUrl":{"description":"AttributeURL","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"format":{"type":"string","description":"String format.","x-example":"url"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"http:\/\/example.com","nullable":true}},"required":["key","type","status","required","format"]},"index":{"description":"Index","type":"object","properties":{"key":{"type":"string","description":"Index Key.","x-example":"index1"},"type":{"type":"string","description":"Index type.","x-example":""},"status":{"type":"string","description":"Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"attributes":{"type":"array","description":"Index attributes.","items":{"type":"string"},"x-example":[]},"orders":{"type":"array","description":"Index orders.","items":{"type":"string"},"x-example":[]}},"required":["key","type","status","attributes","orders"]},"document":{"description":"Document","type":"object","properties":{"$id":{"type":"string","description":"Document ID.","x-example":"5e5ea5c16897e"},"$collection":{"type":"string","description":"Collection ID.","x-example":"5e5ea5c15117e"},"$read":{"type":"array","description":"Document read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"Document write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"}},"additionalProperties":true,"required":["$id","$collection","$read","$write"]},"log":{"description":"Log","type":"object","properties":{"event":{"type":"string","description":"Event name.","x-example":"account.sessions.create"},"userId":{"type":"string","description":"User ID.","x-example":"610fc2f985ee0"},"userEmail":{"type":"string","description":"User Email.","x-example":"john@appwrite.io"},"userName":{"type":"string","description":"User Name.","x-example":"John Doe"},"mode":{"type":"string","description":"API mode when event triggered.","x-example":"admin"},"ip":{"type":"string","description":"IP session in use when the session was created.","x-example":"127.0.0.1"},"time":{"type":"integer","description":"Log creation time in Unix timestamp.","x-example":1592981250,"format":"int32"},"osCode":{"type":"string","description":"Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).","x-example":"Mac"},"osName":{"type":"string","description":"Operating system name.","x-example":"Mac"},"osVersion":{"type":"string","description":"Operating system version.","x-example":"Mac"},"clientType":{"type":"string","description":"Client type.","x-example":"browser"},"clientCode":{"type":"string","description":"Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).","x-example":"CM"},"clientName":{"type":"string","description":"Client name.","x-example":"Chrome Mobile iOS"},"clientVersion":{"type":"string","description":"Client version.","x-example":"84.0"},"clientEngine":{"type":"string","description":"Client engine name.","x-example":"WebKit"},"clientEngineVersion":{"type":"string","description":"Client engine name.","x-example":"605.1.15"},"deviceName":{"type":"string","description":"Device name.","x-example":"smartphone"},"deviceBrand":{"type":"string","description":"Device brand name.","x-example":"Google"},"deviceModel":{"type":"string","description":"Device model name.","x-example":"Nexus 5"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"}},"required":["event","userId","userEmail","userName","mode","ip","time","osCode","osName","osVersion","clientType","clientCode","clientName","clientVersion","clientEngine","clientEngineVersion","deviceName","deviceBrand","deviceModel","countryCode","countryName"]},"user":{"description":"User","type":"object","properties":{"$id":{"type":"string","description":"User ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"User name.","x-example":"John Doe"},"registration":{"type":"integer","description":"User registration date in Unix timestamp.","x-example":1592981250,"format":"int32"},"status":{"type":"boolean","description":"User status. Pass `true` for enabled and `false` for disabled.","x-example":true},"passwordUpdate":{"type":"integer","description":"Unix timestamp of the most recent password update","x-example":1592981250,"format":"int32"},"email":{"type":"string","description":"User email address.","x-example":"john@appwrite.io"},"emailVerification":{"type":"boolean","description":"Email verification status.","x-example":true},"prefs":{"type":"object","description":"User preferences as a key-value object","x-example":{"theme":"pink","timezone":"UTC"},"items":{"type":"object","$ref":"#\/definitions\/preferences"}}},"required":["$id","name","registration","status","passwordUpdate","email","emailVerification","prefs"]},"preferences":{"description":"Preferences","type":"object","additionalProperties":true},"session":{"description":"Session","type":"object","properties":{"$id":{"type":"string","description":"Session ID.","x-example":"5e5ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5bb8c16897e"},"expire":{"type":"integer","description":"Session expiration date in Unix timestamp.","x-example":1592981250,"format":"int32"},"provider":{"type":"string","description":"Session Provider.","x-example":"email"},"providerUid":{"type":"string","description":"Session Provider User ID.","x-example":"user@example.com"},"providerToken":{"type":"string","description":"Session Provider Token.","x-example":"MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"},"ip":{"type":"string","description":"IP in use when the session was created.","x-example":"127.0.0.1"},"osCode":{"type":"string","description":"Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).","x-example":"Mac"},"osName":{"type":"string","description":"Operating system name.","x-example":"Mac"},"osVersion":{"type":"string","description":"Operating system version.","x-example":"Mac"},"clientType":{"type":"string","description":"Client type.","x-example":"browser"},"clientCode":{"type":"string","description":"Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).","x-example":"CM"},"clientName":{"type":"string","description":"Client name.","x-example":"Chrome Mobile iOS"},"clientVersion":{"type":"string","description":"Client version.","x-example":"84.0"},"clientEngine":{"type":"string","description":"Client engine name.","x-example":"WebKit"},"clientEngineVersion":{"type":"string","description":"Client engine name.","x-example":"605.1.15"},"deviceName":{"type":"string","description":"Device name.","x-example":"smartphone"},"deviceBrand":{"type":"string","description":"Device brand name.","x-example":"Google"},"deviceModel":{"type":"string","description":"Device model name.","x-example":"Nexus 5"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"},"current":{"type":"boolean","description":"Returns true if this the current user session.","x-example":true}},"required":["$id","userId","expire","provider","providerUid","providerToken","ip","osCode","osName","osVersion","clientType","clientCode","clientName","clientVersion","clientEngine","clientEngineVersion","deviceName","deviceBrand","deviceModel","countryCode","countryName","current"]},"token":{"description":"Token","type":"object","properties":{"$id":{"type":"string","description":"Token ID.","x-example":"bb8ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5ea5c168bb8"},"secret":{"type":"string","description":"Token secret key. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.","x-example":""},"expire":{"type":"integer","description":"Token expiration date in Unix timestamp.","x-example":1592981250,"format":"int32"}},"required":["$id","userId","secret","expire"]},"locale":{"description":"Locale","type":"object","properties":{"ip":{"type":"string","description":"User IP address.","x-example":"127.0.0.1"},"countryCode":{"type":"string","description":"Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format","x-example":"US"},"country":{"type":"string","description":"Country name. This field support localization.","x-example":"United States"},"continentCode":{"type":"string","description":"Continent code. A two character continent code \"AF\" for Africa, \"AN\" for Antarctica, \"AS\" for Asia, \"EU\" for Europe, \"NA\" for North America, \"OC\" for Oceania, and \"SA\" for South America.","x-example":"NA"},"continent":{"type":"string","description":"Continent name. This field support localization.","x-example":"North America"},"eu":{"type":"boolean","description":"True if country is part of the Europian Union.","x-example":false},"currency":{"type":"string","description":"Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format","x-example":"USD"}},"required":["ip","countryCode","country","continentCode","continent","eu","currency"]},"file":{"description":"File","type":"object","properties":{"$id":{"type":"string","description":"File ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"File read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"File write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"},"name":{"type":"string","description":"File name.","x-example":"Pink.png"},"dateCreated":{"type":"integer","description":"File creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"signature":{"type":"string","description":"File MD5 signature.","x-example":"5d529fd02b544198ae075bd57c1762bb"},"mimeType":{"type":"string","description":"File mime type.","x-example":"image\/png"},"sizeOriginal":{"type":"integer","description":"File original size in bytes.","x-example":17890,"format":"int32"}},"required":["$id","$read","$write","name","dateCreated","signature","mimeType","sizeOriginal"]},"team":{"description":"Team","type":"object","properties":{"$id":{"type":"string","description":"Team ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Team name.","x-example":"VIP"},"dateCreated":{"type":"integer","description":"Team creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"sum":{"type":"integer","description":"Total sum of team members.","x-example":7,"format":"int32"}},"required":["$id","name","dateCreated","sum"]},"membership":{"description":"Membership","type":"object","properties":{"$id":{"type":"string","description":"Membership ID.","x-example":"5e5ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5ea5c16897e"},"teamId":{"type":"string","description":"Team ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"User name.","x-example":"VIP"},"email":{"type":"string","description":"User email address.","x-example":"john@appwrite.io"},"invited":{"type":"integer","description":"Date, the user has been invited to join the team in Unix timestamp.","x-example":1592981250,"format":"int32"},"joined":{"type":"integer","description":"Date, the user has accepted the invitation to join the team in Unix timestamp.","x-example":1592981250,"format":"int32"},"confirm":{"type":"boolean","description":"User confirmation status, true if the user has joined the team or false otherwise.","x-example":false},"roles":{"type":"array","description":"User list of roles","items":{"type":"string"},"x-example":"admin"}},"required":["$id","userId","teamId","name","email","invited","joined","confirm","roles"]},"function":{"description":"Function","type":"object","properties":{"$id":{"type":"string","description":"Function ID.","x-example":"5e5ea5c16897e"},"execute":{"type":"array","description":"Document execute permissions.","items":{"type":"string"},"x-example":"role:all"},"name":{"type":"string","description":"Function name.","x-example":"My Function"},"dateCreated":{"type":"integer","description":"Function creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"dateUpdated":{"type":"integer","description":"Function update date in Unix timestamp.","x-example":1592981257,"format":"int32"},"status":{"type":"string","description":"Function status. Possible values: `disabled`, `enabled`","x-example":"enabled"},"runtime":{"type":"string","description":"Function execution runtime.","x-example":"python-3.8"},"tag":{"type":"string","description":"Function active tag ID.","x-example":"5e5ea5c16897e"},"vars":{"type":"string","description":"Function environment variables.","x-example":{"key":"value"}},"events":{"type":"array","description":"Function trigger events.","items":{"type":"string"},"x-example":"account.create"},"schedule":{"type":"string","description":"Function execution schedult in CRON format.","x-example":"5 4 * * *"},"scheduleNext":{"type":"integer","description":"Function next scheduled execution date in Unix timestamp.","x-example":1592981292,"format":"int32"},"schedulePrevious":{"type":"integer","description":"Function next scheduled execution date in Unix timestamp.","x-example":1592981237,"format":"int32"},"timeout":{"type":"integer","description":"Function execution timeout in seconds.","x-example":1592981237,"format":"int32"}},"required":["$id","execute","name","dateCreated","dateUpdated","status","runtime","tag","vars","events","schedule","scheduleNext","schedulePrevious","timeout"]},"tag":{"description":"Tag","type":"object","properties":{"$id":{"type":"string","description":"Tag ID.","x-example":"5e5ea5c16897e"},"functionId":{"type":"string","description":"Function ID.","x-example":"5e5ea6g16897e"},"dateCreated":{"type":"integer","description":"The tag creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"command":{"type":"string","description":"The entrypoint command in use to execute the tag code.","x-example":"enabled"},"size":{"type":"string","description":"The code size in bytes.","x-example":"python-3.8"}},"required":["$id","functionId","dateCreated","command","size"]},"execution":{"description":"Execution","type":"object","properties":{"$id":{"type":"string","description":"Execution ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"Execution read permissions.","items":{"type":"string"},"x-example":"role:all"},"functionId":{"type":"string","description":"Function ID.","x-example":"5e5ea6g16897e"},"dateCreated":{"type":"integer","description":"The execution creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"trigger":{"type":"string","description":"The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.","x-example":"http"},"status":{"type":"string","description":"The status of the function execution. Possible values can be: `waiting`, `processing`, `completed`, or `failed`.","x-example":"processing"},"exitCode":{"type":"integer","description":"The script exit code.","x-example":0,"format":"int32"},"stdout":{"type":"string","description":"The script stdout output string. Logs the last 4,000 characters of the execution stdout output.","x-example":""},"stderr":{"type":"string","description":"The script stderr output string. Logs the last 4,000 characters of the execution stderr output","x-example":""},"time":{"type":"number","description":"The script execution time in seconds.","x-example":0.4,"format":"double"}},"required":["$id","$read","functionId","dateCreated","trigger","status","exitCode","stdout","stderr","time"]},"country":{"description":"Country","type":"object","properties":{"name":{"type":"string","description":"Country name.","x-example":"United States"},"code":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"}},"required":["name","code"]},"continent":{"description":"Continent","type":"object","properties":{"name":{"type":"string","description":"Continent name.","x-example":"Europe"},"code":{"type":"string","description":"Continent two letter code.","x-example":"EU"}},"required":["name","code"]},"language":{"description":"Language","type":"object","properties":{"name":{"type":"string","description":"Language name.","x-example":"Italian"},"code":{"type":"string","description":"Language two-character ISO 639-1 codes.","x-example":"it"},"nativeName":{"type":"string","description":"Language native name.","x-example":"Italiano"}},"required":["name","code","nativeName"]},"currency":{"description":"Currency","type":"object","properties":{"symbol":{"type":"string","description":"Currency symbol.","x-example":"$"},"name":{"type":"string","description":"Currency name.","x-example":"US dollar"},"symbolNative":{"type":"string","description":"Currency native symbol.","x-example":"$"},"decimalDigits":{"type":"integer","description":"Number of decimal digits.","x-example":2,"format":"int32"},"rounding":{"type":"number","description":"Currency digit rounding.","x-example":0,"format":"double"},"code":{"type":"string","description":"Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format.","x-example":"USD"},"namePlural":{"type":"string","description":"Currency plural name","x-example":"US dollars"}},"required":["symbol","name","symbolNative","decimalDigits","rounding","code","namePlural"]},"phone":{"description":"Phone","type":"object","properties":{"code":{"type":"string","description":"Phone code.","x-example":"+1"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"}},"required":["code","countryCode","countryName"]}},"externalDocs":{"description":"Full API docs, specs and tutorials","url":"https:\/\/appwrite.io\/docs"}} \ No newline at end of file +{"swagger":"2.0","info":{"version":"0.12.0","title":"Appwrite","description":"Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)","termsOfService":"https:\/\/appwrite.io\/policy\/terms","contact":{"name":"Appwrite Team","url":"https:\/\/appwrite.io\/support","email":"team@appwrite.io"},"license":{"name":"BSD-3-Clause","url":"https:\/\/raw.githubusercontent.com\/appwrite\/appwrite\/master\/LICENSE"}},"host":"appwrite.io","basePath":"\/v1","schemes":["https"],"consumes":["application\/json","multipart\/form-data"],"produces":["application\/json"],"securityDefinitions":{"Project":{"type":"apiKey","name":"X-Appwrite-Project","description":"Your project ID","in":"header","x-appwrite":{"demo":"5df5acd0d48c2"}},"Key":{"type":"apiKey","name":"X-Appwrite-Key","description":"Your secret API key","in":"header","x-appwrite":{"demo":"919c2d18fb5d4...a2ae413da83346ad2"}},"JWT":{"type":"apiKey","name":"X-Appwrite-JWT","description":"Your secret JSON Web Token","in":"header","x-appwrite":{"demo":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."}},"Locale":{"type":"apiKey","name":"X-Appwrite-Locale","description":"","in":"header","x-appwrite":{"demo":"en"}}},"paths":{"\/account":{"get":{"summary":"Get Account","operationId":"accountGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user data as JSON object.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"get","weight":47,"cookies":false,"type":"","demo":"account\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}]},"delete":{"summary":"Delete Account","operationId":"accountDelete","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Delete a currently logged in user account. Behind the scene, the user record is not deleted but permanently blocked from any access. This is done to avoid deleted accounts being overtaken by new users with the same email address. Any user-related resources like documents or storage files should be deleted separately.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":56,"cookies":false,"type":"","demo":"account\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/account\/email":{"patch":{"summary":"Update Account Email","operationId":"accountUpdateEmail","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account email address. After changing user address, the user confirmation status will get reset. A new confirmation email is not sent automatically however you can use the send confirmation email endpoint again to send the confirmation email. For security measures, user password is required to complete this request.\nThis endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.\n","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateEmail","weight":54,"cookies":false,"type":"","demo":"account\/update-email.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-email.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["email","password"]}}]}},"\/account\/logs":{"get":{"summary":"Get Account Logs","operationId":"accountGetLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user list of latest security activity logs. Each log returns user IP address, location and date and time of log.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"getLogs","weight":50,"cookies":false,"type":"","demo":"account\/get-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"limit","description":"Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/account\/name":{"patch":{"summary":"Update Account Name","operationId":"accountUpdateName","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account name.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateName","weight":52,"cookies":false,"type":"","demo":"account\/update-name.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-name.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"User name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]}},"\/account\/password":{"patch":{"summary":"Update Account Password","operationId":"accountUpdatePassword","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user password. For validation, user is required to pass in the new password, and the old password. For users created with OAuth and Team Invites, oldPassword is optional.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePassword","weight":53,"cookies":false,"type":"","demo":"account\/update-password.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-password.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"},"oldPassword":{"type":"string","description":"Old user password. Must be at least 8 chars.","default":"","x-example":"password"}},"required":["password"]}}]}},"\/account\/prefs":{"get":{"summary":"Get Account Preferences","operationId":"accountGetPrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user preferences as a key-value object.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"getPrefs","weight":48,"cookies":false,"type":"","demo":"account\/get-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}]},"patch":{"summary":"Update Account Preferences","operationId":"accountUpdatePrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account preferences. You can pass only the specific settings you wish to update.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePrefs","weight":55,"cookies":false,"type":"","demo":"account\/update-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"prefs":{"type":"object","description":"Prefs key-value JSON object.","default":{},"x-example":"{}"}},"required":["prefs"]}}]}},"\/account\/recovery":{"post":{"summary":"Create Password Recovery","operationId":"accountCreateRecovery","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Sends the user an email with a temporary secret key for password reset. When the user clicks the confirmation link he is redirected back to your app password reset URL with the secret key and email address values attached to the URL query string. Use the query string params to submit a request to the [PUT \/account\/recovery](\/docs\/client\/account#accountUpdateRecovery) endpoint to complete the process. The verification link sent to the user's email address is valid for 1 hour.","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createRecovery","weight":59,"cookies":false,"type":"","demo":"account\/create-recovery.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-recovery.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"url":{"type":"string","description":"URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"}},"required":["email","url"]}}]},"put":{"summary":"Create Password Recovery (confirmation)","operationId":"accountUpdateRecovery","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/recovery](\/docs\/client\/account#accountCreateRecovery) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.","responses":{"200":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"updateRecovery","weight":60,"cookies":false,"type":"","demo":"account\/update-recovery.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-recovery.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User account UID address.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Valid reset token.","default":null,"x-example":"[SECRET]"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"},"passwordAgain":{"type":"string","description":"New password again. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["userId","secret","password","passwordAgain"]}}]}},"\/account\/sessions":{"get":{"summary":"Get Account Sessions","operationId":"accountGetSessions","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user list of active sessions across different devices.","responses":{"200":{"description":"Sessions List","schema":{"$ref":"#\/definitions\/sessionList"}}},"x-appwrite":{"method":"getSessions","weight":49,"cookies":false,"type":"","demo":"account\/get-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}]},"delete":{"summary":"Delete All Account Sessions","operationId":"accountDeleteSessions","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Delete all sessions from the user account and remove any sessions cookies from the end client.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSessions","weight":58,"cookies":false,"type":"","demo":"account\/delete-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-sessions.md","rate-limit":100,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/account\/sessions\/{sessionId}":{"get":{"summary":"Get Session By ID","operationId":"accountGetSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to get a logged in user's session using a Session ID. Inputting 'current' will return the current session being used.","responses":{"200":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"getSession","weight":51,"cookies":false,"type":"","demo":"account\/get-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-session.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"sessionId","description":"Session unique ID. Use the string 'current' to get the current device session.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]},"delete":{"summary":"Delete Account Session","operationId":"accountDeleteSession","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Use this endpoint to log out the currently logged in user from all their account sessions across all of their different devices. When using the option id argument, only the session unique ID provider will be deleted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSession","weight":57,"cookies":false,"type":"","demo":"account\/delete-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-session.md","rate-limit":100,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"sessionId","description":"Session unique ID. Use the string 'current' to delete the current device session.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]}},"\/account\/verification":{"post":{"summary":"Create Email Verification","operationId":"accountCreateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](\/docs\/client\/account#accountUpdateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createVerification","weight":61,"cookies":false,"type":"","demo":"account\/create-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-verification.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{userId}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"url":{"type":"string","description":"URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"}},"required":["url"]}}]},"put":{"summary":"Create Email Verification (confirmation)","operationId":"accountUpdateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.","responses":{"200":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"updateVerification","weight":62,"cookies":false,"type":"","demo":"account\/update-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-verification.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User unique ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Valid verification token.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/avatars\/browsers\/{code}":{"get":{"summary":"Get Browser Icon","operationId":"avatarsGetBrowser","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user \/account\/sessions endpoint. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getBrowser","weight":64,"cookies":false,"type":"location","demo":"avatars\/get-browser.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-browser.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"code","description":"Browser Code.","required":true,"type":"string","x-example":"aa","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/credit-cards\/{code}":{"get":{"summary":"Get Credit Card Icon","operationId":"avatarsGetCreditCard","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getCreditCard","weight":63,"cookies":false,"type":"location","demo":"avatars\/get-credit-card.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-credit-card.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"code","description":"Credit Card Code. Possible values: amex, argencard, cabal, censosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro.","required":true,"type":"string","x-example":"amex","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/favicon":{"get":{"summary":"Get Favicon","operationId":"avatarsGetFavicon","consumes":["application\/json"],"produces":["image\/*"],"tags":["avatars"],"description":"Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFavicon","weight":67,"cookies":false,"type":"location","demo":"avatars\/get-favicon.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-favicon.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"url","description":"Website URL which you want to fetch the favicon from.","required":true,"type":"string","format":"url","x-example":"https:\/\/example.com","in":"query"}]}},"\/avatars\/flags\/{code}":{"get":{"summary":"Get Country Flag","operationId":"avatarsGetFlag","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFlag","weight":65,"cookies":false,"type":"location","demo":"avatars\/get-flag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-flag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"code","description":"Country Code. ISO Alpha-2 country code format.","required":true,"type":"string","x-example":"af","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/image":{"get":{"summary":"Get Image from URL","operationId":"avatarsGetImage","consumes":["application\/json"],"produces":["image\/*"],"tags":["avatars"],"description":"Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getImage","weight":66,"cookies":false,"type":"location","demo":"avatars\/get-image.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-image.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"url","description":"Image URL which you want to crop.","required":true,"type":"string","format":"url","x-example":"https:\/\/example.com","in":"query"},{"name":"width","description":"Resize preview image width, Pass an integer between 0 to 2000.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"},{"name":"height","description":"Resize preview image height, Pass an integer between 0 to 2000.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"}]}},"\/avatars\/initials":{"get":{"summary":"Get User Initials","operationId":"avatarsGetInitials","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.\n\nYou can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getInitials","weight":69,"cookies":false,"type":"location","demo":"avatars\/get-initials.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-initials.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"name","description":"Full Name. When empty, current user name or email will be used. Max length: 128 chars.","required":false,"type":"string","x-example":"[NAME]","default":"","in":"query"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":500,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":500,"in":"query"},{"name":"color","description":"Changes text color. By default a random color will be picked and stay will persistent to the given name.","required":false,"type":"string","default":"","in":"query"},{"name":"background","description":"Changes background color. By default a random color will be picked and stay will persistent to the given name.","required":false,"type":"string","default":"","in":"query"}]}},"\/avatars\/qr":{"get":{"summary":"Get QR Code","operationId":"avatarsGetQR","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getQR","weight":68,"cookies":false,"type":"location","demo":"avatars\/get-q-r.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-qr.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"text","description":"Plain text to be converted to QR code image.","required":true,"type":"string","x-example":"[TEXT]","in":"query"},{"name":"size","description":"QR code size. Pass an integer between 0 to 1000. Defaults to 400.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"},{"name":"margin","description":"Margin from edge. Pass an integer between 0 to 10. Defaults to 1.","required":false,"type":"integer","format":"int32","x-example":0,"default":1,"in":"query"},{"name":"download","description":"Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.","required":false,"type":"boolean","x-example":false,"default":false,"in":"query"}]}},"\/database\/collections":{"get":{"summary":"List Collections","operationId":"databaseListCollections","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a list of all the user collections. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's collections. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Collections List","schema":{"$ref":"#\/definitions\/collectionList"}}},"x-appwrite":{"method":"listCollections","weight":71,"cookies":false,"type":"","demo":"database\/list-collections.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-collections.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the collection used as the starting point for the query, excluding the collection itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Collection","operationId":"databaseCreateCollection","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new Collection.","responses":{"201":{"description":"Collection","schema":{"$ref":"#\/definitions\/collection"}}},"x-appwrite":{"method":"createCollection","weight":70,"cookies":false,"type":"","demo":"database\/create-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"collectionId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Collection name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"permission":{"type":"string","description":"Permissions type model to use for reading documents in this collection. You can use collection-level permission set once on the collection using the `read` and `write` params, or you can set document-level permission where each document read and write params will decide who has access to read and write to each document individually. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"document"},"read":{"type":"array","description":"An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["collectionId","name","permission","read","write"]}}]}},"\/database\/collections\/{collectionId}":{"get":{"summary":"Get Collection","operationId":"databaseGetCollection","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.","responses":{"200":{"description":"Collection","schema":{"$ref":"#\/definitions\/collection"}}},"x-appwrite":{"method":"getCollection","weight":72,"cookies":false,"type":"","demo":"database\/get-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]},"put":{"summary":"Update Collection","operationId":"databaseUpdateCollection","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Update a collection by its unique ID.","responses":{"200":{"description":"Collection","schema":{"$ref":"#\/definitions\/collection"}}},"x-appwrite":{"method":"updateCollection","weight":76,"cookies":false,"type":"","demo":"database\/update-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/update-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Collection name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"permission":{"type":"string","description":"Permissions type model to use for reading documents in this collection. You can use collection-level permission set once on the collection using the `read` and `write` params, or you can set document-level permission where each document read and write params will decide who has access to read and write to each document individually. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"document"},"read":{"type":"array","description":"An array of strings with read permissions. By default inherits the existing read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default inherits the existing write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"enabled":{"type":"boolean","description":"Is collection enabled?","default":true,"x-example":false}},"required":["name","permission"]}}]},"delete":{"summary":"Delete Collection","operationId":"databaseDeleteCollection","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteCollection","weight":77,"cookies":false,"type":"","demo":"database\/delete-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]}},"\/database\/collections\/{collectionId}\/attributes":{"get":{"summary":"List Attributes","operationId":"databaseListAttributes","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"Attributes List","schema":{"$ref":"#\/definitions\/attributeList"}}},"x-appwrite":{"method":"listAttributes","weight":86,"cookies":false,"type":"","demo":"database\/list-attributes.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-attributes.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]}},"\/database\/collections\/{collectionId}\/attributes\/boolean":{"post":{"summary":"Create Boolean Attribute","operationId":"databaseCreateBooleanAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a boolean attribute.\n","responses":{"201":{"description":"AttributeBoolean","schema":{"$ref":"#\/definitions\/attributeBoolean"}}},"x-appwrite":{"method":"createBooleanAttribute","weight":85,"cookies":false,"type":"","demo":"database\/create-boolean-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-boolean-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"boolean","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":false},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/email":{"post":{"summary":"Create Email Attribute","operationId":"databaseCreateEmailAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create an email attribute.\n","responses":{"201":{"description":"AttributeEmail","schema":{"$ref":"#\/definitions\/attributeEmail"}}},"x-appwrite":{"method":"createEmailAttribute","weight":79,"cookies":false,"type":"","demo":"database\/create-email-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-email-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"email@example.com"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/enum":{"post":{"summary":"Create Enum Attribute","operationId":"databaseCreateEnumAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"201":{"description":"AttributeEnum","schema":{"$ref":"#\/definitions\/attributeEnum"}}},"x-appwrite":{"method":"createEnumAttribute","weight":80,"cookies":false,"type":"","demo":"database\/create-enum-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-attribute-enum.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"elements":{"type":"array","description":"Array of elements in enumerated type. Uses length of longest element to determine size.","default":null,"x-example":null,"items":{"type":"string"}},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"[DEFAULT]"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","elements","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/float":{"post":{"summary":"Create Float Attribute","operationId":"databaseCreateFloatAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a float attribute. Optionally, minimum and maximum values can be provided.\n","responses":{"201":{"description":"AttributeFloat","schema":{"$ref":"#\/definitions\/attributeFloat"}}},"x-appwrite":{"method":"createFloatAttribute","weight":84,"cookies":false,"type":"","demo":"database\/create-float-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-float-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"min":{"type":"string","description":"Minimum value to enforce on new documents","default":null,"x-example":null},"max":{"type":"string","description":"Maximum value to enforce on new documents","default":null,"x-example":null},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":null},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/integer":{"post":{"summary":"Create Integer Attribute","operationId":"databaseCreateIntegerAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create an integer attribute. Optionally, minimum and maximum values can be provided.\n","responses":{"201":{"description":"AttributeInteger","schema":{"$ref":"#\/definitions\/attributeInteger"}}},"x-appwrite":{"method":"createIntegerAttribute","weight":83,"cookies":false,"type":"","demo":"database\/create-integer-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-integer-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"min":{"type":"integer","description":"Minimum value to enforce on new documents","default":null,"x-example":null},"max":{"type":"integer","description":"Maximum value to enforce on new documents","default":null,"x-example":null},"default":{"type":"integer","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":null},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/ip":{"post":{"summary":"Create IP Address Attribute","operationId":"databaseCreateIpAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create IP address attribute.\n","responses":{"201":{"description":"AttributeIP","schema":{"$ref":"#\/definitions\/attributeIp"}}},"x-appwrite":{"method":"createIpAttribute","weight":81,"cookies":false,"type":"","demo":"database\/create-ip-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-ip-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":null},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/string":{"post":{"summary":"Create String Attribute","operationId":"databaseCreateStringAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new string attribute.\n","responses":{"201":{"description":"AttributeString","schema":{"$ref":"#\/definitions\/attributeString"}}},"x-appwrite":{"method":"createStringAttribute","weight":78,"cookies":false,"type":"","demo":"database\/create-string-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-string-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"size":{"type":"integer","description":"Attribute size for text attributes, in number of characters.","default":null,"x-example":1},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"[DEFAULT]"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","size","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/url":{"post":{"summary":"Create URL Attribute","operationId":"databaseCreateUrlAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a URL attribute.\n","responses":{"201":{"description":"AttributeURL","schema":{"$ref":"#\/definitions\/attributeUrl"}}},"x-appwrite":{"method":"createUrlAttribute","weight":82,"cookies":false,"type":"","demo":"database\/create-url-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-url-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"https:\/\/example.com"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/{attributeId}":{"get":{"summary":"Get Attribute","operationId":"databaseGetAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"AttributeBoolean, or AttributeInteger, or AttributeFloat, or AttributeEmail, or AttributeEnum, or AttributeURL, or AttributeIP, or AttributeString","schema":{"oneOf":[{"$ref":"#\/definitions\/attributeBoolean"},{"$ref":"#\/definitions\/attributeInteger"},{"$ref":"#\/definitions\/attributeFloat"},{"$ref":"#\/definitions\/attributeEmail"},{"$ref":"#\/definitions\/attributeEnum"},{"$ref":"#\/definitions\/attributeUrl"},{"$ref":"#\/definitions\/attributeIp"},{"$ref":"#\/definitions\/attributeString"}]}}},"x-appwrite":{"method":"getAttribute","weight":87,"cookies":false,"type":"","demo":"database\/get-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"attributeId","description":"Attribute ID.","required":true,"type":"string","in":"path"}]},"delete":{"summary":"Delete Attribute","operationId":"databaseDeleteAttribute","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteAttribute","weight":88,"cookies":false,"type":"","demo":"database\/delete-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"attributeId","description":"Attribute ID.","required":true,"type":"string","in":"path"}]}},"\/database\/collections\/{collectionId}\/documents":{"get":{"summary":"List Documents","operationId":"databaseListDocuments","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a list of all the user documents. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's documents. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Documents List","schema":{"$ref":"#\/definitions\/documentList"}}},"x-appwrite":{"method":"listDocuments","weight":94,"cookies":false,"type":"","demo":"database\/list-documents.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-documents.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"queries","description":"Array of query strings.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"},{"name":"limit","description":"Maximum number of documents to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the document used as the starting point for the query, excluding the document itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderAttributes","description":"Array of attributes used to sort results.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"},{"name":"orderTypes","description":"Array of order directions for sorting attribtues. Possible values are DESC for descending order, or ASC for ascending order.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"}]},"post":{"summary":"Create Document","operationId":"databaseCreateDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](\/docs\/server\/database#databaseCreateCollection) API or directly from your database console.","responses":{"201":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"createDocument","weight":93,"cookies":false,"type":"","demo":"database\/create-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection with validation rules using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"documentId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"data":{"type":"object","description":"Document data as JSON object.","default":{},"x-example":"{}"},"read":{"type":"array","description":"An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["documentId","data"]}}]}},"\/database\/collections\/{collectionId}\/documents\/{documentId}":{"get":{"summary":"Get Document","operationId":"databaseGetDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a document by its unique ID. This endpoint response returns a JSON object with the document data.","responses":{"200":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"getDocument","weight":95,"cookies":false,"type":"","demo":"database\/get-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"}]},"patch":{"summary":"Update Document","operationId":"databaseUpdateDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.","responses":{"200":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"updateDocument","weight":97,"cookies":false,"type":"","demo":"database\/update-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/update-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection with validation rules using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"data":{"type":"object","description":"Document data as JSON object.","default":{},"x-example":"{}"},"read":{"type":"array","description":"An array of strings with read permissions. By default inherits the existing read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default inherits the existing write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["data"]}}]},"delete":{"summary":"Delete Document","operationId":"databaseDeleteDocument","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"Delete a document by its unique ID. This endpoint deletes only the parent documents, its attributes and relations to other documents. Child documents **will not** be deleted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteDocument","weight":98,"cookies":false,"type":"","demo":"database\/delete-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"}]}},"\/database\/collections\/{collectionId}\/indexes":{"get":{"summary":"List Indexes","operationId":"databaseListIndexes","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"Indexes List","schema":{"$ref":"#\/definitions\/indexList"}}},"x-appwrite":{"method":"listIndexes","weight":90,"cookies":false,"type":"","demo":"database\/list-indexes.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-indexes.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]},"post":{"summary":"Create Index","operationId":"databaseCreateIndex","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"201":{"description":"Index","schema":{"$ref":"#\/definitions\/index"}}},"x-appwrite":{"method":"createIndex","weight":89,"cookies":false,"type":"","demo":"database\/create-index.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-index.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"indexId":{"type":"string","description":"Index ID.","default":null,"x-example":null},"type":{"type":"string","description":"Index type.","default":null,"x-example":"key"},"attributes":{"type":"array","description":"Array of attributes to index.","default":null,"x-example":null,"items":{"type":"string"}},"orders":{"type":"array","description":"Array of index orders.","default":[],"x-example":null,"items":{"type":"string"}}},"required":["indexId","type","attributes"]}}]}},"\/database\/collections\/{collectionId}\/indexes\/{indexId}":{"get":{"summary":"Get Index","operationId":"databaseGetIndex","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"Index","schema":{"$ref":"#\/definitions\/index"}}},"x-appwrite":{"method":"getIndex","weight":91,"cookies":false,"type":"","demo":"database\/get-index.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-index.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"indexId","description":"Index ID.","required":true,"type":"string","in":"path"}]},"delete":{"summary":"Delete Index","operationId":"databaseDeleteIndex","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteIndex","weight":92,"cookies":false,"type":"","demo":"database\/delete-index.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-index.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"indexId","description":"Index ID.","required":true,"type":"string","in":"path"}]}},"\/functions":{"get":{"summary":"List Functions","operationId":"functionsList","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the project's functions. You can use the query params to filter your results.","responses":{"200":{"description":"Functions List","schema":{"$ref":"#\/definitions\/functionList"}}},"x-appwrite":{"method":"list","weight":187,"cookies":false,"type":"","demo":"functions\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-functions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the function used as the starting point for the query, excluding the function itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Function","operationId":"functionsCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Create a new function. You can pass a list of [permissions](\/docs\/permissions) to allow different project users or team with access to execute the function using the client API.","responses":{"201":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"create","weight":186,"cookies":false,"type":"","demo":"functions\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"functionId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Function name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"execute":{"type":"array","description":"An array of strings with execution permissions. By default no user is granted with any execute permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"runtime":{"type":"string","description":"Execution runtime.","default":null,"x-example":"dotnet-5.0"},"vars":{"type":"object","description":"Key-value JSON object.","default":[],"x-example":"{}"},"events":{"type":"array","description":"Events list.","default":[],"x-example":null,"items":{"type":"string"}},"schedule":{"type":"string","description":"Schedule CRON syntax.","default":"","x-example":null},"timeout":{"type":"integer","description":"Function maximum execution time in seconds.","default":15,"x-example":1}},"required":["functionId","name","execute","runtime"]}}]}},"\/functions\/runtimes":{"get":{"summary":"List the currently active function runtimes.","operationId":"functionsListRuntimes","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all runtimes that are currently active in your project.","responses":{"200":{"description":"Runtimes List","schema":{"$ref":"#\/definitions\/runtimeList"}}},"x-appwrite":{"method":"listRuntimes","weight":188,"cookies":false,"type":"","demo":"functions\/list-runtimes.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-runtimes.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/functions\/{functionId}":{"get":{"summary":"Get Function","operationId":"functionsGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a function by its unique ID.","responses":{"200":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"get","weight":189,"cookies":false,"type":"","demo":"functions\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"}]},"put":{"summary":"Update Function","operationId":"functionsUpdate","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Update function by its unique ID.","responses":{"200":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"update","weight":191,"cookies":false,"type":"","demo":"functions\/update.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/update-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Function name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"execute":{"type":"array","description":"An array of strings with execution permissions. By default no user is granted with any execute permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"vars":{"type":"object","description":"Key-value JSON object.","default":[],"x-example":"{}"},"events":{"type":"array","description":"Events list.","default":[],"x-example":null,"items":{"type":"string"}},"schedule":{"type":"string","description":"Schedule CRON syntax.","default":"","x-example":null},"timeout":{"type":"integer","description":"Function maximum execution time in seconds.","default":15,"x-example":1}},"required":["name","execute"]}}]},"delete":{"summary":"Delete Function","operationId":"functionsDelete","consumes":["application\/json"],"produces":[],"tags":["functions"],"description":"Delete a function by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":193,"cookies":false,"type":"","demo":"functions\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/delete-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"}]}},"\/functions\/{functionId}\/executions":{"get":{"summary":"List Executions","operationId":"functionsListExecutions","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the current user function execution logs. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's executions. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Executions List","schema":{"$ref":"#\/definitions\/executionList"}}},"x-appwrite":{"method":"listExecutions","weight":199,"cookies":false,"type":"","demo":"functions\/list-executions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-executions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"execution.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"cursor","description":"ID of the execution used as the starting point for the query, excluding the execution itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"}]},"post":{"summary":"Create Execution","operationId":"functionsCreateExecution","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.","responses":{"201":{"description":"Execution","schema":{"$ref":"#\/definitions\/execution"}}},"x-appwrite":{"method":"createExecution","weight":198,"cookies":false,"type":"","demo":"functions\/create-execution.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-execution.md","rate-limit":60,"rate-time":60,"rate-key":"url:{url},ip:{ip}","scope":"execution.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"data":{"type":"string","description":"String of custom data to send to function.","default":"","x-example":"[DATA]"}}}}]}},"\/functions\/{functionId}\/executions\/{executionId}":{"get":{"summary":"Get Execution","operationId":"functionsGetExecution","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a function execution log by its unique ID.","responses":{"200":{"description":"Execution","schema":{"$ref":"#\/definitions\/execution"}}},"x-appwrite":{"method":"getExecution","weight":200,"cookies":false,"type":"","demo":"functions\/get-execution.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-execution.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"execution.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"executionId","description":"Execution unique ID.","required":true,"type":"string","x-example":"[EXECUTION_ID]","in":"path"}]}},"\/functions\/{functionId}\/tag":{"patch":{"summary":"Update Function Tag","operationId":"functionsUpdateTag","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Update the function code tag ID using the unique function ID. Use this endpoint to switch the code tag that should be executed by the execution endpoint.","responses":{"200":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"updateTag","weight":192,"cookies":false,"type":"","demo":"functions\/update-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/update-function-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"tag":{"type":"string","description":"Tag unique ID.","default":null,"x-example":"[TAG]"}},"required":["tag"]}}]}},"\/functions\/{functionId}\/tags":{"get":{"summary":"List Tags","operationId":"functionsListTags","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the project's code tags. You can use the query params to filter your results.","responses":{"200":{"description":"Tags List","schema":{"$ref":"#\/definitions\/tagList"}}},"x-appwrite":{"method":"listTags","weight":195,"cookies":false,"type":"","demo":"functions\/list-tags.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-tags.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the tag used as the starting point for the query, excluding the tag itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Tag","operationId":"functionsCreateTag","consumes":["multipart\/form-data"],"produces":["application\/json"],"tags":["functions"],"description":"Create a new function code tag. Use this endpoint to upload a new version of your code function. To execute your newly uploaded code, you'll need to update the function's tag to use your new tag UID.\n\nThis endpoint accepts a tar.gz file compressed with your code. Make sure to include any dependencies your code has within the compressed file. You can learn more about code packaging in the [Appwrite Cloud Functions tutorial](\/docs\/functions).\n\nUse the \"command\" param to set the entry point used to execute your code.","responses":{"201":{"description":"Tag","schema":{"$ref":"#\/definitions\/tag"}}},"x-appwrite":{"method":"createTag","weight":194,"cookies":false,"type":"","demo":"functions\/create-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":true,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"command","description":"Code execution command.","required":true,"type":"string","x-example":"[COMMAND]","in":"formData"},{"name":"code","description":"Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.","required":true,"type":"file","in":"formData"}]}},"\/functions\/{functionId}\/tags\/{tagId}":{"get":{"summary":"Get Tag","operationId":"functionsGetTag","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a code tag by its unique ID.","responses":{"200":{"description":"Tag","schema":{"$ref":"#\/definitions\/tag"}}},"x-appwrite":{"method":"getTag","weight":196,"cookies":false,"type":"","demo":"functions\/get-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"tagId","description":"Tag unique ID.","required":true,"type":"string","x-example":"[TAG_ID]","in":"path"}]},"delete":{"summary":"Delete Tag","operationId":"functionsDeleteTag","consumes":["application\/json"],"produces":[],"tags":["functions"],"description":"Delete a code tag by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteTag","weight":197,"cookies":false,"type":"","demo":"functions\/delete-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/delete-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"tagId","description":"Tag unique ID.","required":true,"type":"string","x-example":"[TAG_ID]","in":"path"}]}},"\/health":{"get":{"summary":"Get HTTP","operationId":"healthGet","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite HTTP server is up and responsive.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"get","weight":106,"cookies":false,"type":"","demo":"health\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/anti-virus":{"get":{"summary":"Get Anti virus","operationId":"healthGetAntiVirus","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite Anti Virus server is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getAntiVirus","weight":117,"cookies":false,"type":"","demo":"health\/get-anti-virus.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-anti-virus.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/cache":{"get":{"summary":"Get Cache","operationId":"healthGetCache","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite in-memory cache server is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getCache","weight":109,"cookies":false,"type":"","demo":"health\/get-cache.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-cache.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/db":{"get":{"summary":"Get DB","operationId":"healthGetDB","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite database server is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getDB","weight":108,"cookies":false,"type":"","demo":"health\/get-d-b.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-db.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/certificates":{"get":{"summary":"Get Certificates Queue","operationId":"healthGetQueueCertificates","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of certificates that are waiting to be issued against [Letsencrypt](https:\/\/letsencrypt.org\/) in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueCertificates","weight":114,"cookies":false,"type":"","demo":"health\/get-queue-certificates.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-certificates.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/functions":{"get":{"summary":"Get Functions Queue","operationId":"healthGetQueueFunctions","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueFunctions","weight":115,"cookies":false,"type":"","demo":"health\/get-queue-functions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-functions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/logs":{"get":{"summary":"Get Logs Queue","operationId":"healthGetQueueLogs","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of logs that are waiting to be processed in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueLogs","weight":112,"cookies":false,"type":"","demo":"health\/get-queue-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/usage":{"get":{"summary":"Get Usage Queue","operationId":"healthGetQueueUsage","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of usage stats that are waiting to be processed in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueUsage","weight":113,"cookies":false,"type":"","demo":"health\/get-queue-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-usage.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/webhooks":{"get":{"summary":"Get Webhooks Queue","operationId":"healthGetQueueWebhooks","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of webhooks that are waiting to be processed in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueWebhooks","weight":111,"cookies":false,"type":"","demo":"health\/get-queue-webhooks.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-webhooks.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/storage\/local":{"get":{"summary":"Get Local Storage","operationId":"healthGetStorageLocal","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite local storage device is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getStorageLocal","weight":116,"cookies":false,"type":"","demo":"health\/get-storage-local.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-local.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/time":{"get":{"summary":"Get Time","operationId":"healthGetTime","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite server time is synced with Google remote NTP server. We use this technology to smoothly handle leap seconds with no disruptive events. The [Network Time Protocol](https:\/\/en.wikipedia.org\/wiki\/Network_Time_Protocol) (NTP) is used by hundreds of millions of computers and devices to synchronize their clocks over the Internet. If your computer sets its own clock, it likely uses NTP.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getTime","weight":110,"cookies":false,"type":"","demo":"health\/get-time.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-time.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/locale":{"get":{"summary":"Get User Locale","operationId":"localeGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.\n\n([IP Geolocation by DB-IP](https:\/\/db-ip.com))","responses":{"200":{"description":"Locale","schema":{"$ref":"#\/definitions\/locale"}}},"x-appwrite":{"method":"get","weight":99,"cookies":false,"type":"","demo":"locale\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/continents":{"get":{"summary":"List Continents","operationId":"localeGetContinents","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all continents. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Continents List","schema":{"$ref":"#\/definitions\/continentList"}}},"x-appwrite":{"method":"getContinents","weight":103,"cookies":false,"type":"","demo":"locale\/get-continents.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-continents.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/countries":{"get":{"summary":"List Countries","operationId":"localeGetCountries","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Countries List","schema":{"$ref":"#\/definitions\/countryList"}}},"x-appwrite":{"method":"getCountries","weight":100,"cookies":false,"type":"","demo":"locale\/get-countries.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/countries\/eu":{"get":{"summary":"List EU Countries","operationId":"localeGetCountriesEU","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries that are currently members of the EU. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Countries List","schema":{"$ref":"#\/definitions\/countryList"}}},"x-appwrite":{"method":"getCountriesEU","weight":101,"cookies":false,"type":"","demo":"locale\/get-countries-e-u.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries-eu.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/countries\/phones":{"get":{"summary":"List Countries Phone Codes","operationId":"localeGetCountriesPhones","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries phone codes. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Phones List","schema":{"$ref":"#\/definitions\/phoneList"}}},"x-appwrite":{"method":"getCountriesPhones","weight":102,"cookies":false,"type":"","demo":"locale\/get-countries-phones.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries-phones.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/currencies":{"get":{"summary":"List Currencies","operationId":"localeGetCurrencies","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Currencies List","schema":{"$ref":"#\/definitions\/currencyList"}}},"x-appwrite":{"method":"getCurrencies","weight":104,"cookies":false,"type":"","demo":"locale\/get-currencies.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-currencies.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/languages":{"get":{"summary":"List Languages","operationId":"localeGetLanguages","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.","responses":{"200":{"description":"Languages List","schema":{"$ref":"#\/definitions\/languageList"}}},"x-appwrite":{"method":"getLanguages","weight":105,"cookies":false,"type":"","demo":"locale\/get-languages.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-languages.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/storage\/files":{"get":{"summary":"List Files","operationId":"storageListFiles","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Get a list of all the user files. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's files. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Files List","schema":{"$ref":"#\/definitions\/fileList"}}},"x-appwrite":{"method":"listFiles","weight":150,"cookies":false,"type":"","demo":"storage\/list-files.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the file used as the starting point for the query, excluding the file itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create File","operationId":"storageCreateFile","consumes":["multipart\/form-data"],"produces":["application\/json"],"tags":["storage"],"description":"Create a new file. The user who creates the file will automatically be assigned to read and write access unless he has passed custom values for read and write arguments.","responses":{"201":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"createFile","weight":149,"cookies":false,"type":"upload","demo":"storage\/create-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","required":true,"type":"string","in":"formData"},{"name":"file","description":"Binary file.","required":true,"type":"file","in":"formData"},{"name":"read","description":"An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"in":"formData"},{"name":"write","description":"An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"in":"formData"}]}},"\/storage\/files\/{fileId}":{"get":{"summary":"Get File","operationId":"storageGetFile","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.","responses":{"200":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"getFile","weight":151,"cookies":false,"type":"","demo":"storage\/get-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]},"put":{"summary":"Update File","operationId":"storageUpdateFile","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Update a file by its unique ID. Only users with write permissions have access to update this resource.","responses":{"200":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"updateFile","weight":155,"cookies":false,"type":"","demo":"storage\/update-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"read":{"type":"array","description":"An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["read","write"]}}]},"delete":{"summary":"Delete File","operationId":"storageDeleteFile","consumes":["application\/json"],"produces":[],"tags":["storage"],"description":"Delete a file by its unique ID. Only users with write permissions have access to delete this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteFile","weight":156,"cookies":false,"type":"","demo":"storage\/delete-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/files\/{fileId}\/download":{"get":{"summary":"Get File for Download","operationId":"storageGetFileDownload","consumes":["application\/json"],"produces":["*\/*"],"tags":["storage"],"description":"Get a file content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.","responses":{"200":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getFileDownload","weight":153,"cookies":false,"type":"location","demo":"storage\/get-file-download.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/files\/{fileId}\/preview":{"get":{"summary":"Get File Preview","operationId":"storageGetFilePreview","consumes":["application\/json"],"produces":["image\/*"],"tags":["storage"],"description":"Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFilePreview","weight":152,"cookies":false,"type":"location","demo":"storage\/get-file-preview.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"},{"name":"width","description":"Resize preview image width, Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"height","description":"Resize preview image height, Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"gravity","description":"Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right","required":false,"type":"string","x-example":"center","default":"center","in":"query"},{"name":"quality","description":"Preview image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"borderWidth","description":"Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"borderColor","description":"Preview image border color. Use a valid HEX color, no # is needed for prefix.","required":false,"type":"string","default":"","in":"query"},{"name":"borderRadius","description":"Preview image border radius in pixels. Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"opacity","description":"Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.","required":false,"type":"number","format":"float","x-example":0,"default":1,"in":"query"},{"name":"rotation","description":"Preview image rotation in degrees. Pass an integer between -360 and 360.","required":false,"type":"integer","format":"int32","x-example":-360,"default":0,"in":"query"},{"name":"background","description":"Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.","required":false,"type":"string","default":"","in":"query"},{"name":"output","description":"Output format type (jpeg, jpg, png, gif and webp).","required":false,"type":"string","x-example":"jpg","default":"","in":"query"}]}},"\/storage\/files\/{fileId}\/view":{"get":{"summary":"Get File for View","operationId":"storageGetFileView","consumes":["application\/json"],"produces":["*\/*"],"tags":["storage"],"description":"Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.","responses":{"200":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getFileView","weight":154,"cookies":false,"type":"location","demo":"storage\/get-file-view.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/teams":{"get":{"summary":"List Teams","operationId":"teamsList","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a list of all the current user teams. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's teams. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Teams List","schema":{"$ref":"#\/definitions\/teamList"}}},"x-appwrite":{"method":"list","weight":160,"cookies":false,"type":"","demo":"teams\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the team used as the starting point for the query, excluding the team itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Team","operationId":"teamsCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Create a new team. The user who creates the team will automatically be assigned as the owner of the team. The team owner can invite new members, who will be able add new owners and update or delete the team from your project.","responses":{"201":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"create","weight":159,"cookies":false,"type":"","demo":"teams\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"teamId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Team name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"roles":{"type":"array","description":"Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":["owner"],"x-example":null,"items":{"type":"string"}}},"required":["teamId","name"]}}]}},"\/teams\/{teamId}":{"get":{"summary":"Get Team","operationId":"teamsGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team by its unique ID. All team members have read access for this resource.","responses":{"200":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"get","weight":161,"cookies":false,"type":"","demo":"teams\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"}]},"put":{"summary":"Update Team","operationId":"teamsUpdate","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Update a team by its unique ID. Only team owners have write access for this resource.","responses":{"200":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"update","weight":162,"cookies":false,"type":"","demo":"teams\/update.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Team name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]},"delete":{"summary":"Delete Team","operationId":"teamsDelete","consumes":["application\/json"],"produces":[],"tags":["teams"],"description":"Delete a team by its unique ID. Only team owners have write access for this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":163,"cookies":false,"type":"","demo":"teams\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"}]}},"\/teams\/{teamId}\/memberships":{"get":{"summary":"Get Team Memberships","operationId":"teamsGetMemberships","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team members by the team unique ID. All team members have read access for this list of resources.","responses":{"200":{"description":"Memberships List","schema":{"$ref":"#\/definitions\/membershipList"}}},"x-appwrite":{"method":"getMemberships","weight":165,"cookies":false,"type":"","demo":"teams\/get-memberships.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-members.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the membership used as the starting point for the query, excluding the membership itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Team Membership","operationId":"teamsCreateMembership","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"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.\n\nUse 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.\n\nPlease 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.","responses":{"201":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"createMembership","weight":164,"cookies":false,"type":"","demo":"teams\/create-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team-membership.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"New team member email.","default":null,"x-example":"email@example.com"},"roles":{"type":"array","description":"Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":null,"x-example":null,"items":{"type":"string"}},"url":{"type":"string","description":"URL to redirect the user back to your app from the invitation email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"},"name":{"type":"string","description":"New team member name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["email","roles","url"]}}]}},"\/teams\/{teamId}\/memberships\/{membershipId}":{"get":{"summary":"Get Team Membership","operationId":"teamsGetMembership","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team member by the membership unique id. All team members have read access for this resource.","responses":{"200":{"description":"Memberships List","schema":{"$ref":"#\/definitions\/membershipList"}}},"x-appwrite":{"method":"getMembership","weight":166,"cookies":false,"type":"","demo":"teams\/get-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"membership unique ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"}]},"patch":{"summary":"Update Membership Roles","operationId":"teamsUpdateMembershipRoles","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"","responses":{"200":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"updateMembershipRoles","weight":167,"cookies":false,"type":"","demo":"teams\/update-membership-roles.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-roles.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"roles":{"type":"array","description":"Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["roles"]}}]},"delete":{"summary":"Delete Team Membership","operationId":"teamsDeleteMembership","consumes":["application\/json"],"produces":[],"tags":["teams"],"description":"This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteMembership","weight":169,"cookies":false,"type":"","demo":"teams\/delete-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"}]}},"\/teams\/{teamId}\/memberships\/{membershipId}\/status":{"patch":{"summary":"Update Team Membership Status","operationId":"teamsUpdateMembershipStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user.","responses":{"200":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"updateMembershipStatus","weight":168,"cookies":false,"type":"","demo":"teams\/update-membership-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User unique ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Secret key.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/users":{"get":{"summary":"List Users","operationId":"usersList","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get a list of all the project's users. You can use the query params to filter your results.","responses":{"200":{"description":"Users List","schema":{"$ref":"#\/definitions\/userList"}}},"x-appwrite":{"method":"list","weight":171,"cookies":false,"type":"","demo":"users\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-users.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the user used as the starting point for the query, excluding the user itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create User","operationId":"usersCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Create a new user.","responses":{"201":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"create","weight":170,"cookies":false,"type":"","demo":"users\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"},"name":{"type":"string","description":"User name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["userId","email","password"]}}]}},"\/users\/{userId}":{"get":{"summary":"Get User","operationId":"usersGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get a user by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"get","weight":172,"cookies":false,"type":"","demo":"users\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]},"delete":{"summary":"Delete User","operationId":"usersDelete","consumes":["application\/json"],"produces":[],"tags":["users"],"description":"Delete a user by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":184,"cookies":false,"type":"","demo":"users\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]}},"\/users\/{userId}\/email":{"patch":{"summary":"Update Email","operationId":"usersUpdateEmail","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user email by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateEmail","weight":180,"cookies":false,"type":"","demo":"users\/update-email.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"}},"required":["email"]}}]}},"\/users\/{userId}\/logs":{"get":{"summary":"Get User Logs","operationId":"usersGetLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get the user activity logs list by its unique ID.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"getLogs","weight":175,"cookies":false,"type":"","demo":"users\/get-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"limit","description":"Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/users\/{userId}\/name":{"patch":{"summary":"Update Name","operationId":"usersUpdateName","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user name by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateName","weight":178,"cookies":false,"type":"","demo":"users\/update-name.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-name.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"User name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]}},"\/users\/{userId}\/password":{"patch":{"summary":"Update Password","operationId":"usersUpdatePassword","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user password by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePassword","weight":179,"cookies":false,"type":"","demo":"users\/update-password.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-password.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"password":{"type":"string","description":"New user password. Must be between 6 to 32 chars.","default":null,"x-example":"password"}},"required":["password"]}}]}},"\/users\/{userId}\/prefs":{"get":{"summary":"Get User Preferences","operationId":"usersGetPrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get the user preferences by its unique ID.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"getPrefs","weight":173,"cookies":false,"type":"","demo":"users\/get-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]},"patch":{"summary":"Update User Preferences","operationId":"usersUpdatePrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user preferences by its unique ID. You can pass only the specific settings you wish to update.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"updatePrefs","weight":181,"cookies":false,"type":"","demo":"users\/update-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"prefs":{"type":"object","description":"Prefs key-value JSON object.","default":{},"x-example":"{}"}},"required":["prefs"]}}]}},"\/users\/{userId}\/sessions":{"get":{"summary":"Get User Sessions","operationId":"usersGetSessions","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get the user sessions list by its unique ID.","responses":{"200":{"description":"Sessions List","schema":{"$ref":"#\/definitions\/sessionList"}}},"x-appwrite":{"method":"getSessions","weight":174,"cookies":false,"type":"","demo":"users\/get-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]},"delete":{"summary":"Delete User Sessions","operationId":"usersDeleteSessions","consumes":["application\/json"],"produces":[],"tags":["users"],"description":"Delete all user's sessions by using the user's unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSessions","weight":183,"cookies":false,"type":"","demo":"users\/delete-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]}},"\/users\/{userId}\/sessions\/{sessionId}":{"delete":{"summary":"Delete User Session","operationId":"usersDeleteSession","consumes":["application\/json"],"produces":[],"tags":["users"],"description":"Delete a user sessions by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSession","weight":182,"cookies":false,"type":"","demo":"users\/delete-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-session.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"sessionId","description":"User unique session ID.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]}},"\/users\/{userId}\/status":{"patch":{"summary":"Update User Status","operationId":"usersUpdateStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user status by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateStatus","weight":176,"cookies":false,"type":"","demo":"users\/update-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-status.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"status":{"type":"boolean","description":"User Status. To activate the user pass `true` and to block the user pass `false`","default":null,"x-example":false}},"required":["status"]}}]}},"\/users\/{userId}\/verification":{"patch":{"summary":"Update Email Verification","operationId":"usersUpdateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user email verification status by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateVerification","weight":177,"cookies":false,"type":"","demo":"users\/update-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-verification.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"emailVerification":{"type":"boolean","description":"User Email Verification Status.","default":null,"x-example":false}},"required":["emailVerification"]}}]}}},"tags":[{"name":"account","description":"The Account service allows you to authenticate and manage a user account."},{"name":"avatars","description":"The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars."},{"name":"database","description":"The Database service allows you to create structured collections of documents, query and filter lists of documents"},{"name":"locale","description":"The Locale service allows you to customize your app based on your users' location."},{"name":"health","description":"The Health service allows you to both validate and monitor your Appwrite server's health."},{"name":"projects","description":"The Project service allows you to manage all the projects in your Appwrite server."},{"name":"storage","description":"The Storage service allows you to manage your project files."},{"name":"teams","description":"The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources"},{"name":"users","description":"The Users service allows you to manage your project users."},{"name":"functions","description":"The Functions Service allows you view, create and manage your Cloud Functions."}],"definitions":{"collectionList":{"description":"Collections List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"collections":{"type":"array","description":"List of collections.","items":{"type":"object","$ref":"#\/definitions\/collection"},"x-example":""}},"required":["sum","collections"]},"indexList":{"description":"Indexes List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"indexes":{"type":"array","description":"List of indexes.","items":{"type":"object","$ref":"#\/definitions\/index"},"x-example":""}},"required":["sum","indexes"]},"documentList":{"description":"Documents List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"documents":{"type":"array","description":"List of documents.","items":{"type":"object","$ref":"#\/definitions\/document"},"x-example":""}},"required":["sum","documents"]},"userList":{"description":"Users List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"users":{"type":"array","description":"List of users.","items":{"type":"object","$ref":"#\/definitions\/user"},"x-example":""}},"required":["sum","users"]},"sessionList":{"description":"Sessions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"sessions":{"type":"array","description":"List of sessions.","items":{"type":"object","$ref":"#\/definitions\/session"},"x-example":""}},"required":["sum","sessions"]},"logList":{"description":"Logs List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"logs":{"type":"array","description":"List of logs.","items":{"type":"object","$ref":"#\/definitions\/log"},"x-example":""}},"required":["sum","logs"]},"fileList":{"description":"Files List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"files":{"type":"array","description":"List of files.","items":{"type":"object","$ref":"#\/definitions\/file"},"x-example":""}},"required":["sum","files"]},"teamList":{"description":"Teams List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"teams":{"type":"array","description":"List of teams.","items":{"type":"object","$ref":"#\/definitions\/team"},"x-example":""}},"required":["sum","teams"]},"membershipList":{"description":"Memberships List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"memberships":{"type":"array","description":"List of memberships.","items":{"type":"object","$ref":"#\/definitions\/membership"},"x-example":""}},"required":["sum","memberships"]},"functionList":{"description":"Functions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"functions":{"type":"array","description":"List of functions.","items":{"type":"object","$ref":"#\/definitions\/function"},"x-example":""}},"required":["sum","functions"]},"runtimeList":{"description":"Runtimes List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"runtimes":{"type":"array","description":"List of runtimes.","items":{"type":"object","$ref":"#\/definitions\/runtime"},"x-example":""}},"required":["sum","runtimes"]},"tagList":{"description":"Tags List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"tags":{"type":"array","description":"List of tags.","items":{"type":"object","$ref":"#\/definitions\/tag"},"x-example":""}},"required":["sum","tags"]},"executionList":{"description":"Executions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"executions":{"type":"array","description":"List of executions.","items":{"type":"object","$ref":"#\/definitions\/execution"},"x-example":""}},"required":["sum","executions"]},"countryList":{"description":"Countries List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"countries":{"type":"array","description":"List of countries.","items":{"type":"object","$ref":"#\/definitions\/country"},"x-example":""}},"required":["sum","countries"]},"continentList":{"description":"Continents List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"continents":{"type":"array","description":"List of continents.","items":{"type":"object","$ref":"#\/definitions\/continent"},"x-example":""}},"required":["sum","continents"]},"languageList":{"description":"Languages List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"languages":{"type":"array","description":"List of languages.","items":{"type":"object","$ref":"#\/definitions\/language"},"x-example":""}},"required":["sum","languages"]},"currencyList":{"description":"Currencies List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"currencies":{"type":"array","description":"List of currencies.","items":{"type":"object","$ref":"#\/definitions\/currency"},"x-example":""}},"required":["sum","currencies"]},"phoneList":{"description":"Phones List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"phones":{"type":"array","description":"List of phones.","items":{"type":"object","$ref":"#\/definitions\/phone"},"x-example":""}},"required":["sum","phones"]},"collection":{"description":"Collection","type":"object","properties":{"$id":{"type":"string","description":"Collection ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"Collection read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"Collection write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"},"name":{"type":"string","description":"Collection name.","x-example":"My Collection"},"enabled":{"type":"boolean","description":"Collection enabled.","x-example":false},"permission":{"type":"string","description":"Collection permission model. Possible values: `document` or `collection`","x-example":"document"},"attributes":{"type":"array","description":"Collection attributes.","items":{"anyOf":[{"$ref":"#\/definitions\/attributeBoolean"},{"$ref":"#\/definitions\/attributeInteger"},{"$ref":"#\/definitions\/attributeFloat"},{"$ref":"#\/definitions\/attributeEmail"},{"$ref":"#\/definitions\/attributeEnum"},{"$ref":"#\/definitions\/attributeUrl"},{"$ref":"#\/definitions\/attributeIp"},{"$ref":"#\/definitions\/attributeString"}]},"x-example":{}},"indexes":{"type":"array","description":"Collection indexes.","items":{"type":"object","$ref":"#\/definitions\/index"},"x-example":{}}},"required":["$id","$read","$write","name","enabled","permission","attributes","indexes"]},"attributeList":{"description":"Attributes List","type":"object","properties":{"sum":{"type":"integer","description":"Total sum of items in the list.","x-example":5,"format":"int32"},"attributes":{"type":"array","description":"List of attributes.","items":{"anyOf":[{"$ref":"#\/definitions\/attributeBoolean"},{"$ref":"#\/definitions\/attributeInteger"},{"$ref":"#\/definitions\/attributeFloat"},{"$ref":"#\/definitions\/attributeEmail"},{"$ref":"#\/definitions\/attributeEnum"},{"$ref":"#\/definitions\/attributeUrl"},{"$ref":"#\/definitions\/attributeIp"},{"$ref":"#\/definitions\/attributeString"}]},"x-example":""}},"required":["sum","attributes"]},"attributeString":{"description":"AttributeString","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"size":{"type":"string","description":"Attribute size.","x-example":128},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"default","nullable":true}},"required":["key","type","status","required","size"]},"attributeInteger":{"description":"AttributeInteger","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"min":{"type":"integer","description":"Minimum value to enforce for new documents.","x-example":1,"format":"int32","nullable":true},"max":{"type":"integer","description":"Maximum value to enforce for new documents.","x-example":10,"format":"int32","nullable":true},"default":{"type":"integer","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":10,"format":"int32","nullable":true}},"required":["key","type","status","required"]},"attributeFloat":{"description":"AttributeFloat","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"min":{"type":"number","description":"Minimum value to enforce for new documents.","x-example":1.5,"format":"double","nullable":true},"max":{"type":"number","description":"Maximum value to enforce for new documents.","x-example":10.5,"format":"double","nullable":true},"default":{"type":"number","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":2.5,"format":"double","nullable":true}},"required":["key","type","status","required"]},"attributeBoolean":{"description":"AttributeBoolean","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"default":{"type":"boolean","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":false,"nullable":true}},"required":["key","type","status","required"]},"attributeEmail":{"description":"AttributeEmail","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"format":{"type":"string","description":"String format.","x-example":"email"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"default@example.com","nullable":true}},"required":["key","type","status","required","format"]},"attributeEnum":{"description":"AttributeEnum","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"elements":{"type":"array","description":"Array of elements in enumerated type.","items":{"type":"string"},"x-example":"element"},"format":{"type":"string","description":"String format.","x-example":"enum"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"element","nullable":true}},"required":["key","type","status","required","elements","format"]},"attributeIp":{"description":"AttributeIP","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"format":{"type":"string","description":"String format.","x-example":"ip"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"192.0.2.0","nullable":true}},"required":["key","type","status","required","format"]},"attributeUrl":{"description":"AttributeURL","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"format":{"type":"string","description":"String format.","x-example":"url"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"http:\/\/example.com","nullable":true}},"required":["key","type","status","required","format"]},"index":{"description":"Index","type":"object","properties":{"key":{"type":"string","description":"Index Key.","x-example":"index1"},"type":{"type":"string","description":"Index type.","x-example":""},"status":{"type":"string","description":"Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"attributes":{"type":"array","description":"Index attributes.","items":{"type":"string"},"x-example":[]},"orders":{"type":"array","description":"Index orders.","items":{"type":"string"},"x-example":[]}},"required":["key","type","status","attributes","orders"]},"document":{"description":"Document","type":"object","properties":{"$id":{"type":"string","description":"Document ID.","x-example":"5e5ea5c16897e"},"$collection":{"type":"string","description":"Collection ID.","x-example":"5e5ea5c15117e"},"$read":{"type":"array","description":"Document read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"Document write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"}},"additionalProperties":true,"required":["$id","$collection","$read","$write"]},"log":{"description":"Log","type":"object","properties":{"event":{"type":"string","description":"Event name.","x-example":"account.sessions.create"},"userId":{"type":"string","description":"User ID.","x-example":"610fc2f985ee0"},"userEmail":{"type":"string","description":"User Email.","x-example":"john@appwrite.io"},"userName":{"type":"string","description":"User Name.","x-example":"John Doe"},"mode":{"type":"string","description":"API mode when event triggered.","x-example":"admin"},"ip":{"type":"string","description":"IP session in use when the session was created.","x-example":"127.0.0.1"},"time":{"type":"integer","description":"Log creation time in Unix timestamp.","x-example":1592981250,"format":"int32"},"osCode":{"type":"string","description":"Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).","x-example":"Mac"},"osName":{"type":"string","description":"Operating system name.","x-example":"Mac"},"osVersion":{"type":"string","description":"Operating system version.","x-example":"Mac"},"clientType":{"type":"string","description":"Client type.","x-example":"browser"},"clientCode":{"type":"string","description":"Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).","x-example":"CM"},"clientName":{"type":"string","description":"Client name.","x-example":"Chrome Mobile iOS"},"clientVersion":{"type":"string","description":"Client version.","x-example":"84.0"},"clientEngine":{"type":"string","description":"Client engine name.","x-example":"WebKit"},"clientEngineVersion":{"type":"string","description":"Client engine name.","x-example":"605.1.15"},"deviceName":{"type":"string","description":"Device name.","x-example":"smartphone"},"deviceBrand":{"type":"string","description":"Device brand name.","x-example":"Google"},"deviceModel":{"type":"string","description":"Device model name.","x-example":"Nexus 5"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"}},"required":["event","userId","userEmail","userName","mode","ip","time","osCode","osName","osVersion","clientType","clientCode","clientName","clientVersion","clientEngine","clientEngineVersion","deviceName","deviceBrand","deviceModel","countryCode","countryName"]},"user":{"description":"User","type":"object","properties":{"$id":{"type":"string","description":"User ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"User name.","x-example":"John Doe"},"registration":{"type":"integer","description":"User registration date in Unix timestamp.","x-example":1592981250,"format":"int32"},"status":{"type":"boolean","description":"User status. Pass `true` for enabled and `false` for disabled.","x-example":true},"passwordUpdate":{"type":"integer","description":"Unix timestamp of the most recent password update","x-example":1592981250,"format":"int32"},"email":{"type":"string","description":"User email address.","x-example":"john@appwrite.io"},"emailVerification":{"type":"boolean","description":"Email verification status.","x-example":true},"prefs":{"type":"object","description":"User preferences as a key-value object","x-example":{"theme":"pink","timezone":"UTC"},"items":{"type":"object","$ref":"#\/definitions\/preferences"}}},"required":["$id","name","registration","status","passwordUpdate","email","emailVerification","prefs"]},"preferences":{"description":"Preferences","type":"object","additionalProperties":true},"session":{"description":"Session","type":"object","properties":{"$id":{"type":"string","description":"Session ID.","x-example":"5e5ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5bb8c16897e"},"expire":{"type":"integer","description":"Session expiration date in Unix timestamp.","x-example":1592981250,"format":"int32"},"provider":{"type":"string","description":"Session Provider.","x-example":"email"},"providerUid":{"type":"string","description":"Session Provider User ID.","x-example":"user@example.com"},"providerToken":{"type":"string","description":"Session Provider Token.","x-example":"MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"},"ip":{"type":"string","description":"IP in use when the session was created.","x-example":"127.0.0.1"},"osCode":{"type":"string","description":"Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).","x-example":"Mac"},"osName":{"type":"string","description":"Operating system name.","x-example":"Mac"},"osVersion":{"type":"string","description":"Operating system version.","x-example":"Mac"},"clientType":{"type":"string","description":"Client type.","x-example":"browser"},"clientCode":{"type":"string","description":"Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).","x-example":"CM"},"clientName":{"type":"string","description":"Client name.","x-example":"Chrome Mobile iOS"},"clientVersion":{"type":"string","description":"Client version.","x-example":"84.0"},"clientEngine":{"type":"string","description":"Client engine name.","x-example":"WebKit"},"clientEngineVersion":{"type":"string","description":"Client engine name.","x-example":"605.1.15"},"deviceName":{"type":"string","description":"Device name.","x-example":"smartphone"},"deviceBrand":{"type":"string","description":"Device brand name.","x-example":"Google"},"deviceModel":{"type":"string","description":"Device model name.","x-example":"Nexus 5"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"},"current":{"type":"boolean","description":"Returns true if this the current user session.","x-example":true}},"required":["$id","userId","expire","provider","providerUid","providerToken","ip","osCode","osName","osVersion","clientType","clientCode","clientName","clientVersion","clientEngine","clientEngineVersion","deviceName","deviceBrand","deviceModel","countryCode","countryName","current"]},"token":{"description":"Token","type":"object","properties":{"$id":{"type":"string","description":"Token ID.","x-example":"bb8ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5ea5c168bb8"},"secret":{"type":"string","description":"Token secret key. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.","x-example":""},"expire":{"type":"integer","description":"Token expiration date in Unix timestamp.","x-example":1592981250,"format":"int32"}},"required":["$id","userId","secret","expire"]},"locale":{"description":"Locale","type":"object","properties":{"ip":{"type":"string","description":"User IP address.","x-example":"127.0.0.1"},"countryCode":{"type":"string","description":"Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format","x-example":"US"},"country":{"type":"string","description":"Country name. This field support localization.","x-example":"United States"},"continentCode":{"type":"string","description":"Continent code. A two character continent code \"AF\" for Africa, \"AN\" for Antarctica, \"AS\" for Asia, \"EU\" for Europe, \"NA\" for North America, \"OC\" for Oceania, and \"SA\" for South America.","x-example":"NA"},"continent":{"type":"string","description":"Continent name. This field support localization.","x-example":"North America"},"eu":{"type":"boolean","description":"True if country is part of the Europian Union.","x-example":false},"currency":{"type":"string","description":"Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format","x-example":"USD"}},"required":["ip","countryCode","country","continentCode","continent","eu","currency"]},"file":{"description":"File","type":"object","properties":{"$id":{"type":"string","description":"File ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"File read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"File write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"},"name":{"type":"string","description":"File name.","x-example":"Pink.png"},"dateCreated":{"type":"integer","description":"File creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"signature":{"type":"string","description":"File MD5 signature.","x-example":"5d529fd02b544198ae075bd57c1762bb"},"mimeType":{"type":"string","description":"File mime type.","x-example":"image\/png"},"sizeOriginal":{"type":"integer","description":"File original size in bytes.","x-example":17890,"format":"int32"}},"required":["$id","$read","$write","name","dateCreated","signature","mimeType","sizeOriginal"]},"team":{"description":"Team","type":"object","properties":{"$id":{"type":"string","description":"Team ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Team name.","x-example":"VIP"},"dateCreated":{"type":"integer","description":"Team creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"sum":{"type":"integer","description":"Total sum of team members.","x-example":7,"format":"int32"}},"required":["$id","name","dateCreated","sum"]},"membership":{"description":"Membership","type":"object","properties":{"$id":{"type":"string","description":"Membership ID.","x-example":"5e5ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5ea5c16897e"},"teamId":{"type":"string","description":"Team ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"User name.","x-example":"VIP"},"email":{"type":"string","description":"User email address.","x-example":"john@appwrite.io"},"invited":{"type":"integer","description":"Date, the user has been invited to join the team in Unix timestamp.","x-example":1592981250,"format":"int32"},"joined":{"type":"integer","description":"Date, the user has accepted the invitation to join the team in Unix timestamp.","x-example":1592981250,"format":"int32"},"confirm":{"type":"boolean","description":"User confirmation status, true if the user has joined the team or false otherwise.","x-example":false},"roles":{"type":"array","description":"User list of roles","items":{"type":"string"},"x-example":"admin"}},"required":["$id","userId","teamId","name","email","invited","joined","confirm","roles"]},"function":{"description":"Function","type":"object","properties":{"$id":{"type":"string","description":"Function ID.","x-example":"5e5ea5c16897e"},"execute":{"type":"object","description":"Function permissions.","x-example":{},"items":{"type":"object","$ref":"#\/definitions\/funcPermissions"}},"name":{"type":"string","description":"Function name.","x-example":"My Function"},"dateCreated":{"type":"integer","description":"Function creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"dateUpdated":{"type":"integer","description":"Function update date in Unix timestamp.","x-example":1592981257,"format":"int32"},"status":{"type":"string","description":"Function status. Possible values: `disabled`, `enabled`","x-example":"enabled"},"runtime":{"type":"string","description":"Function execution runtime.","x-example":"python-3.8"},"tag":{"type":"string","description":"Function active tag ID.","x-example":"5e5ea5c16897e"},"vars":{"type":"string","description":"Function environment variables.","x-example":{"key":"value"}},"events":{"type":"array","description":"Function trigger events.","items":{"type":"string"},"x-example":"account.create"},"schedule":{"type":"string","description":"Function execution schedult in CRON format.","x-example":"5 4 * * *"},"scheduleNext":{"type":"integer","description":"Function next scheduled execution date in Unix timestamp.","x-example":1592981292,"format":"int32"},"schedulePrevious":{"type":"integer","description":"Function next scheduled execution date in Unix timestamp.","x-example":1592981237,"format":"int32"},"timeout":{"type":"integer","description":"Function execution timeout in seconds.","x-example":1592981237,"format":"int32"}},"required":["$id","execute","name","dateCreated","dateUpdated","status","runtime","tag","vars","events","schedule","scheduleNext","schedulePrevious","timeout"]},"runtime":{"description":"Runtime","type":"object","properties":{"$id":{"type":"string","description":"Runtime ID.","x-example":"python-3.8"},"name":{"type":"string","description":"Runtime Name.","x-example":"Python"},"version":{"type":"string","description":"Runtime version.","x-example":"3.8"},"base":{"type":"string","description":"Base Docker image used to build the runtime.","x-example":"python:3.8-alpine"},"image":{"type":"string","description":"Image name of Docker Hub.","x-example":"appwrite\\\/runtime-for-python:3.8"},"logo":{"type":"string","description":"Name of the logo image.","x-example":"python.png"},"supports":{"type":"array","description":"List of supported architectures.","items":{"type":"string"},"x-example":"amd64"}},"required":["$id","name","version","base","image","logo","supports"]},"funcPermissions":{"description":"FuncPermissions","type":"object","properties":{"execute":{"type":"array","description":"Execution permissions.","items":{"type":"string"},"x-example":"user:5e5ea5c16897e"}},"required":["execute"]},"tag":{"description":"Tag","type":"object","properties":{"$id":{"type":"string","description":"Tag ID.","x-example":"5e5ea5c16897e"},"functionId":{"type":"string","description":"Function ID.","x-example":"5e5ea6g16897e"},"dateCreated":{"type":"integer","description":"The tag creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"command":{"type":"string","description":"The entrypoint command in use to execute the tag code.","x-example":"enabled"},"size":{"type":"string","description":"The code size in bytes.","x-example":"python-3.8"}},"required":["$id","functionId","dateCreated","command","size"]},"execution":{"description":"Execution","type":"object","properties":{"$id":{"type":"string","description":"Execution ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"Execution read permissions.","items":{"type":"string"},"x-example":"role:all"},"functionId":{"type":"string","description":"Function ID.","x-example":"5e5ea6g16897e"},"dateCreated":{"type":"integer","description":"The execution creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"trigger":{"type":"string","description":"The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.","x-example":"http"},"status":{"type":"string","description":"The status of the function execution. Possible values can be: `waiting`, `processing`, `completed`, or `failed`.","x-example":"processing"},"exitCode":{"type":"integer","description":"The script exit code.","x-example":0,"format":"int32"},"stdout":{"type":"string","description":"The script stdout output string. Logs the last 4,000 characters of the execution stdout output.","x-example":""},"stderr":{"type":"string","description":"The script stderr output string. Logs the last 4,000 characters of the execution stderr output","x-example":""},"time":{"type":"number","description":"The script execution time in seconds.","x-example":0.4,"format":"double"}},"required":["$id","$read","functionId","dateCreated","trigger","status","exitCode","stdout","stderr","time"]},"country":{"description":"Country","type":"object","properties":{"name":{"type":"string","description":"Country name.","x-example":"United States"},"code":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"}},"required":["name","code"]},"continent":{"description":"Continent","type":"object","properties":{"name":{"type":"string","description":"Continent name.","x-example":"Europe"},"code":{"type":"string","description":"Continent two letter code.","x-example":"EU"}},"required":["name","code"]},"language":{"description":"Language","type":"object","properties":{"name":{"type":"string","description":"Language name.","x-example":"Italian"},"code":{"type":"string","description":"Language two-character ISO 639-1 codes.","x-example":"it"},"nativeName":{"type":"string","description":"Language native name.","x-example":"Italiano"}},"required":["name","code","nativeName"]},"currency":{"description":"Currency","type":"object","properties":{"symbol":{"type":"string","description":"Currency symbol.","x-example":"$"},"name":{"type":"string","description":"Currency name.","x-example":"US dollar"},"symbolNative":{"type":"string","description":"Currency native symbol.","x-example":"$"},"decimalDigits":{"type":"integer","description":"Number of decimal digits.","x-example":2,"format":"int32"},"rounding":{"type":"number","description":"Currency digit rounding.","x-example":0,"format":"double"},"code":{"type":"string","description":"Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format.","x-example":"USD"},"namePlural":{"type":"string","description":"Currency plural name","x-example":"US dollars"}},"required":["symbol","name","symbolNative","decimalDigits","rounding","code","namePlural"]},"phone":{"description":"Phone","type":"object","properties":{"code":{"type":"string","description":"Phone code.","x-example":"+1"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"}},"required":["code","countryCode","countryName"]}},"externalDocs":{"description":"Full API docs, specs and tutorials","url":"https:\/\/appwrite.io\/docs"}} \ No newline at end of file diff --git a/app/controllers/api/database.php b/app/controllers/api/database.php index 3759c63ad2..11bf821480 100644 --- a/app/controllers/api/database.php +++ b/app/controllers/api/database.php @@ -175,6 +175,7 @@ App::post('/v1/database/collections') 'permission' => $permission, // Permissions model type (document vs collection) 'dateCreated' => time(), 'dateUpdated' => time(), + 'enabled' => true, 'name' => $name, 'search' => implode(' ', [$collectionId, $name]), ])); @@ -605,11 +606,12 @@ App::put('/v1/database/collections/:collectionId') ->param('permission', null, new WhiteList(['document', 'collection']), 'Permissions type model to use for reading documents in this collection. You can use collection-level permission set once on the collection using the `read` and `write` params, or you can set document-level permission where each document read and write params will decide who has access to read and write to each document individually. [learn more about permissions](/docs/permissions) and get a full list of available permissions.') ->param('read', null, new Permissions(), 'An array of strings with read permissions. By default inherits the existing read permissions. [learn more about permissions](/docs/permissions) and get a full list of available permissions.', true) ->param('write', null, new Permissions(), 'An array of strings with write permissions. By default inherits the existing write permissions. [learn more about permissions](/docs/permissions) and get a full list of available permissions.', true) + ->param('enabled', true, new Boolean(), 'Is collection enabled?', true) ->inject('response') ->inject('dbForInternal') ->inject('audits') ->inject('usage') - ->action(function ($collectionId, $name, $permission, $read, $write, $response, $dbForInternal, $audits, $usage) { + ->action(function ($collectionId, $name, $permission, $read, $write, $enabled, $response, $dbForInternal, $audits, $usage) { /** @var Appwrite\Utopia\Response $response */ /** @var Utopia\Database\Database $dbForInternal */ /** @var Appwrite\Event\Event $audits */ @@ -621,8 +623,9 @@ App::put('/v1/database/collections/:collectionId') throw new Exception('Collection not found', 404); } - $read = (is_null($read)) ? ($collection->getRead() ?? []) : $read; // By default inherit read permissions - $write = (is_null($write)) ? ($collection->getWrite() ?? []) : $write; // By default inherit write permissions + $read ??= $collection->getRead() ?? []; // By default inherit read permissions + $write ??= $collection->getWrite() ?? []; // By default inherit write permissions + $enabled ??= $collection->getAttribute('enabled', true); try { $collection = $dbForInternal->updateDocument('collections', $collection->getId(), $collection @@ -631,6 +634,7 @@ App::put('/v1/database/collections/:collectionId') ->setAttribute('name', $name) ->setAttribute('permission', $permission) ->setAttribute('dateUpdated', time()) + ->setAttribute('enabled', $enabled) ->setAttribute('search', implode(' ', [$collectionId, $name])) ); } @@ -1603,13 +1607,15 @@ App::post('/v1/database/collections/:collectionId/documents') ->inject('user') ->inject('audits') ->inject('usage') - ->action(function ($documentId, $collectionId, $data, $read, $write, $response, $dbForInternal, $dbForExternal, $user, $audits, $usage) { + ->inject('mode') + ->action(function ($documentId, $collectionId, $data, $read, $write, $response, $dbForInternal, $dbForExternal, $user, $audits, $usage, $mode) { /** @var Appwrite\Utopia\Response $response */ /** @var Utopia\Database\Database $dbForInternal */ /** @var Utopia\Database\Database $dbForExternal */ /** @var Utopia\Database\Document $user */ /** @var Appwrite\Event\Event $audits */ /** @var Appwrite\Stats\Stats $usage */ + /** @var string $mode */ $data = (\is_string($data)) ? \json_decode($data, true) : $data; // Cast to JSON array @@ -1623,7 +1629,7 @@ App::post('/v1/database/collections/:collectionId/documents') $collection = $dbForInternal->getDocument('collections', $collectionId); - if ($collection->isEmpty()) { + if ($collection->isEmpty() || (!$collection->getAttribute('enabled') && $mode !== APP_MODE_ADMIN )) { throw new Exception('Collection not found', 404); } @@ -1711,15 +1717,17 @@ App::get('/v1/database/collections/:collectionId/documents') ->inject('dbForInternal') ->inject('dbForExternal') ->inject('usage') - ->action(function ($collectionId, $queries, $limit, $offset, $cursor, $cursorDirection, $orderAttributes, $orderTypes, $response, $dbForInternal, $dbForExternal, $usage) { + ->inject('mode') + ->action(function ($collectionId, $queries, $limit, $offset, $cursor, $cursorDirection, $orderAttributes, $orderTypes, $response, $dbForInternal, $dbForExternal, $usage, $mode) { /** @var Appwrite\Utopia\Response $response */ /** @var Utopia\Database\Database $dbForInternal */ /** @var Utopia\Database\Database $dbForExternal */ /** @var Appwrite\Stats\Stats $usage */ + /** @var string $mode */ $collection = $dbForInternal->getDocument('collections', $collectionId); - if ($collection->isEmpty()) { + if ($collection->isEmpty() || (!$collection->getAttribute('enabled') && $mode !== APP_MODE_ADMIN )) { throw new Exception('Collection not found', 404); } @@ -1788,14 +1796,16 @@ App::get('/v1/database/collections/:collectionId/documents/:documentId') ->inject('dbForInternal') ->inject('dbForExternal') ->inject('usage') - ->action(function ($collectionId, $documentId, $response, $dbForInternal, $dbForExternal, $usage) { + ->inject('mode') + ->action(function ($collectionId, $documentId, $response, $dbForInternal, $dbForExternal, $usage, $mode) { /** @var Appwrite\Utopia\Response $response */ /** @var Utopia\Database\Database $$dbForInternal */ /** @var Utopia\Database\Database $dbForExternal */ + /** @var string $mode */ $collection = $dbForInternal->getDocument('collections', $collectionId); - if ($collection->isEmpty()) { + if ($collection->isEmpty() || (!$collection->getAttribute('enabled') && $mode !== APP_MODE_ADMIN )) { throw new Exception('Collection not found', 404); } @@ -1957,16 +1967,18 @@ App::patch('/v1/database/collections/:collectionId/documents/:documentId') ->inject('dbForExternal') ->inject('audits') ->inject('usage') - ->action(function ($collectionId, $documentId, $data, $read, $write, $response, $dbForInternal, $dbForExternal, $audits, $usage) { + ->inject('mode') + ->action(function ($collectionId, $documentId, $data, $read, $write, $response, $dbForInternal, $dbForExternal, $audits, $usage, $mode) { /** @var Appwrite\Utopia\Response $response */ /** @var Utopia\Database\Database $dbForInternal */ /** @var Utopia\Database\Database $dbForExternal */ /** @var Appwrite\Event\Event $audits */ /** @var Appwrite\Stats\Stats $usage */ + /** @var string $mode */ $collection = $dbForInternal->getDocument('collections', $collectionId); - if ($collection->isEmpty()) { + if ($collection->isEmpty() || (!$collection->getAttribute('enabled') && $mode !== APP_MODE_ADMIN )) { throw new Exception('Collection not found', 404); } @@ -2070,16 +2082,18 @@ App::delete('/v1/database/collections/:collectionId/documents/:documentId') ->inject('events') ->inject('audits') ->inject('usage') - ->action(function ($collectionId, $documentId, $response, $dbForInternal, $dbForExternal, $events, $audits, $usage) { + ->inject('mode') + ->action(function ($collectionId, $documentId, $response, $dbForInternal, $dbForExternal, $events, $audits, $usage, $mode) { /** @var Appwrite\Utopia\Response $response */ /** @var Utopia\Database\Database $dbForExternal */ /** @var Appwrite\Event\Event $events */ /** @var Appwrite\Event\Event $audits */ /** @var Appwrite\Stats\Stats $usage */ + /** @var string $mode */ $collection = $dbForInternal->getDocument('collections', $collectionId); - if ($collection->isEmpty()) { + if ($collection->isEmpty() || (!$collection->getAttribute('enabled') && $mode !== APP_MODE_ADMIN )) { throw new Exception('Collection not found', 404); } diff --git a/docs/examples/0.12.x/console-web/examples/functions/list-runtimes.md b/docs/examples/0.12.x/console-web/examples/functions/list-runtimes.md new file mode 100644 index 0000000000..a6d0099e1b --- /dev/null +++ b/docs/examples/0.12.x/console-web/examples/functions/list-runtimes.md @@ -0,0 +1,14 @@ +const sdk = new Appwrite(); + +sdk + .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint + .setProject('5df5acd0d48c2') // Your project ID +; + +let promise = sdk.functions.listRuntimes(); + +promise.then(function (response) { + console.log(response); // Success +}, function (error) { + console.log(error); // Failure +}); \ No newline at end of file diff --git a/docs/examples/0.12.x/console-web/examples/projects/delete.md b/docs/examples/0.12.x/console-web/examples/projects/delete.md index 1396b36b8c..506bba2f42 100644 --- a/docs/examples/0.12.x/console-web/examples/projects/delete.md +++ b/docs/examples/0.12.x/console-web/examples/projects/delete.md @@ -5,7 +5,7 @@ sdk .setProject('5df5acd0d48c2') // Your project ID ; -let promise = sdk.projects.delete('[PROJECT_ID]', '[PASSWORD]'); +let promise = sdk.projects.delete('[PROJECT_ID]', 'password'); promise.then(function (response) { console.log(response); // Success diff --git a/src/Appwrite/Utopia/Response/Model/Collection.php b/src/Appwrite/Utopia/Response/Model/Collection.php index 03cd8ed382..933b5f64f8 100644 --- a/src/Appwrite/Utopia/Response/Model/Collection.php +++ b/src/Appwrite/Utopia/Response/Model/Collection.php @@ -36,6 +36,12 @@ class Collection extends Model 'default' => '', 'example' => 'My Collection', ]) + ->addRule('enabled', [ + 'type' => self::TYPE_BOOLEAN, + 'description' => 'Collection enabled.', + 'default' => true, + 'example' => false, + ]) ->addRule('permission', [ 'type' => self::TYPE_STRING, 'description' => 'Collection permission model. Possible values: `document` or `collection`', From 66710cebc2896f5ac8e8276c30cd0527e456ffe3 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Mon, 13 Dec 2021 13:42:17 +0100 Subject: [PATCH 050/107] feat(ui): add collection enable/disable --- app/views/console/database/collection.phtml | 3 ++ public/scripts/dependencies/appwrite.js | 48 +++++++++++++++------ 2 files changed, 38 insertions(+), 13 deletions(-) diff --git a/app/views/console/database/collection.phtml b/app/views/console/database/collection.phtml index a8b59e8d4a..50dc439362 100644 --- a/app/views/console/database/collection.phtml +++ b/app/views/console/database/collection.phtml @@ -456,6 +456,9 @@ $logs = $this->getParam('logs', null); +
+   Enabled +
diff --git a/public/scripts/dependencies/appwrite.js b/public/scripts/dependencies/appwrite.js index 502c40d057..ed3bb1e178 100644 --- a/public/scripts/dependencies/appwrite.js +++ b/public/scripts/dependencies/appwrite.js @@ -199,7 +199,7 @@ * * Use this endpoint to allow a new user to register a new account in your * project. After the user registration completes successfully, you can use - * the [/account/verification](/docs/client/account#accountCreateVerification) + * the [/account/verfication](/docs/client/account#accountCreateVerification) * route to start verifying the user email address. To allow the new user to * login to their new account, you need to create a new [account * session](/docs/client/account#accountCreateSession). @@ -264,12 +264,14 @@ * Update Account Email * * Update currently logged in user account email address. After changing user - * address, user confirmation status is being reset and a new confirmation - * mail is sent. For security measures, user password is required to complete - * this request. + * address, the user confirmation status will get reset. A new confirmation + * email is not sent automatically however you can use the send confirmation + * email endpoint again to send the confirmation email. For security measures, + * user password is required to complete this request. * This endpoint can also be used to convert an anonymous account to a normal * one, by passing an email address and a new password. * + * * @param {string} email * @param {string} password * @throws {AppwriteException} @@ -1165,8 +1167,8 @@ * @param {string} collectionId * @param {string} name * @param {string} permission - * @param {string} read - * @param {string} write + * @param {string[]} read + * @param {string[]} write * @throws {AppwriteException} * @returns {Promise} */ @@ -1237,12 +1239,13 @@ * @param {string} collectionId * @param {string} name * @param {string} permission - * @param {string} read - * @param {string} write + * @param {string[]} read + * @param {string[]} write + * @param {boolean} enabled * @throws {AppwriteException} * @returns {Promise} */ - updateCollection: (collectionId, name, permission, read, write) => __awaiter(this, void 0, void 0, function* () { + updateCollection: (collectionId, name, permission, read, write, enabled) => __awaiter(this, void 0, void 0, function* () { if (typeof collectionId === 'undefined') { throw new AppwriteException('Missing required parameter: "collectionId"'); } @@ -1266,6 +1269,9 @@ if (typeof write !== 'undefined') { payload['write'] = write; } + if (typeof enabled !== 'undefined') { + payload['enabled'] = enabled; + } const uri = new URL(this.config.endpoint + path); return yield this.call('put', uri, { 'content-type': 'application/json', @@ -1793,8 +1799,8 @@ * @param {string} collectionId * @param {string} documentId * @param {object} data - * @param {string} read - * @param {string} write + * @param {string[]} read + * @param {string[]} write * @throws {AppwriteException} * @returns {Promise} */ @@ -1861,8 +1867,8 @@ * @param {string} collectionId * @param {string} documentId * @param {object} data - * @param {string} read - * @param {string} write + * @param {string[]} read + * @param {string[]} write * @throws {AppwriteException} * @returns {Promise} */ @@ -2234,6 +2240,22 @@ 'content-type': 'application/json', }, payload); }), + /** + * List the currently active function runtimes. + * + * Get a list of all runtimes that are currently active in your project. + * + * @throws {AppwriteException} + * @returns {Promise} + */ + listRuntimes: () => __awaiter(this, void 0, void 0, function* () { + let path = '/functions/runtimes'; + let payload = {}; + const uri = new URL(this.config.endpoint + path); + return yield this.call('get', uri, { + 'content-type': 'application/json', + }, payload); + }), /** * Get Function * From 32f894792d976048588b888178f9e5b4aaca24cf Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Mon, 13 Dec 2021 15:22:24 +0200 Subject: [PATCH 051/107] Updated logo --- public/images/logo.png | Bin 87987 -> 506552 bytes public/images/ogimage.png | Bin 676279 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 public/images/ogimage.png diff --git a/public/images/logo.png b/public/images/logo.png index 1f2cf818cf10aa3540c0109c0cddff6c74e65709..83d48541caf94b3918e7a737bd787adb1b002518 100644 GIT binary patch literal 506552 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%0AM|X|JYJQWUEi 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

~OXC;A3PsgoQloG}_zmx^mw>|5l8u_0hbtiPpD zQ_?7tz!OO~vai~8L(`!FMD{O#N~&{iSY#IDH-2p{KGLuMo(5O@fnn1h(O?pQZ8F=9yrh zaOYl;RDH+e%KDZU*Vo_Y?-u`Zt36Iam~Zn|=fefbkC4ziElddp-P5aqnO9;n@b0WW z=G$CMyJC}Soa$TorR|dqlE>R#o@j2<`lVXb;#y-JfpA*l4csi$(cts# zA4rEfO-w%xGo7>(715jWj6nt&h!)ac^JXqw!c#%I_~y_avMNs9RU_Tj-lE#^L6{=r zi)ezo{Vl^`AKGL95rVKaE>h`RGdMKGp4E<{yORHU>%DhQ8J)=b#?_Yp^*nqKqOqoFzh!Zw$m zA+F>cQhNAmU5`)I#!=B&DY~x^m#$3-qQ znVASDe@Qq$O1^)Q^(v6oK0?=AGu%Fk_Se7aLmMWqU1co1B5FsK9{7c8Pn6U7j{C2M zrpr8g3FQXWj%iIS9|Pr#XeXg;kg~RbYM!e>DSiKu>xd%z$%UIGI`7@_RjVuTbJ!|U zNR1(jc~J0NKRfWHYka!c3@Ik@NOiLo+#p4FPGR@Z<;akXM}%gyBC}! z;IP5B+6J@{czR2vd+fR1ftiE6Ud>3Mzwf$2o-VH_G`#taS(d#$<)}IVA?QXWU93#I6dYyOQ%?5B51cJs(>Yc<*1&+sR_2tr1 znAw|A-QTCMzL08E{@+DxV!{^2FnqpK(=hV)0|DmViTf_5E;QABafm;5%yMDNeXp>U zgcpQtfyu6N--*gbF+T_|_4|sii=7lzc<|7s zt_S5!Vod>5sd*>Op3nbU_%v9M!aVfLr8k4>MTnTUioe8ydC@*#o6@&P-JmW;2G$$h%%5?AaMs#>9I;RAQ&r}Y zPj1WlkQgOKp<1CIaJ%@=+_ixZ5Gc*d3?i~O8#eqH+p=eSDcH3r@kUw|Z?T3ISH*n~ ziGVM91#i4FvG-CQN{@7IuMA~*#$Y+Gq~Z3)N>PAL<=A(C!l?N}-;XMxZT=8hPX`*~ zHR}zEyy8^ww zVT*9@p#&*J$}NVLyu=0v&SxJ>)T|2LDe7^OqGnmG-UA_`uZ5(MMyGZj9Sz+B+8z0@W z@~>_SjY?d3QpkztT6=h+NUXjrVSGNyxgPnm9A+>p8tJRh@ac((uZ<{nBR+H9`ZtRa z26{|LbUYPPcdj+czFzyv2*IjOr6p)p0;v#NjcKYlOF&54{=oU~T_S}}mP(d$dLm|K z(K~vgu6kbJJayuE|MKAH4I&j=f2LZ z9%V+{O3$A^Uv8TM;;$6i{9`LV4L7gpHQv7YQUrz<)RWc0yt7<* z@I?c*a@4!AT|JYy1vv@RRyoTaa>TJts9lh_AWiPx$g#>kSgGbdq&~0)4O)4%4s`)C z`9*Tu*Bpaao!VqEt~qv|yG<7(^avD@tbAt(qA8F)LD^+f5?8Dp+(NFK2HI@qtjtl$ z8r(h_4D|}~av;>0|J_#K^GLDtOm=Ct4&&AGzoij&Rad(bppWWP zo$XQa^l~F$g4ZpwFGyx~eWr`@8e8AjD}xTfOJ6Sg77LLbJVZ7j-#nj}{$6`bms^`i6LwS`ylL3O z4gN3RBrbaQ zwfRp9JuEafJE6S;kJsXZeq5Do8s9a$b5U=X?`9SW0r=CHS;A7eu&~cNjI9r$-|=RL zEULQP?}jhxE3@(4uB~!Zk;}YB|9OEK6?$4|5=N16xK8Z*&Yxh7&3c?TE>Lb3^1|V zHF|d3m*Ax4EXXgmchp0T5G@-#{xH^y(S7dhc8ZDuQT?t%S4f^7)vVp_lFa975Y{d^ zT7|k%lcak`D+Q~ttVZs)1Xp$)&;i6F z2j_C6b_-9ABzF9vCC@XnP$JIHBO&h&SmJPfyvR@jxlvucibMXgj2`c7JrO;@`w5Ke z)^1qFTp+&Pixf+nwwAK6^Iwu8jga}A-cM@{*Z~We4%uHDz0NMP{7&*#mqHTqOe0t{ zs?-KGp&C-7-!X<)M5ubOgwxE^zkDN`Fl{j7*fPgqGUH`+w(l1VX;PY>1nRxHOO{BR zvZ-rG@5{*(XOpOfwrhqkvoPQj8TDlSULoy!6gz`luZV`3k64?+c+Uh;+;8jcQ{>V1 z|L@VuT~h2opSYD&gkq0`}Ua)L=n6@Sd?voVPv$}Qg4=GWE4uPH*BbZQpS z4t{FBFOUmy3tUzP+wzAt1*(xi`H!ErodWliZ$&b(icO}wW(kwkmmtm07qbNZk1Hq- zqvsC)(PBK*v)kLfM^J0@{7hQ+Q7+!$W2Sre3(dcsg+6W)Ka5d}k2k=c#t``WM;i68 zua8hg%%#3HSUl!QpKsvp)w{*F_d>2d%T;0Y5`NFMsOOrT_nnjFEuR7@;{tHOhoj^z z32QFK`sWXAL0Bm6WquE7Qv$1D@UvpB_f6h-=k7`My&+rMr|xMkmf+F)=UWACF+*9s zuYl}(arnOvY*#jbzd^nHbv;ah2eL<1K8Xyq~b)2nb_-XV)u5AW}{F;R++4(q}f12jj64E1~#eyO` z#;<4yP6oUyPk0zbiK4<@V2= zKf^d~O=8wjk~usqGzwb6b#ogmg)?II@ULWK}XB467Ne5{mpEZ5`J@r<$icu zxn!PIT$R;-xg;JYFAyy`C)zZU$PM3~y{tbM`cs%k-xS?YYnz_>~=uSg^@}R!4$*~=5D6D$( zPn*24IHrDx+7IpK*>pABOr+(7^cUyOi5XYJUGKH*$Ihl8N7*)C<-JI!XZJA+Xkn;X zR~>G*w*&CW1t^7uRGgW4(hs2RB~TYa#goAW5=TR74mPw*TcO9WTAX9)<%9E@rIpC8 zs=9$HXNOLWr2bJ%p@N$Drd`*rF3+ALnz*%O8$J3anS;cz7@4SbbkD?FbO}k%_I2GU zCzS~kCF9z)j_;ZoH%3=CuKgur$pJ$K14i@QFF$|zV0|7&c`cn5AjVQ$-zK6_LunoE z;!%#z#PtRo8SU`aDZnKnre_3XWAe_C0qR^e$|k1WzSu1Xe} zg2=dkHeKZMFHS!oL&f-i;ap^9ah#B*jZk<2Xo42vF2K2yiH7Db0nQZ)Y}-^uz>%Au zgF-R^hJFah?|r13>c%l zzKy!rl@sc58Z6LQ-f@PH>#PuycxKh(kByv%XNtse|t z43*9k>n6xjU51;yy05?U+4e!-*1J0iZ^x=_nl3l3)5rtw^%IW{<_%OYF$;4*o)@l& z{Rf6`XT&2`mKa+^KJ%kPM~NF9>iS60ChkrocYsLK&{5H3NS6`1>7Gbai{9 z0~d@VMgt$3OMW=_Uv;aH&93Y{EkisVidbNNwG;batA~~gk6u~X2;yfnj=nWmii`gR zVoIG}*0W$4ibPk*^EzF5EU%7>J0U)7qZW3ZXg1j*<1+&ty6hT4%|JoWuX1X=(v?@q z*IuGlAxoFeExe%k&u zd}gG`^-|j-vYLf{hgcdHb|3xB3dCbdLiZbSd1-b<8PnnN`xqs8sUiy(a9&kp@q0`7 zmm-yO;xE8w`2NALisn+}MM?kSx9+Z$eV_TFcS$ZUV2R48E=@n2v8t=hKZlKv{cn@- z!w%MWTRX|?kiL*1AuY|&>a#9%89`9`m@?+=mkczhn~V*YNwp(o)Wq;)b-M(UOT0}M zjUi)BC7F-I%!tV`K`rg6xDk-DYT8JigAp=us`-|`uEbyaNoXGY2%l_e z!kH& z-o#&K4i3Qg=U}(o>{;4d3g5FWQL|0LiRQ(GsnPCe^qfnG&>g++OG!(`Jfo8BB@#*T zDsy$!(jr~CVP!)<5jhzu_V(5j7B=^g2;S`NePdG#oWT*W2q}iOz5tc(S{^d{QuNN? z-WIFzCamlGhMA4Be{i;6P2rSQU18(f%COYB=XKePNFqYL?Hduy`IQF!*Z{qM#G>AS zU!}o9B@!`j1sAV`5RrkjTk+_z_SwMRYP4>#ldU6OW7BU(bLwc7e0g*GB3KkOw zA$HBfGQD~P0R}|S=get(Tn24xQ|imO7i-6TRHg9$)9-zRB;T8tNKPVRi70DFP#h$F z{zUoW1j@!tRN?WUI#J8rz8EYS2}$D9dZUc&Laa)1$&CuW>M1n?hj+wftG z9v?~d7bytHSo1}jmF7SOVyBU>xWn*KRnjfLTDL}&))o>zJLU#%b8NdRHc1w+WA^9 z^vS==%NkDcgGJJ$rz-q@M;@p9CG>>)*P9{BEbhTLE2mtlMLfMH4#Y&+E!R%zJ3P$u z;Ge%EqJ6{z%?GkAWqkPT?uz#Yre>~weR0heOf~~AQ_o6tmbd{rzGY-O_)l?fed90g z2}r4#V4hjVSP^09^P)3n_-Q-5l>T}QdP@-R_Q+0rExF{lEA(7-n9DdUo%;!BxFP>^ z<0|siAj;>Tss_2D20`|wXfa~AP3>q$-1`b?%3u7JjP3UI1A1|2-M`004eCYRSG>A| zY*CAl*4|~zFgpW}w~y%{Kz+#V^TXEwLM|h-PXhK}To@d5B*=bvT`A!#bUktUrAb0$ z-kPk?i`mIdo36z>VGUX-wW!+yT+|QUZcbPq`oUGHKmJ_uh|-F266t&;z2!r6gFjDx zHO}lCaEzT>@4xJL8OJ5C7rgM$AynY;{z?>>@a7g^pEr2v z-MG+WD}cU2O>5MQ)yx}kbKy2F=@BPIImvkBUeF3HRv+u1u)_9cBs@#l7Y_s!by|i- z3S3!H9W@C0lc&$=Mzd-jQe!-mE7Ps1xK)vus5<~h14e8SYqEdUXfKdf5oc_y9l=M^ z-W;kV^+0(=C|=vON<1efH!Oo`A(Z=;j_#eBipy|Rx^Aiq0Pg<eeW zN~c$$b4+M_3NX?5Ojnl3dq;XaLg<;H`^9asMrLjKptv3Y+RN$?duZZ=*Zps!;aIdH zYATr(QxvKm6H+qpGQhHg7~Bnjm?_>xkEA+e zISr(=9JZ=!a>iXrbi(qUZSw93rcp$&zktl$)%0V3iEUk5{Nwo1(+JJ zS}eh@3Q-$erHAY(?74!gv%)ag+ERv2ZPVr2mGr>BI*Dy<23z&1IU%j%Afz@)jd;ju zmioBwU7GQ3(JSv>eCmc;)c#yl^N$7b1t{%JO|BpNmSjwusWjD}5iB(QraX{eFE7XZ z_LBi_p*Vz;5_Td?|=U`-Pl5{={-f0!<}(mz+t(%jgw&dW16(goZl`DHZ&I;N7E z7kZS-QL_(M8x|E`X+1UF53GSKTF{%b+McHkfz7FY<5w@#J#3Y|_sy}(IE&6lOa$kB zP>?B6FN0O?CFx)!bi}8B_7k}$-6cwGe0Nu~pTyS$m#T;(WPMWZI=7V?P%fQLRBC5A zh1Zp4=PS`<^qnA2V4am&u%2dogfN&p;zt*y&BTBkHI81vtqZ z={7!9^*6hEg?A|BiWkK_3Aos~lx{0hv`O5tIPOWjchC=pM|DaIr7lcMWd-}u?`Mu% ztltUX#z+s|Om}&)1fosDCg830{)W-(LP=0+B-1z^sy_`nIoBJ;`|li!O?2oh0n&8q zm#&az{EI@fOq{+cTfgXSA6p4Q8C~3ITNyh72?R`8ijzC-HA^>o2FrYmQfc1XOxhi> z)8vlDGg$??Dv43dWJ`pEC8gn`J)(J++Y=V*A_{Kuqe`$F{x0Ug2e-|iee5Pv@pV*+nX5*{i4tA4G%I^wUr5nDJdDfE+{Q+eMtDo>Z? zN@7Z#u%W+1P(fQToAx`6@lg=Lzqvy4K6&%JwDmD*6PFF-3-_4~pt6(h9WDT|z_2ow zvO}HFxa~exqy6&gW0KtVL!60<_+9mcY#aL7w`*KylJ8S~T(;lc;Y%ym5+|w$Bulp7*4yO}o;9rMfQ}c6&=ixGYJADr!{84J>-iBE>hMXW;Tu7&#~FGb!2IWkUm0?efD% zcr~|yfbI0|AJSg|tu`S~W93gvp7MY@iNn5$QjEqtN{DP!Joka)D zJj1%n$&!CvHH~(P)nmqf?$vuF zV(Zq5-k2J8>;I?BXGwUh`3cqjw`7?zDEXX@l$J3)$A>AdqcK!nf2dUD6^%_^=@ZP) zYcQoR{*kum34d$GX;{}4^Wp?w`D3^aX%$uOtG{`%t28~MrQD#`Y<|xA z;1DC2)dSQB1uFW16e&KN@b(dlp>>-M(W^PX$zw|h+&rh58! z7gB>Cqah&L+to4eb zR*mt6)*K-0M8HVnq#r{IgI+J!pgg##uc+rI@J^!Na zWwD=Z8vQznnn5aE&u|+X=w6`t{`%86q^Q}sqLE>g!Eqx>T0EN29%{BC8tQ;0-&(sA zu9!{3^bU)C)#3mPE#HO3jy&Gga`BweLA42p%4WVt$WD{xy*9~26Fb_9Jwb@$DDRxu z$>6S+)X~o~5$Y07$HCI3KG=&GAz==?>==0&kgBZy8f9WA4Lw*yWD4|+Zu#vsDHXG; zuYpr*o}5Pcrzf`0{J>kkqq}sJ!RTwN;IPi`XbRyDQvEd*z(XPu{-BRltfu-o3N4?{ zPR%78Ms;H4F@1<59>YH1c1Q($o(#FySxfUMyHn5VV1DD$k$#iREY{hjB;@nAZ+`dx z=!*B>SV0@1RL)+(=={6-f!NIuHlNZZwq1_CKxE1 zFOD_n0H|gZU2MT$a$?t82r*0Bb(3lKGD$5Tl7sy;b(gW{T4Om(Ye-`*nl6ZA-C3D^ z5`1)Lr$cr{$<>9~f~p^z<_#Ts4R14ZicRx(o@*taxjQaY@U&;WsSs}d66j>|pqS;0 z?#_~}%2t6`Y$=j0#)28J1y~}udosgYmE1euRcRK_h_f=@02C&X2o206YW9^ zK?MSC?PnEyXHqTrOqkRO5j=DR{%cE24jwD!x&K;{z*i!Kd$>>n%zB$IcH)qpT~70#%CnARRtVNRZI{E` zq2en0zG+`CS1*~y@%zZ)RUX`?OZv0)H1;Vjd%GjB$M>hz%EllI{hqCD%w%bJWs-rA8msAzaO1aE{lq$V~mefv$wahLwpbb=t z`A2z8FPTj-^MFcU`C349VR*vB33ti z3hM~oI`>)O&=03o3zO$)-D;D^`x8Q_H?(HE#ngwb&fjU7v1B_;gleR$C5#zlVIFtU zn}SsXjQY}K__mZ0fcu#WfMT4L9v%MJfp3wbQ$h2Nm>3?mELmEll=aYm!k-3I%d8;? z=EqGm{@{WMD(_)BGoo&kZ(APs8Vx0JVSsR}HcX>rb)AAcqyne4-gp}`~)X^$-zv}73H#zrDX#0bBu zZ(*zpnq*@BoLfuVKaqSRbUd)X-?yoW_R3a^(>*Djqg70Y* zr*O3HxN_n6ZEV*Ye&7oh13Siu8%4z~U$RaM&BJ(@sPD5`AUXMeC`bP<`grV6m``(f zntrcz{Pp!kW-!?)a#U3WtX`U2jA1MSG_A(`s$!ZPEVl6j?Nt+!V2Ol@!B?5tHAkjS zgHv^@@#^ix+)v)84uF-G1*G_ZY2sLJs$kIsp$!ClA$7J|&B!&xB<)NkF!8&nUVxuwk4 z1JbqQ1gHFaAD29gbc@PqrJ@tQujagNbF6~{pLs5P* z0xw)l^WJ~>c2rnt{A|%Dc=5Y$jeQsFH4?IIbfTeE$Sq(LP<@GYKbM#LZc+@{k&`3c zVG8VFlA1aj_vc3y*j}ExE3Sv1C1*E~;P++2s-3;+8>9D4&6Xu2o)K}ht+pX&z=r%| zm9+a`WHK#MeLtF{E;uOe&aPw+pc+b%j5?!k(iHJ)Q`@uVZE0OPDKPt@1S+wUu9#Y@ zbFafu#EQRXZ;uLb`z&Gr0%jpxzNlu2t!@y5;>ID()8Y z%qYNR77m+yV~R1ZBG>c?5@4FatNf%){*$iXz^w0Of~IjxqsOL8sTH$R+bw?TSw)V5 zC0M<4L-mb}MM+*U4IcD$o_a#!mvj5@aaWre>iPDdXzy45_8#lj%Ayz6c%&Z zrvH6`fE<1A`aUjrgK14GG@hz< z7SroI|20UsYwEV^F68p7 z`#&65;OzGErGs#VT0p#hr3f8m9zCW66cXe3JK09G5s04F6uv6+r|; zYg3X}yMW%#E2wmXcm=AA2Sl$%hCk2>hemLS*r6x59)*3!jvm9$!1ycXJWRTuY&}ro zWU|0C?GkrYR$r)ObA$3VQKBZ9P{Ip?%T$E$7+qQX(^lGGlv$Yrl00ZjWxwB2TC$|( zuq&(u=EFD1@*Z;EgOc%zXIN%M4spmKWM>&@xA_7`UoIlml3Wd1wDd+sS=j^}N z^cTI_Ib_yOPn2T*B-7|qMwP@VCN`0VqEriCSVy9sCTyXGSpw?a-w$FOC%tX4Sz}_W zxE4?ulr)0+-{uLY{+cD&mJcIVD-6X6tl^y`*SKd(>g731F6~8pH4nNt?7q#x@yGoA z>8|t@+x^gg1A~4h$~AU~kE%dJVkKA^WdG6Z{5`k7^$E;XKzse4N3!AB_qEocw;x$K z3DMQx=p>um&v<-?l`M%GECy?XV=0OB(LTDOK1~@Iyq-hyxZBi zSyi@iR@!ekJgIp`2CZEB8DXVVYw)zSuwL8)Y`fw>_zC|9YT=vlciKlJ_Uz;H?CEQj zP+oHkdx^1837VdhojLxfsi?#!{kMX!ej=X&2qTz?ON$48a?k_#om_zkGPz%9^Q8V~i>HlhAi>>=++U4ali*VZHL2P@ zLpT5hD*!}3CT4#4HJd>60$s#Z1cqhvQWi5CEqKdzUTl!cp;p7D@HW0oqr&4$L=Yq#RdLzdCituS@fm<5>O z)OLwqqTX0>l1NSf;H6Q?n9`#i%(6yL6~cISL=YlXXO3(_hcBd4OT95Yv8!S z?6o-v>3a3a-Lrf_(@)p1FV;zs8_BJZ{tX6bR&w`XK`SB3Y<78^g{`vKuy}mM#sUrB-_v zbzHh5J`J_u2M@l~pN-c!u~F8mf2EYbSt}Dr%lq3=-)0W^CYZ6AnHDnr^Pi^EjSWXai#BAQ^cBySV#vM@R)#eOv%}trL%%b( zbEt+EAcvA-m|Gr3o4DH#)3Djmv}{1#{c3N+yb%*}!neK{maF1*w$mYo=k& zUS-(I==SPikaLp1goJfc#;byt^4FioaR8GBtXF4Go%cL+cvD%ino*aZ@a|40_lZoY z^zj%lF^NLI;+)iAafN&alQa^%H}#@AVw@6g+hz3mnSz#>(35pxq8cJueQ(PXoYUgc zv*QD)M85fAe%#r|8qn}1r_VT4MlIirxL zl^xie)Y3JLHY;DO>F+ezdYYr0_DR0OAO)xY(}A5xfG??#@Tvhol6XMpu5Sp>bI-ZP z=+MFlsYBZZj#Tk32Zoz$yZu?iX`ge2#Nx&wEeAGzDGe~>R|>o(AuKYwR-t@Cuu z`c>UVf~31v!j5U<&0mTC7`1+FlYE=zB77naYyPy#aNF%_MXJGlt?{qOxgmKUwtIKi z1E4e63z_90=gnIA-i&zJ)Gd64c|z_@u-==cT3ff#&8}{&fGlmth7bIaWUoD}9B}rP zAt^LMjPTP!N~IChUq3xj)HC>d8#jq=+q>l@sKVPmRI7NfedX?N%zx_q{--u~W*UKM z5R8Auzf=~6PUERaApUM^!S!N@?Z)>_>fl|DQ!qrF^xm&dxflPPU6#`! zLTR~xVSXDjLv3fW&0vpQg`!N5JWQXF3C!&ZprH+nySR&Qw|Z3@zrq1r%ox;QAAl`)92Kq34PPDIw1uaAFo$CLNG9`epx ziZ0&#dX|=g4rpUtp#{-_{RN!-G)&|j>_PpOc#!4%p=I$oYieGp2BX3^)Z7|Qx2TANS0OB|R$V}sThXsOu+CBM)5I4n7 zlB{#s1r4{S$6GBkp^>XCo=0}Y-J-t#dO}Qnnb4&k!9Y4i8Fj{J+~z^oJl4T~pXZ*W z`=jt|-vj!1wRCp)KR0b#Vvvh7l7bcB1NO+1K8{JR;~YsBl!m~&RzhkC(jTst(R_}^ zq&j~4p|^*9xs)=P=CEsnU61oUFB}Hk93hcGC;cQ6p7xXr{X?xK?Rlb2=-hORU6-!d z%WQ}*WOL2nr%2dwZySQ^VX*vFH*FvMp)M_^T=D8pfuvF0OnZ<-aMQ}cr34MZwml2M z_|sOW{LQzjc1_1BNb+oa!?gDD7&Gity9KRgu3oC6YntL9aq(`gxNkA~p?{$zum?$X zZ~e6Y%vh#pKA%bsQRb-&5_)Anzf-dd7Mr;i@;+=|mk)3J#I`@4K$XgBZIREm`DxNi zev@PFg{(f*!y3`|rw}c22`0NGmJZJ$hZvcEez97R%F@xW^Nx82hby8$ayZNyu(zk+ z$;|jMDkdShhB6_Uazx#_z(4py%Nt4e?#}w(Q(VKBdqTKs{yNZh)I|O#W^_i(JiePh za)cYI<`O?_3VAAhc^gT#FzQl&4D*t$g4*Tz|6O-@7Ihm?sAO;l(}aakL_L@9Zq4k1%VqnQib6rocJ%jxO3U(Ti91Maqxojm5VincPex)78*7 zq?h3_`a&jCEGZVx|B>tZk&;JH;5C^s(12)KDo&HjbG;jUhUb5_!CdLR4NRA*zqo&N z4cs;dnAHRB22sa>8K37*t?mi*8{8y6-%r%6tb`?)8AqvFKI0h)E)obn0h0?*ha`9JQ6I$@j87>RsfZ0F*L~u z#NI8$$)j}5nqGut44lg(lqwpnG`o+vYr9t9C(g=fs|SkZDO4+8IW*v~v}tx=4%;J! z>K8(1MYC)>n(jMjaERQKoD|M-OC{A&TX%n}aA%Bu&hF6-&pBR{982>?4{B}m&gT}aY}73^ZVBq>~sQcle?!Eh+i zq)Z!kIE+ya9g-}5kq}KH&pOg4cIgz(0NHNVkaPv)7{)!kmOCA(ad$uY=Y#GLRg3sp+hHgu+*{Jg&Udp_4D$?^)c|zuY0tcf;cG- z*yfZy4@v$+f|uCxPKzvj%G)T09+QaYB4awd{z=TEX#K+-WTgpWE{mOCBmVD(%JyfT zp1%c{Hp~l7y(Y+oD|HLo9y_XUjyFDa@>#t zBJ~Sdc7j-)FG@XPFP0`qF4G^V(KMOcxap56Jn=*C){I#xKi5uTZN&ofLv|U`QRb?G zKWAFOt*-q-Gl@K3(R1bfnCvrBIDy!9UPelm}ZV)i_t%ReGaHsi0 zuhLvL!<|Rfw(BS4{>3i2djKb52C!}Spq#5q9pz1u^w_EJpL=!|5+!jA#9yC1rFgQx z|B3qbxj*BT&q`>?FER>K^znVm^|ie*bMzpqo>lQk#+$k-L0lP4tPZKJx(}QMfi~9^ zM}+-6LxtW|rq4%BPCJX&gV1cV$dU@f+S|{lN-K9#A8!yQg+{(lj==R2WIpHSiOH|d zJ=3P!6~^9W7Xn{x??OwfI+P0Zn%NUEdhD~Yaa({@EkiFHjdp|(rpRr9v)g3zOFft4 zUfM;eppEQ2r@Y@v(Hw$Oa~Gs~?Gs3XW)yWjaGs*o?9Um+m=sgYNIdlz8rVB_qUJ1H z`=@!yZmTI|%z4fw+pUobqFjv8Ak z1IrAbSuUfIhhAbxHSA?u@JjbL+osuS(Qd7l1DY^D>Z2l_P@vi;lGH>yAyVwl%nu)s zf-I@OZnBSRv~sMEwD7l*E$T_ietgF61p$G3sja^}>%dp*lt9N9@Bf>&^2(5hIPoa( zwJQuWg#-cVYtFYZ8czu;plW69aY+h!c6)My2t4P!tW1IM6E-&wjhvsID~I8TBxF}L zuBH9scan5_YV+N+b30R>1i+QiFx?Q1B{Po2^F^a$*?QFGl`~Zx)u(n24Tc71^Y)t= z4p{ZZzJc(rqs-hG->2&oZJ_cHMin208#B=H#NV=ti%XDZJFBCj}9z9 z`_GbOtg)lcjHQU>o0G*r25djcRn7n}uyfMmo0iltEzeEf+7iu|Qx069r&Dvacc-#O zLzrUjK=q%~E!V<4m+Z0a#QEr(ZGAonzI`a9Ixyo(qZietrxLWf`Pluy{EP5KEmd#f z7<1>C;7=6+UMUX7nn8x{2)8fy=9QZ0S5HC=bpQ4ihFp>KpSh*EuUP7%slb||o6T!d zI^8wX7A*Z#7bM-H6eULUPf?Y0N?_)Jh1-3eCVSR_i_L2(b9F|nhZQlA2qfTVy$(V5 z0N>(U0#e-^EZ(2Qx8wMJfrX!cFFX<<(q4# z)#1}Aq#J)PbS#M*4viFgjsJf6P{-zjlMINUN)_V$x(@rx=jq#zA~SgbTi#jfB=s$XSd4QmPVn-n zT|gzc$9*hv@vF3v3y`k2p?O8vm-Yry?u!UnJJz<@Zns*oc32jZ>00p>J_^#1R+yNn z^@B5feNxG+;G$CRbwE`zF3%?y=%AX~!EbBnwRVRQ*tXK`6NDvB@XMCQC?E08%Cek& zY9kngW9KGC)9FqKoW^6~uAt?%^0(VtIALG*JhwC?sEj{*_0&Kl$- z%*D@iN$SRk`^0zu@%$oDk})t9tfpPIoyy-#D~C>K#);n)nVJu`R?9h#o<0 zxt$_3jf)7U5M#Oj5a)uoRCuZ8(MuJSzlGNW4~WxgIWlbzH`w z^ypoaTfe;gfJUlBw(&)Psu$SRgv(AA{8Y!UQ~mXQ*vA>QGaWKlZ@pJBG10aP64W-E9zOG+?OUR9rfF^DCZ+Adm zkUN%C$3)~Whvc+wXi`YD5WSo4mE*!b^6%wj*JJnL-EmNL6pmTDJNEtTG;ql{)as}m zGYC7tZ191ZsrCy^c5?}rg4v5bu2&W9^ z`{PME=3@qYU?VbVj}8c+X&p3jxcC(Ny`-542YQhf%&y$m(aGAvO*GHj-UCmlmuE$j zzxvIIQe%7;qJB}<#yIzLDxa{#@uzcU#nk2WY#*<$euuv$;;flmohSt#qkyQ0mxv^} zpiKgU=?yk*QXn?yHq~-8`qngk+R4Pj!mjvcd7T;q(`ZnokGt_`IDBU2abW0B*9STSbNOyO4DBU=ul!SCjhtdo%gmgDU zHw^6f-uv0TyZb-P{LVQ~e4qKrtK_u1nL}21j#9y3QE*r7SiNx0Oqw3G)1%P6hA`Ii zoj6zTQYwy454Lk_XlP1NY<+!8V{WoH(r=pE$%${aNDaEFOMZju8@DUk{%M7b7(#}o zeAtVM%+-92&Uig)QZ*j38PHo+2qvmlI;U%ri-AgoLI_>J25AN|DAHif*4RVRclB|7 z@77UAmYLZZp7rj0KEMAsuy8<9Wh%{L#zV;|{G`V7M<$YhX{SsRy=Ju-OZGCOU12_T zZJ!%LU+ke!8uxw%n%S)80~~#o#CsuDO^f!WzJ96+a3}Ov`21g__Vr}KZ=JSprUaM# z8l1NV|3v!e!Y6K4mHA%XbK?3i~F?E(0Pi?ltQIr`z2Y+Vm$ z-PI_*$+_p&XqIi&Ox{uh~+2fvq z1Ai~1*t61FS5+K%^;7KT*r)@9gea_%R%L|*0HEgaNvu`O&vy!;#puuplp6hEv1VjV zB6-pauT@yL!>Zf0DePWt{+CFTut<=Du@A(KHr}}Z%2C3vOn3P^vWEG%R>OYnxw07X zmG#pN{VWG1O(N(mVk?ev&GK!v!F8!pBlX+Yw&`>@VmP~1>=^wM_N9SyXM3NyULK?; z3gM=TyscakM6G$k=g7uFP@joc8TPd0bg6a#L8-T$nmQ-Sy&_miEBkZD+gn$-SbC1p>;OD)EHp;6nnWw$qI;kR$k6lvyi-i3F>RBbFzN^>!biI&9zu0T^B5VD7HG<0 z?VhI606x}63uAOJmr2&ZoZ6r5G9=SV5%4QlaWgq*58lvmsb`AjVLg(&-1e8kiMkWN zmz}=F`0k%at`2b~mu_|$0Xr>gwb3x6$>4VHUEWV}GT6$5|MEq?iMx?#_KW*t)wddr z+P^U9=5z76(h*Q>73ocu=9e`K7N67@(pM5UCuT?o#Us6%Uk(?=Bx%PP+@keC%kZyD z>jO?8$d@nF5#9~W)(M@c*kwn5H}oSz_x)>Zy5UdI zVNd&R)0;h4R+7WY15?pr;nllBpVK;vTzQw6RX5ttj&CDOn_?b}t!{I1M7ITmu!LT8 zxE})^Z?5S5oEoszs;++~FutXSfXyO*Nmx7Ddg8~g{yD9lk9=J90@&7b)&*W|TUT9( z?L;kvZMGt5wg0SSPCNGA8TI~R@>@yfp(3Z0`%ilc}M%l*2{Cgg*0 z!c+NEa~D3u0r%77eDbw8S5|lcwRAvGA2n8`M(Ufr9q+`uGFADzsbi2OQ{UU#YxQ+xktGN%B`D#hPLyNt5aNJm~gA_Y?mv zYm-fDtY_A>sP{YL0-403&wZN|fwZ99@q>_oA+8R3%`~vqbLIeZ_2-4GTu$C*`lN7b zN+{qqL%CAXgDE$YsPP(m3i{&z4&#I`zntuHQ?<{7pb>4k4@$T8ds}tcP&WSrhEc7i zY@N8-ua;oY*aR;N&}p4bf#1ivG!CI>?}?H+4F@;b^C-=^0%}u~7_)%Q6Z6EW$@<^a z=RMMZ#7SPdwUsY(8yibfg<>m&sz$p+%G=5DHAH!If zjTMfAL;q0hkr@}^dpp6$gLLF$SdT+Om7SARR&HA@e;fyzN zi2EsWY&%XN9dnB1O{7P1WYLM8yQmlbbUKgsFcC|AgFrgPW5zg<1c4D( z_ngbZL5b5_$dH@gwU8R3&qE?wZDk*EH-SX)4)I(ti-K5Qo*_0LcaH8Jkw~;}^s|5MzJwE3LR`3mfL3ReUOXWVt-0yQxSx zQSevqrPgQK!Lu1RB#Q%L^5iywJW1RDm&*0A0^mlD zp0HZ4)`XR)wJAziNwivnV_Ub;%g&_Jgqq;ZZ%G`dvi{OL_5zs0=U$)prIRxbMrKf{Ig&ifxCX=IhpcIqI~fu44j8 zoDw;*9=K+yje|f0k0V6vMySZWZlM98+Hi3efR|O`H;LhLiGl>~?VBgXJQ!>&q{+3; z6mKxyF6@7(d_xCQtwk-d&b7@vLcX5k=s4fSco9^ojy(GU?6oQNu#?rtMg0J&<@H6M z>jwGHdCPyL!70*(vK{S&7Qa?htZO|0c!}l9PZ9TZWm@mr+^D@Nh(7!;~mFVc~^gNE~*sUs#{gBGF~CNn=QhLf4$Q+?VZ-=A!>EN zsCpeQds4Iz=``EX8t}L-oMot*A6r+hR4p(X6j#!7p6>|n+n-mbJ&V^kqejcYvFX}de9!CVln za07~%0Kk&3Y(;n}O;Tw65@O(~*+9J0uS2g|bx}dxUu|kXzmVm^>6uZL-PY&}2y}C$ z4LCb|Bid1OxNvwF8dF>oU64OL3zvBOvqlhLRfG>|TyjH@pk5q~@X!TCJ(#U`Bhr15 z>CLNULQ#{2^`eF%8}h*Y1(bw6|MnUP*6|8DKcnH78h}q^SEo;=&A!xN(MkV<512QT zm*9an>JiVqHNz*`+28KyE80rDpJB`+{`lmX9{>!u(p*L=YV_-!eW_Sd$r&x29R3e+ zr|2acH0_kQ#mn}K?2(+7UtL$<3Vc?!gR_4$stOZO5c)jla&|3GU=~nj`LQ(>W1?i; z9eY^f$|Dz?PV-0KzGZ-!m<{ttZ;oaJg9-ClZadSsjIST0T zJs-cYg*oD#8Nq%<#Ef7vS8Daqp!Ft8lU)ZD;@8&JNT1yox*x-7hF3Z8HANJlMN*i3qu2VXQccHJtoUMn2R`gNQx zVkeC3hDS*Xyy}}y(PbXMPej+beTY*we2-$vt(uC4C*91}*O-vXnInNrmi85+bqq}o z;yrJcjse?KNN#5lBlf#k8kq#67tx~ngLs0XuB9+B7_nb@zMA~`LONfRB>OTHxR0bD z41M2}pVhQ~w~8cjXvBM(Ym^Sf*>ik|2YKld%92>?AgUYF_)IKfWCVO`TWX#mZ&kg2 z{$RA}hh>^F%zP20n}1w>tr>OwA^EOU!H+2~^B}T5ASpnEstxi1PwxDm|Kb;T4-gMD z1&RAvyb!N#m}x#vlQ`BVG+d$8tc$6EWh>=Y3pQ>!_oL(o+I6qU&EB14AP!V-{V3zD zJX-lNkC_P_*)LZoE??fbVpr(l(;Cjx_B5hDKrcm38qs%i4LrfNRPQDAk#jt%HzE|_ zY!2ozsg>xazFH)Z)%k7$@h_OL84_g7)5Cpu<>~k6r@xdjYXyyuGX}TWLi5p03YO0x zF%>V5@MKS78V+j2j7(5@v&0brft5SZ4-SBl(O$_0zx$H0pFO2Th8yHR-MH&lTz*~3 zp@8&2c`NxB;u3|G3CFp_W^EV;+=cN^Wp@ny45bePao|4*i|Gm-Kom#+p3bgcxc8p8 z(!U_8cJ79ZV+4|SZxDY&vzdP=GIA!``)@4GyN#Q(F=H0`NpW|PXGrXZSLxKGI$H(V z@Vp9XamZnul!&`L8A?>_;>rej%QTn82gK}DPb`!2C4}dAnBDnWq zG~<1eV0G|`ZL>ec3gLt1&33}>w~vXLula5hmSh66=f9_{oV-A@`(7LOKcmax&%_F4 zf_c7uOu?2P>axPKE4lB}r?Ca(V-#xFF+Ctjr{nCmlP$#sn@9mVxG&kvU8XL=)s3i~ zd02w~JYOp8`uIq`DaqD2{*n&gLF&E^q?}a!v3BXd z4YM@5$GtN{DaZLi?nMH7^BYaqZT912;38{w!Ag;vy&O6YPplrP#Z6!)p4B&;M zRn~>*H_Kz(57qiaoypf#7W6)kH*ZX2`e!PjDm{bBt`ygccJiLiO z)Ubi8to;U4^#M9XahX&D!@*d`#zQ@R9Ft2QH^ z2i%GG=%xG2`@YQfwdmh`&=S?)9*1X)bp`@zSEeKUtghm=$O+edVdY!r%vn-GS)Sh^ z-2bnnN{i+~>sFt&RcJ2U+kf+%c9CckcBF<~F$7M*c-S^ubJ+~3q8Na>kE9O61}<8H zF}{hn#Cz!$|0#g$Q4+91Z}ZTwYHiFFT8B0oUCi&S_tivZhl)%o78A-*E3f$)bIcs) zBHkVwh(H@c8!cs9t4?iwExg2&ZvXK&?kF9Lf?8tCKQMho-}Uk_Bej~4BIn|hvY;{i z&e$8`t3s#@NJ|7gLj~a&`xABWRQM^I1fqz70qoU>LM%z@d>Ux@xA=p~q_)OX?{cj4 z9D*XuxiBs$wtRG7Rg=05iRNP(F`SW$W|d?~N96G<5#LP46!U>Ii=$o8$X0gXCylWc zOLv(;`Fb%5XZ$xBVwCCwnsv=mknc=n4!z0o2En|RjjKy^1zC_Z*An?@wRB_=usE;r z(UIbNhub%|hxGL0S0I!jH~WW@RC6L)-5k_EPwU&_qPCLbv<<7bpqcc12%+UBz{L0b zXu^x5RhR*?*kpXYv+@t<`pK&&WC2EG|5Y8g`15x*{aX$W_s?}J!S1ZbzZ&L@?aIU| z1J@??+}nrEXz$ZE`1Z+8DcwuA=tz(?Rpdy$tdso?W{2l7fx{uSe%EYJW>+8y08xpa z5D1-j9NfR$u+%R9l`J6iI$Y96&);K_4aB)^*W|#fl?9UH zWvvc5w|EhM#fdY4FUYKB11m}c8aSbi`7w&7yHuE`itn2?%LO~K} z?|_VV)vl6ac$n${OCn>AZVU1YYt-~;L3p=HCk5t$R@!EN)z0Sl*`R2PDK6j4&32bs zrq%`vZ0qpV@bnO+RH5 zRh5!_`jRUxNUir#rOSzS^b9EShm^6`iIYodffm+Oi;F2zCz|&zkr>v`v(HrQEWxJv z+6}*dttIFO8~edvNMU}5-${DeGygkdC1yRg-i1*){baXCD=HaMpplu$J4xyGnpa*) z?6vW+UqBs$!fm&bXMWrtl4Qn3Wj!+IzY;Qd%`HCeIAGj~s6-2Ypt{V-w|%=*+Y|mQ zk(OUgUkD5H)xC4TnE!z8Rwhf;X7_Ddi(rsMJ>YOi9Taf5NU`}v=fHjS>U035C~fg< zl`EG@Q)1Q=bb^b`^8{C-bh6k&bNW&mY}=9@DuM_@Pg<$1U2g0;nsCB_Xf?&#|LpD` zyU84i0kzu~*VuFX{u|Ryb$P!CZx2|WKfrFfTANQqPrv_k^ZP613FAyhN%{riz>=Ej zbR9V>be4^JvsDgpa`z{f{i32O!%{z(kDfD;CPWpxcBUs`KpQLTiho1*RMXu*bcv*k zRtu7K$1e!GhcXi7{s#Ze^%XtyaNluf>GAt2U->iZQyd&x{W64WPr`J^TKP*4jB$** ze%BIMs9JcuT>3mTKbM$>Fg1P?Br_Y=bv`v3#Zgiv7u7+7OJ*0)6z)>4JktLY4_Dtu zzp|2e*`3gkpUH75_3|iU5T!@$%l3LiXv6~4ZsmqKYE0CLpxwk|eG2u4#Ja&r} z2<2ovUP^R&sfX5n8Y4N{58S#Brc*uK+rHal|Zj89@QMdTyPv3l`WV-dwah{9{ z8EbI_|ANZIiZ_-ia=Bl8ofA|2@9%nKmWPLjv8N}gMG>oZ<-bzlP~E>+#Wlw%9V5s@ zh;AWmmJqb(#r1JH*?Y6U{EB;lBxW=?TU|Uy{JMJt*srjP;On>Fvg!T=|5mT7Dk%P{ zI|>|(GqBZlAfP`4NNJm4h7^aUd{COTkW)EQc<>4!ze)FIX%Nhj9itd(s4<{SRT|yi z?@y%K?OOQihvDjH=ykf4A+QWY>5D~UL%=sPK=mDf7wBSTYV`0HQZ`x(u528Ax>7BsJ*usfzuGFDWU`j5-YtJf-9Np2`L<~u|K0#Zlkb?L zN_?Ax5@^_v>`*1#V(ET+w}iwUe5h_WMQy!~FR$Di2x+GkZC@9_()Nb(+&^3{ncl!4 zt*hJqPlf0^+H47;6mcIR%1RDg0A*|9^!4p-=Z}t*GaX_zVfSr-UyOsj4Mu{HCz0#; zvi1%MKOge?HL7k2nTtwEnX81Zi#sX)0h1jo!0J9I2si^!Nq^UX9Xuv~t3RoJ1^_25 z5Ci2(v7h)y^yO~}8x`ukyvj6*k5O6LSNF0Ee4WzaxGP-Xt3RUx4Cw~89{670}y7Nx^WDXiYVo|hm z_jBb9-M<|<8lNOdInv$9pvgvKD@rg2ObL)wvSz&y(kle`fa=qLZ#gEN{BGMG)nfr^ zv*D#PS~BVi>}0Y^52vGs7tz>T|GWHn=uOUlZByM*m;1S7b;)sTZ69VdJnfE0HhWk# zZK*G;E6~Z}F8o>^y5;rwTU$qm1)WmbEe<(5_FMxk@g+TJlxq5gYWJF#SnNA>s}VpI zt=)4oO^;KCaN&20+zO6h5QoC-8_cg6Upemh#Pdqph&O7#XP}{AEpGb}cxTrh(B%8j9mnLMTrhl2bb8ED(=7B+7d!{|p1VIqi|5f}h7T4=;qb3xNef zon}d*=li|G&Ux$Co^fmO$Tn+B5uV@rp>Tby%3O`{wGj5BxTEBP>u~#Ft35@T{bcwo z(s=uHf4xD1*514rS=#@{%c-h1I%yENr9FE;owJ`}VBUM*OiZArvVzK2y>r_NI;ohp z{yo#eipY#D8k(8KlOs71uU!o=+S;?Q%QXuMTQEg@Z9K|pa=&TfsO;6NIsnn^3uLC5 z8Hq+8A*rxAsauihJ^{yWb~r&F9;1vc9Uzu#6IU+w;*N*#($kk^ZF*a&RcmZmDm zTNZQd&=|x!48uXmy9p1*Z$$zn@jEg&*-xvv`E^q*?E3Ns{{HwDejb53a$K5j*rO-t zAYv#k7<*=~P8wY%Hp#c|NeMj8M?+nQu%@Y&g*g%=HwKoe8>*ge|KFrZF~xezUy#g{ z1>WpXUkX6E|Dnb_m9YxgME|`as)#F~p_r7jw_fIJp+Qz4#Lq1rWvDGiz}sAiLTA`M zyOjfKPCj3Q=I=Vo-{R`dR<#vZG}dNUnahmd6k4A?1yzp1u`%C_*i^qUmnY zWTregyD8VtLD*LcGYqpDX^#9Kp?aJ{k&Dk?lY5v-Ed*m=Yp}OdT8|uA0mbo2KvQAo zyfmz`@@4Z2vJs^I7aX`+GZ857e4r8-SQ8+%h8xx(;GAe8`T(ku{K9M7(*RDlUd3zA z{U0y;W-N5N(p{uQ!Q#UMOxIps_tA1yUE$}XtDor{Sc=U}XlGac1N)d@k}%VwfsN&* z`qKnPZds71vC^LEUp(&IlMp;5H+ihiPhdX&36G6lz3hrv8-Fyc0aWV?`_ddF#Utl@ zK_}a%&GW7IO#2^|Tp>Qp&c4F!_s?9&R<4yxmCsa*SIWu{H9he$Oq&~h4cOhEN@1+2 zqdsC4U318~R>P3Xq;Q8jR}hlY2;%s8Re_kHyZZRmnguEF7ajf$G;Ffpl^d%7*Y4x3 zqk3b+%bDH`Wh3_Q7!Q=HCyr%5|HzH_b?kmg*{F6B%}48p^vyU|gm89JvO+_<*)kp{ zxm%PU^mZX1XA2xuC}Eocys^!3O##aEy~2OVnqeSv&vYxX;H z!#5j3{-=b3|H0YwiHAWPJIEgwd9ECUd{rS3h|}%a*8X)U?St_pvaghXP16#u_>Eq2 zRgfCy@69GD)zV-85VhrPMxdEvYh3b2ZU~0)J;^V*OXam3r2-fKwPY?#qrmz|A;5l1 z0b;!aL+fu4PPF#+Zu1jPLtbQ16_RM1nx;xsBCYqehgq(rpr<1ZJ6U2b@M>Jq^v+qf zAXT9HGx4)+N$#O<+%Rq|WQe;X%?GfG1#(FIBv5`t*`#KyYlx1cQY;HkZ*%Icgkc9R95{QSUd{lM6I>9Pf=b z+eh-;OB0lVW*9wYpY5Z4B{BO7ixM@eo7LU-^?fesH<`B1jFO+tb5-`DH@=*+YNwvI zmAT*V?NbhRieHX0b0QPTE1fm^!Lt%>Hs%cRTMnS*TJT9~5grvzKNoBGi!3&ir(2{= zRg=o$=Va<~i$#8xy;FxZ!PZzrRd9;=YZKrBO=_D%75~I}nlhwR$UUIgr%O#j5*I8nWZQz>%W^*B6AdDYy^wpy#Sppb~`#13lEn+(+GLAn%{iuxa2Vg86BK@Yiz|GrRBN+(@dBUxv zyQIA6!8O|8A4#37N1j9f!e5^w=7tjRBXG2EA76Re?Q4e^dB47S-^Kiq*Qjh;!~1t( zBljSMSj{L|PWo-l;_uoDas#iy z4{xmMKQfy*1^u=^#VsN{cQyTll39`jYO&F@L+E~f9>9@CU{S}I`U#l?)FOZ|4Xs-VcE4cx~K44!#4VHCw0vNJXeqb|5|tqeng%E z7t0J-#V`;HddMr>r4m=+G+%e61Vz+e4Se4WYVFoHhH!ZKcy6~4*1%x}V0SV`3jeKZ z8()x6dLU6kMR28_u3n1}f!=)aPlKN$0zxhVJHC0UwZR@nwyo+~3X@0QI@;LanTdNY zwL?5+hCc(Aj_aW9fPqzEViQk*p51Gi3jjq>VgDQH_oH&CR37X>*0(zus5o@LfV1ACob zPz3jeVO5)thZ>5~H=v}E*y!#9m}ew4q(3YtOoD=7nJda=e6RN7%e^`k)ZdBtGP`HC zjcUwU2TJX6)l0yl3WQG{*2C*&B>b<_oze^6g_Tbm4*lD-_%W&`^g7o%eF~Yv5BQ{X zU`0V5y(5a;Q0+i#)@{S+@G_;0kVefFZNjic3>xozVGo=QNsreF^0F<$uTw9IPu*Z` zx?Y1Lw*)HCPdF=caAdKDT{f}=PM=ha9L}4Q3iRE@s~4s3XMd(SJPj>Llg)RmjmNCX zvH!hqq7}m}NpIEFEjEOAJ+@l~FLxr*thu5MINEHEO=kW&iUFz+CgVM{+PC71$mF!C zRsg zkqXBc6`dmUM)H)zGdNbE=Hnj8=Wi^3$@;jsWjr{iLbW-A{w9(>3oNPh#W4sClzK_n zmDTL|A#DKGIXr;edPMtf^s?Wmhe8L}MaH9>nYk3_=}@XJUamG4dK~*z5+i00GeA{H zuv5WLUHXCS6_u&|a9z&*c=wjHlNQzRF&9%FW#GL=16dKiNxm9Ey7F_$Lg6=<34e5gLz-%Eh(q4{ zk+{F$!@f0fYQU5A_6`EgnAG%Tp(N+qCC?|A(Jg3tlijd}W=Et4|HVvD*G>cs-m3+~s$|A?&l27%5* z-^}qXf36f{Hn&xMdsk_FccpNvP??Vo?eudcMYaK&=Y1dc_uY(}7g+8zn^0GlD0{pi zEY~Bd43^38;9#V1f3xm_&(W;g$3l<6FxomRxH`B`_S<<{^^NqD=c3E{6GRE()HoY_ zd`zv4igvWn$ugV%IqR4~t^TQ{Jo4#wUZBl9Fz{#+qr#&dU&?=i;YuR6)*`!aWrea! zZuTBrzQ*bE^NczmSY_%QL4UuRE18LMgQawPdB{1wUtcu`&ZYZ5wnNQrXC2e&|AkD}N> zunS^=vDs;zGV<1c#D0pEqF{yk#g@A@(eK`C>Fg$qKmKz`60Cw8@dR}4`GTp8l)!9j zCMp@ANr6YUcIn_r(JwS}E=dUZjI!omH>_Q{uRAL6mh;IRUFKnu6QO>o{hwd|vr$F7 zw@=eXh-rX_#1EduJihClyPqh9q{st+Svh$zss}q5Nn(|DET!0My1uyEEkHJ0c*dy@K=g#4pKuWf zYSb;w%Kd8s!^ZjihxpvoX<8n2uI^b9P=m;hm`##;nlI=#) z3Ne3l)mH0<&TTZYH9xHQ9}67P;;-Ri|7b0mX_(AXxkKz7I@#Z2KCWJgKOlw=PA>Ld zaDKIA*=SinDA?CdN_%arlF_Uf;ME;i>leHmU;yPd&+Yt6MD(k&cV`xHxFrI&A}*be zXy=z{S~^3)*}}MaPU(gX&^|_l>hCH`$h4Dk$1_<{PzEP(L^sM@z>oOHOxyPI z`vFs&sN)!?_VxEGrpNd{5WIbF$!ersFuGFjdpD+%8P{xptSuqO4hgpc&Izw*1GHDT z620tPfUSiAY6z)}bn<4z*LZ9H*+*JewXG&PK<5}M7bf)~gjOj!!Z8yi&y{Yj2(ZvyEJ;b^lYPbru)ST zOa1ikT_E04B?rQ|u%k-~c&RfCvzg^P$=1Nr+`g{wVnerkiO&()$Rs8)1JK2l-#WAE z@>aDRRNJ4nkjA^QF(0UH_7j?$_ZqyXFnZ0>6i8{^)z~(6x#edLvBLJ)4szC|6`J$9 zJ-cHv2G9Q(W&VbfwMl{%xBqW@%5oAwj&P^LFgeI$2rFXq7B+TnBw*rO%iaIJAPC_k zea#GK+LGR&k|zIoOiN_2Q}-Bj2wrqojHK(og+tTm6L46r2kBW-Y4+ z4pyOXiWTLqp^e5-23Z#16$4eI%e*@VhRV+9j9gzZ+!}MK<4jH$HL-H?Vju>XOR4EB z@b6^ixWnia@Eq>rnrJ(<_xMx~el$Avyq!`b$}z*GTfW}IExtT@sx%Y^=^vjx?tIsq z0#w(1F8Ss!zEZI+b?pCblT<|scC?mtKDwA|@ZnXuCDCBOVJQxEPWT$&ts9FwHSs;JBC{ocmxYs>c zUeSqBaT137-Mo(PcbZAN{WC$pahHmQ3C@k&ER#H%Wp8*aLN<2x*D%HXoeNM}HJp`C zn92n3BZ5Z&gFG7*J9~4>UdP6mwgOAU5LP;t24XN7_IJzI>|%&ZA}r(Q#F1$4^h~l1 z@iTF5h5Oi)DTU`%qMVb@I!0#(dSg_dKPb?UNUO(Gq^?-s{I; z#EGdOgb6HB+r)Nl&P-M^0nt(ldC_Fh?a=BxyBvIpVJK0967=E)ITwV;SUG^9p{ibC z0IBXc%RPS3!0$OV&)|#n3Y_&RrlAg#WKvkbd}p%S3+4X8AyX*M#<9e)z@5%+54(Wq z;6K#8=cmI_f#T!+o0@Ge-?X?yzyj~oun9i==R7E8p7ng#2z-cNneGVf@?}v%-jJ4Q zWh5Cug|J*SBiFqA2d^0$esa zpR1M~|GeQ6bo?|_R2KRwOX^_7(9;-dkvJ;rYpG|!)7Cigo;>4xX-O&F8H}vJXbCVc zO3a?QoF4)B#yrnwliWKzFLTHCRmc#W(LJw=K7(m|*Y-~nx)vG!^K&qLouycTTpGo& zI%-64d^GUA!#qJ7KfUpntR{tx1~M~qppgalh50GihH*d<3Xt*D7?;3NcZw9ZA6K%^ zBsk_~9QFvD3)v}Ab?n(6dM3&y^GjqMKAJ6L{NtbIPqcNHt9w&_2^G!uV1wEC!|PoV zBzRcE1E7y$p4WiKUP_UZ{05qbn;Dx1&#U_SH494pyo;C@MIr_M*=&x~F{{vHsxDrL zlGE>y$|Yj)*{>P)_Pa~ssQAkZv7^m~FBp6OjJ|(5nd5(J>wL80ix7YNV1PPMtlO~! z*MB-TY6S(F2j6shT2s&XQeSmk2<)--Fl$&;BX|40xHf*OxDct{{J2`KHTovWT=r;PD_DyGx5qd#VJTSGGRgo&;t~QJ($-&cp`c#GYMsJkOiVDdGNg(V z^-Cu`-XJ`h6$4$6VGxmmh(?2uMb^H?y59UX=+{FCIOaW`9(WrU` zEOccPLT}G_8Wag%?M2t!mq@8(y^Y@80tVINn@lUPGveqOAM@xoowc(3MI{7_!eM?3 zt^wVSAoZHdmj2Ctjep@YANc_wAs$Yq=gRzljNOanVp1bN!pA|0TbAkLRuw+XilBd& zqo=6QJwFd&BNWY$aw4lO+D7Co_ZVv5S^O}gLdfzryfdAEE?4S#6noLmVu(l925Z$$ zkms13eurW4)(%fKo%i-(#pxPP)11MKM0&19rE*J~oob~5TxuD4p-*UKUZ_F4Gxwde z;~DG_?JOWQ^a=l+VDf`NYMdVf1&c+N7XG!1ySQ8P6hdRVfycnK`Wny|WUnr61SXbh z;ii-IBYR5dW~%8VNH$$%2U&VwZ9bchlt`l>SBb=!F8y|mYnm`W*tec3y0?l>s?>qRa6cy}f=!IC@RK8`_?Rkcu)vfb=RKS`dBE-UAIolK`I^?s{$G zXDR7Q$J`ZRT>XEM1!nkb{S-~Lo($Rt~!?c52>MV^Ue72z`>`_$~) zps&Cq8oafyj>kQ<=pqu{0l2C?&Sv&5R!@s4n^vQ)Hr|cdwsO7net|n=h6|LM!%f#} z&vIbCBZDiFU&?(Oyy7nUmye~Kb!m|=ijD3awZ(b9lV zD_-}ER)jKrIsTD;Y)MtsCONyC>`2G>>Cj~bWpN{%edXxJ3DV4t+TneS83(__ci@;i z^C?x!p!@1KPI)dD?kHd9;Ydx>J5cPZPvIsK@ID`X!FMEaos9XGZqwEsE$H<*Q$Wn= zOUhqk!9E+U-e%VYfuE(wccE48#f8f=0$B^pZk)g-JeBI^#}6ghrJcWLX8Xd?{ps_f+nl36{6C3UO$N4 z;B`3-$DeAa&d(1j>dtqE(L)Qt-Wv$0Ta-ZT&#?tiL!0~xx&ne9p+2fLHLc^PfE&8U`2RC{%_3_-p{KfS}-iD?95lh`wIFzeB-0c;ipA zPj^PWFf|EWWTL?*kjVdsI>8Jf^7HJLLfe-V`A4K*8YNAJsCjBKI}D%NRfs>&je;vB zpuzmt%fDr*Q1c8kMyyHeZpYWYcz_&?n6W|rL5o^3D;Jx(@Ot4?mmhRRCY(8HtSgBX zyrUd?BI#GwbtTLT*qj|WSnJr%%Xne+Ss<(d@4Na38Xw&tkj(^0w}@If=HvGm*GxKM zCdrk%vhG(b_VB?_UEr=3id{qzJq0S0`G-}tKdKspDvX*WQhsExJ~XnBy2VENE?jP7 z#kyY~&^%v9!BvF^g1l(>QsBge9ef*0P#Qr4CCrzo<}P_ zu`zD)Pe&B;sAlgIp_Ii^THjaAqoHeP5Uif|SBmo8=k_OX@nM*bf0*T5`!}bM=*S0U z(^+2&8rAh~e!v5>1k@2-Us}9miG*#GJHqt<{7Ua%Z?;i&fV-YZ zpqdvgD_y(k`J3`YwZi<=E#xg*CjukKuxUJ+TvsGFDjc=y&00k7Tv}q4cMN3!70W2j z*&>p@>>!ss+Y;Oww0F#3t|z0PeY%`a3W54chq|I zSoR%JZb0}`%oOapdxl~ZJuABKo{0%S+C5oLwr;e9$R_3TTe2R@s-;kDlDD00Gog~J z&f_TgJoNJtKdu%)%O%Vg z=JEY@(&0DCwPKWm)>iw=y#ckD4*SuXKNc#lk`F%lGBO1#_z|BS(j`*#@gJG;mdgs+ z2KKO~5A51&+-EUo==<=<%Q88Svub_*%RCAV7r66O`>w2CXI^P`QWgqD&v)@w@vbDp zlP8c4P?Wd-^M}A8`$f?e{((zRll+CqAfd|d?G^U?v19>rs}=9uR|%IHwH@EDvd4xC z`LYVOpZ@q(EK#o0|C~6FULZgNizWBKimw<=t0Ade>CkF4uLK;6UcOwa@sC;R*Fz%`y9 z3@~LBEmyFos`yy$a3(7w2+ww}h;81VTr)lIj48Y5Q+=NN5z@e-*+J?4CfXN|io+w( z)G+gC_GzF|_Lh%s{Q%m&iXBX_fdza+5XMH0KKWOSX_qqsqO+PUmE~NlV@6RBMmS~B znBa1=`iYv#!oCaB7YO+o_m@H+$A)_~3$!e?n2-*NzQYxY-9Zg@+*ApcRi&?fW>)o0 zshaioSpxb2#W8j+8aFT|Q)W=;_f1TCbY&tu2ER??)jXFjj3Vp@guW%yKIw)zgux&| z=!Aax`IL&?iXG`UvG0ZfQ1_^Qho|$=QCu&bD2W$??xsD5=L-HR`PYJ{*WwN7x{o#q z<-DZ$M^&TAD}?q3ydwBvg6x3XdlIlwLrL!2R;0X{6Bu7z-xZMmx*y5nzPs`&b?o+h z+d}2QH8G6bvV43b(DI@7@-uDGdlo~G~LKahsgA}NM!5*Qr$2aY1oup&t0O{B+{w^D2>k%hYpB4$O$0e z-DDid8&1a}*71Sv)@ooDG#df*gFh1b`Prh6RdE2L*%r{-L1nJ92=@Wm8vN2+xL12T zwb$tWiL<^OqSEU~PWmkkj?~Wc;g|rOi?83Ieg5dGM{O8nbNoLnYtDlS!ahxUgHsY+ zz!xa*-4G2h!Uxhv?ZG9iI3hFxn#+#V)?X1pSFAHbvI*&X-La&be2dAX9=kH3$+U(ISV1RvR+s=gF4hKidJ}lnXENO{wd%J` z?;aw0&0a9q<|@F=QaFRM#Keqxj|bf@aQb{}MloW`$+xX36IX(d+Wr|{yYz*eNGbn> zvh$Sk1pjGGBJ4j`9?gM?-VV)Q$#Ct!OYQQHn*R*mC}RJxNuEf)gD)C*&Dnh#A$4ay zl(g)t-RG95{84ZqQDPi&QN8slKhDM&h2l&x&pio`qB)1vRh`=ESJT|Px*9FJ?1||B3xf*VZt<*JJfz;8?l9 zhv0b!(0_KSqnFLm0-%cZg^g(2sth1@NwLw%#pIjj;H0{w;Z6}gWI^Trr@URu4{K@jNV5&Z8%}liq&BpASxSxxt|X1Euwh4%Mq(TU;8W>X7_*# zats2Rsvd&dPp^=fqXUVA7`}Cud z8YhHTTy}qS6Q(C6Cf4!it|kW(H&J7%G;n^5gJh>ZsojBX@UNA39<*|ypSKUsLEP8= zI@fiv4`5V*zph#h`b{QLt=l=QDiJ)WNbGoI%HwF~t)RKYe~7-*!Pp;A#21*KXtw;i`a_7x6Bcr(!!W8D!4);aD(tj0e?^|0W?Nc`;{$_v=_Nd@*fp8V=aB;6}pRO~bB0d#8!$6id8ba4WR^-uc>`*EMR}T>Alrhei5N z5OC9*smxTHV^_g@@iCe!^V_j$+FMH1wE3n|-4bZM(jG}jryy0Y+|2zn5-L2)6nXDE zgR&cV+vp#$+=hQ0A34D(#g}n|v3f4K+x6X%@#!b=#GQZwO(3mw0B1Z@<6r=^`0gk0 zd%RW9veI($X?TJo!PaG?*{WrczBIQ-%%wHI7bD5Ug{nUy3>e?t*d5iy;lvnBMb&kn z^Ky%4FR#6c)i%bK^XGCL{SdE!idY-z$EsiA0@1zX&GGbi*37BFUY>u2m?y{cS5_7? zw#5iSzu&f0xtU!v44<%@XzFvFWR>jfD2N+C%qRklUGHKQG9z30=J?0GRvhI3n|VQXs(9!6p{5q{lF*D?dW&?KT2cyNxkG6{sA*04hCD^fmWA}t| zjV$1FYwsAodjA+6UF+8X`bo)g z`*8-FIO?L?(|!!M2L{fpxP8e-b8ofbfg8yP_K)b$L`!gn_0f>YAFmXwxvl)G=I7p6My7101!M{P> z=OV)(M9>qMo9RXJKPI?wwcR^uhiw#{O`WG+PCpjes1WWJX+CAHos$nW`IQ=Z0kE@8#5c)4DknzH9-|3l(~Z$;~({RH#s)Lho<-L79C{^#5n?Pk=5< zuJb_b?V!_oSnh?IQN*^UUkx5 z{6_&uc?gar+p+SfV2eu0R2djmnJQ5*YtEeL*B}$>OVR}=^+QlTDpDTHb%pBHk$D|} z@l2b1V;oq`z;_`OQf||jN)?kzvdQ|>wWSbiXZ`TeF2pFLYskXl0M6fc3Qo+S2Rcz` zkEZj_)l|yfj_y6m?G0w3oaeZty8TN4{TO&&mp8ZX;Y81|CL!Rj8u0vIUb+oe4B-71 z13uorI)GWEL$ZB&dkAk>?oSP#Bi-H|!gtnpV9B7auU%WTVYsK}!y7R5iUwiv{lcxL zkVGz}4bhKbk<&-kSV9o?fz?HLt?7ryZ*IYtU%Uy|cC!a6FFjn!%IFswt{DE0n0BBM0OiB}-7Pgd zc6AG0G4to#%E0u2yT4<2LLmL|YwK`veH(6=d9iKMMBq1mf`Z(hQ9D;VSlGILxH^zEAv4vNx@fM#l4h@%m>~pdpIWx9rxd3 zDuF~sRG!Q0|JZiS-lMuIYiQUeSKqbx){W{?VgH}7pNfYzt2*vR0~iiEF=&KU315lRYy@W}+~`F~1zgBo&<)KJZPy`PQ9*-cd($ zObD3Z-}&?B;h+iYU0Yj&BS((Fy-ElIt*@^iiu^ljhq^wzyXdgi!^5VwjHz%vf9E^j z36DJT2)yx)Z?xBNexO{x{N*pVYP5xA{lkCw58<$>TLU^e2qFWQZk+88@t0;&c%j0G zzhHBqbuUFQ2XA@Vb)Y%@-U~>U*CdcGuSveN-dn9%SI%DT-s}1#dG`X7={onUqdY}X zWWjYQqg)-iI&*o)rI9qw7=VbMzb?~E+V}EzuD$$s9bZp8^>o0_eFCQBBqgB^fG1aS zI)GGVl~fT8j*967$fleAr_eXW+ey(X)JYjhcgfSJP=!j{7TN=##*H^ts2z7Yddd*L zF^vj3Sq;x&gUf}g>n+hLJ2d|THYr*pqCtxs` zFSTVH6?DPPu6`d4y*eMIj>gj@&-zJdk~7Ea>XLhh+$Yi`dxdfJOhVfRS3Rv4`!<5ird8-6zr8zxV$f^WH(DnKEOdAXKmO&AOYZvTL3d<2D& zPp{B$0WeyGizGmi0I>9b{rnAUkn_glOK{foLj=k-Fe?C8|HzdMv3-ilFO58~zJYnJ zM}r63S)nW|g80s(a_=T6*FsrJ-+hEk?YL0vH?75`9~n9|`jGD&*cLJj&~n2KE)oUG z7!92&^Dyj{T>yLe9H93h+dn#b*N=No<9j4&tZZbaQ2uVXxw=v2*w=Ur&e_FeAEmfF zsD7F|%JVlea^~++ovE|~&^zj=hCceykHWj&^{$E26WEQQ z0iFTdmbV~+8o%%hzX1D1PdxDiJoeaQ_7nL=ph1S-MbHJo7E}zs^{sEUe|ss3vHe)y ztTag-Z4kB<`NY4=moHm6chJEM`Ia3ssHfvAgBpANpo*6%E>~OL*p3Bd+4Eu<`VG1HsIPfu0N4)z9t=1KOQvU zdep`o#IgQ~PkbWV-*^w_CIa4{`qZba?3)se#e?VKwcpgV zZ>Q;3Y&*?6+5=-=+&}Lp(Tgp4I?)R~{p|(v@^FhpIm>pgG?1ZID@uz@nUZIzJgB2_ zz-~@aktkzWeLRl@r{%R=nR~Tq8qk`9Y2$dSOV5Aj+BXg5vT(*<6 z2YK2I$DOahMILOjR03(UIGp?eH2%g1xPn&>jOdx zRluF8^o4>ej1zza&JN$A(l05=;mW+eREe!cwNatUyoR)9NnGurDBlnGwSZLmkyrnX zGf%?y*Ex%<8lciCBx*2#@H)Vth^{CFnfJSL9HXO8FpePp6gi5K5;y|goS(psqH&-S ztUv8e`qwK%shLd4S&=)WpgI4IS023o{9JmUSL9>K844BM`R5(&LAmGNv{cUEL7Urq zSnp)!Ilk8(Dpw{M$<5lH?_b}7fA!)zylxr8hOfd>e>Ni&lIyKqBO5axUooHe%@BV5 zxm#QC#O)!x{oD}?08Y&Z#IwGk!E#`Y!W1+dCkQqb@wo`%IXNaTf~gM~5c1m25PshP z=zs9aCj74XylMdRC*;|kvuNz)!FKL2Q!LC<*bza7Y|;QID19O)}l zXV0GL&iBSIZ|=hHnf`f;>8~>eH0JwEXVj%Ezx>lkIe7zrJ#X(p~&y8#8b9Z;wr7K5a&rBrW$@p3| zG}mvKvH98WU4~aL6>z$L9E#B}iW?jd$_=qA??4oGUpaZ<9~vp~_no*G6W_&qDAlvQ zy#ZAOEl|Jp)eT9!1lh7pm`PO2xf(S(ZU2 zBs2cZz`8W+pX6QA1LAU_!8F6+FtjC%Qx9k#Tj;|v7z9vUjvJDz97n_-Z+AtOo;T`) z-1{>xL%#oa0D4CqwL~1uK_w!dSKEd+-+qMcrSQ6wh6N^NJQB4D+xhc9|MT#Ucf2E; z2h)G-V;_TAX<7q@X$af%r7wNSDw(HI)MGyUd-BOA69qNO0(spJaQLw410VQ6Yhw_> zxwhm(;Lx<8t@&7{K180d@30T|6YOg;ACNBuzj8$LnPf7KxU49|HjUr?ns1X5f#x_j zCjl7=u%R~7`itZ2Zt?<^Mi8?Q%A*cEm+3zK@sHcF+Q#z>dEc)&HO;t}`Npl|`#BFj z|M|~10*CkF4a>&82exh89Kz@_XeiMH%*V0v#V>vl+NP#^2P7QpZ2{=hu1iF6eL|u& zYCoSf$YT@v?Zw+(`=`S=YN8JKrkDIW#p7P!C*30@b?!x+D{tz+&>T?B^T|4SdGe)R zrju#v>dciRl}577k|dZduaEmpW#`&Zm$&YEot$&^)$t^+kE>VmTPKe?@LS%i88%5Uir2KBMT5->YAT>8T*R~z}q6|I9!-)PMtgoCr-?7_;$@cQU1N6JO8|+y=h$7 z^l8eF&s9khVA3@JIszGW`wgPpvz6bQr7d{Y_!Bp`;kTc=0UN^-{;C12XY%;=WaVm} z1Dgh%!LaKivq1N!AEYE%fRJII-Z4tw5s(TZ^i15A6|VrUo*> zcHG)2;Y?52^U&Kk{~U?l4=&!?f!}|51AgYrDx6s%Z-3fHM4**lr*RVZv;MAsh^nw( zarbeKTpww8{c6vQ@e!;IoF_4!NB`9IEqHEY1b_d*MOd+sQ20JM1py-<$-r;_$H8;j zzv3TxEpq^MG)#eZJY&8v5Ahc^hj7a9fKds!S8#5fknd1jt~^g}KQ8Z~VZ`sfxDMNf z2MnQqVyT~OH61VvZhunhB+8Tno{Qj-OyDZ#gZK+=!0RKnr)T?C%H!Ur$dlalLk_qn zlJA_B7r(EyATisY*1hvlA5#4UW`hOc5s>Z&nUun-J-lo1=SEpI!j}6w0?SFpHV^Sx zR^PP2cZ4m(u_}4^njzpjZdQ>6cawh;*sMtjSV_HS{UPQ7$84v(-Hvo8_{NyKF zQ--6lMH}Iq2_S0ID;~!Jf`#~p{f2xVHkdpKwKbn<{GwbBqwP4x5b$Z*rxXDM|1fF? zj=8&G9wHdpl%_Q*_|S(w)Jh~3^ww=Vg35lZ0aPxPjRrNy_nk6+aE#!3J&jB-lz)@` z$$lL%(}rg}_Fq$?wWQ5)#@DDj=~+XB;|1qOoBOBzAbQEAbJO{Ya!vu017dS8>p5^# zmLtm_$6uW?dmI>?1AO-?gO^nY+{!Y>l`YHPO97cvY}CnKww=qWuD+a7E?3SZAUP?^ za&oV$Ps*r{ms}fVzB=B&@$K(1aGVrpJ`F@2lmY>wa|oF$ZUeCDGe87mwI<*3BEXGq2RSPuEm?k-ra(P@u)YmXZ4Kc~27o)Y)XP5?_8{`MZgM8P z?F&%AqjOAFH>5U7*vGxTUxUT-5n!VBVJm*(^eUV`TEc%fx&hxXVDZuddWsrQ+Kh!2 zGd6zO0LLemdSm!<5064MlL^cq6C^w);ItX)&ur`(;JI*sVgrhXbpY25aQm$*x8bGj zA^h+$17NcwN1|by3Q=(=7EDPpDV&Em?FEz~@Y5Xl8vl+7wt}WS+>uz+4xRCd z*kjARc+L=rjCv?dB5$p0_wYYh$0z_>@T%oLyxPb@4sy*l&H=!seo`v*LEyur>Ej&s zz&Hoim6vf&Ub2m{ef+(MQ%L9cS^<=X_Cz==O4EAdqVZQ7z;_$o^F-uXdk|{?u618R z@ky(6B&pn)MA6Oj*S*M7xj6-PU0HjziGLpl>ed0XQn6MCu8)%y|1J#!q+G^<*t|UY ztSD|EFVkE*`S&`$c)NKXnWnCdlhU}fvhO7CRPPf{Jp&+B#)`^F%hVp|bh^L@s45lz zVgU?FRa}`?Etdnxq~L`F4vuvJq~~RF5H~{HT3pi%RHa;+mCTyXnX8#Hnw89|59t*v zi*w~Qt5uW%c-tT?BxKXfP=Mu8^t;NpVip5AnS1Rt)WRJ)y`*?LRV_1TCSYaG+8kSv z79Qji#*tI(JNEdRl#ZVex|fwns_zyUum$)sDtfF2c*S zg!5^yV^(DPI$m+?3viE^rZQ;~(tcw&vf=nKB7a|%jiLh(ux1S;%=hnI z--5?(?Z6{u9KULHAsC!R!$k28prSl5X#ng%2k@NLX44PNwQckFBA$OfC}7F&kui$H zAHH%ME}DM$k>iWjyFT4-sIUi5_rct-mF5nF2YAtoASTJ1@5_nzQb!Vy~9~p;U(4cOzjL7}}fX$@O&(6vcDK|IC2r&)wdEzi7td(ZxX$dYso2^6Ioa z9OpbFz3lTKk0NgH2#8lj+{=^f@Vg9~&+F&?5`c4?&&%2K!ogyD&UuEXa7~1_k8Sp6 z$17(1pyC*`^$@QjY8Vd` zlJDB`7=he-F~3$axpFyDy1M8CR@Tr_M;+}OAqat9UWZMn^lUQ}caBhr|KSgRc&x#2}-bVP)ii+Hrt4r@H!idajhp0kJ%-RG8=L8&`LZBtO!dq>dL!lqQ#_&ah!z zn`PN`#s<0aB)HAf%XZWm1mqNbvK+4H;_b)pSFhcGSFT=jO4tC5LxQJC=JaTqz!T z;bn4z3{ocR@SVfv3gUPmrL)$eOr=2%P06oL8SqtC2O4=@p104=9R=s;GQX+ z2YN?)kbI`hTE;ZzpV!reNu?7F^`&Z##zO(_$20XcL9`P?3&~MQ+1HtM+!?{C1 z-pJHDGM_IQe$SYuE%qjt)3$l;{#ye^o?Ga_8;&ex*R#Dy)AP5XF-_^8vCu#)bpAQ` zXBU4O(BCA*Q)qk)8UEuZmf=5n;28X!bF1)oFC2mY_3KZ;3?48vft1+=r{f5iItdEO!jp`Tu))%ZAebiId9#v?UPTd7{%^lstc{VYmwqoO4g& z+`cs7&+p|%{;YBuuD8sl=J@g;)QcpIV#gU0)tzxp`8oJ()0=BgukXOWdu1KYE%o3{ zM;8I7y@Jd;ovOZzgt9aN=^T%^u(tN)!0bKIj9u3{O z^aR9*oxNC8scrUs0jkdwk`rcj>xnZiqCG4R%}z3)cMsn8yw9vmS$hg*>>!N_WJA)X_fEEWkxu zgbHC)${rNxfZk~6Em?O~^Fb2=3x^4wp~4xJ@fhO%Fvr2PggmzeYEE+Qavil5+Peu+ z2wxo2^AOJYpvE-H{+E8~m*7`_^;cUTy9Ayeq?bEV8%GG-ON8USjWLgFNmB!wgEWAW zL;&ae-uJ%N!_m)5ZOtJ(=Ag-Xf@@>b{^it0`1V;m&<}b|$`MA*!1m9}vjz#De@)M$ zpLe1cWUfF?!}Fzz8<}s?`}DmIz~$F+z%tKQ2aMMN?^0oqQ{GE3ms4Fx^PD0gmwy~D zq^ucNcAY%-D!&f2mi5%}n+q$MD|1|V z3f|TUSV3*!N^JMV$;XFSkGkiye(J-t;sA0NzIfh;)NjEcf%hYo30};sU4hG>(55j2 zX`fWej2{04n1}JDQ{`r?7a%k|BY;YuE6T5`{UI}uJhTdz=fMNLI*udJ=qK3~su?KS z(Y--?J$ojhNzOl)b>^ZM9dm*OHi-|m z)MkIzk=qkP@FYEIfZC%5s0CPtX&7=q*6cDFw@;mf7JC@lAK+}yjEO-%yPuns_`db! ztzG!?D;x0k6U*?bwM8o@dtax#E4ELeHf$*Tx zuxIn=lF0HPz9f476@b(9Ok9>e=ZrGxyG z-V_yu3M)@4FsR;~B|R@+mYGw0C7&{% zY)h`cCTSOaa>bOqUspFTD@QU-o$T@abDg=5im(8>G7y%7silq{-!2^p=oP@bKSM~y zz|)+9J>fT`sltp&Ui(ixvpY@b70N39)(nW}L@MT_5(YHzb|y(gLx^X^N(%sS4Jkss zA?Pe4hz}0@iI_42v59Mv8$b&3>r{3epXL_{xc8c1uWZy+@E*iEpr{_vp3v^J?$8mT zpPBMsvz#oQPTJ+ZMQ+*H6l2(pAsvkqLLX{4dEyuxKXw$39GTC(d(vyVJO8|+$!J>O zdt5mfJ*NqAkV#%g;?L?A3_$nCS2y6i0Z*^*l<+^id=qv}nhiXwc+`VG-5kL;4QMvH z>Q?&Grrb9!_uy441314tfVIUQ{HvF4+wiwfZjIoq0s7uzK=v05AaS&ZVYQpf#I3`H zU7K!h58;6Y^dz19yzTYj$cDl`wbX~xhHoBCB7Ju5&4&Z4W`HX4DwGD?u)3vP)nb5OxR+$WXCa3A+n+6Cywlt{jMW!U2J2%WY`y(^1uk4QC zky9&hbkK{Q$eI~B`sZlehj|ZVjeHf17iLWB4azK#iu2uqzaty9;nZT^fZkvuK78fn z4S4A2B0ON`Q;(hbOfutuH+i4a`RMdqwtI@A7d9YdNC$=EtrS3}ecw?IRJLHF`EO*d z85|q7jhxRfBY3XEekk{jKx?4{E9sMioCItJV*+8=`@O4M@b#;krVm!()kg-QO&U^w z-2Uf*a&FXD0qISj47Yb+u(05~qeUoqz5yU3gWUQRW$t^Oyt^TN7oxNkkY72E@u3;F z1Haxo&vE8~&7)kY^cfT63M#xa@ON4AP7i%bqfo_t8yUa2knir#8h)Th{)oMkmHgcx ze&-untRs2v^M*M#FN(>0F88XyckVqh@DGseD|79jv@{<$@v+4t0&p3Up$8r>(1mdC zsG~WjSpi4{kPjL>Cql2K!#o2V!LoS(&p92oC-o$R{ni#hiy+gi-kS3So)Zz6d{}4I z;#@wAXbJ>kwgE03cE2J3dN+k3o`%{EwY}d&;mPN%zYaU92~wNKN+5vV#+l)55SG)l zUDG~u<_SC}nuq5f*8MBL@+;6$d}-(Br_&kgoF)Nk`R^Q1n)@7QbuaJb>Y1c%GX1#g zb>-*y_dr(1H8TexPlW#0txEAus`gCL} z)FepCRHrhi-V-up5Q46xRUxfYB6`JgP$)7GI?3yKwQ{Ng*Rm0$AdSDpI7|R>riA7l z<}(sr&%ye@lITe}UZ^%8#W~9n*8^WBHA*K9iDj_blZXg9A2mUN1k(Xdoje97PMmNk{_g2jcyOr)PZ&`BpIyEUzw-TS@Sp$L zEA~wCtLAUnu>BJ!mf(f~9npjKZ6}xDm;nT51xAtFGdHfMBUAS7P{W0l!Ng@;xxE9w z|H=lu#kA}6VrrbQ_tTptq-Q`=Z)??joLF9jAwcePd^w}3jti(zc%(F!iE1E|>)X3< za;Xo`8nG;!J^ielARpwV`iz+uk6qn>zi?~`P8m?XU=Q6Sx(xWS>95hV+U*q}0@h;x z&w==@QE37C$2NB0-15Lc)*8NhZ37;^z5{PNu?(w&zAY;r=fwL=?sE&a*Yzn-wjMB7 zv=_BwD6_9u5W!CZM@I;%DtLC&MSs{C=0kzY{^KAi2Y+(_Cdr<@di1lP2LhBs^*ZE$5G)xT!_`WK9(jH2@k8pq%c}3$o>(QRn3zhYj zheF3s>c`QjtbpvC52P?ZH6&-3ld%B_pkQ*f-t`Sh%1R= z;|40*Z=C?=J#P#^?=h4IPbKIvqXup$kvr#{U+3?wTwYX84mg+ZZk9J(8`wR5RDg}t z03CJI(Y{hs5PKHS&v^il4-34X2Y{oF5Qv=DGtue1-!|wS?|8?|UYhd=o)Zy>ei*zR zCcuO3ZR332c{opgUgzI9YQqy14VvyG;{hCRhxH8Ei*TK68fv^r-EH?{Qve-}Gul|6 zn#vUSO4H00Tniq3^wGHj&xzjj&$>S;^o9+O+$@#oRoKzmw;sz^tWmc&2p+()KL*Bl-r8^ z+22`Um$gGf08=BA;DKwAC&g)5ofPg;q^~qeF?k7KSEZQ~nF{%k|Fy2vsk6%BM3D>m zvB0l!C43V2K8zLC51x0$d2FvtKRKvrJ%<&9@v&^?&87jLkD2G;zyQaIF<@qI&DR_r&OP_e5Df$3 z?_HDik6+n@CvWeA!T!#m*6H*b>w&RrbNdUmT zL5E^5AKH&o&7-v`4{nR-0@m9b*fUJU_n*~%^{jaMPGc{3uV9fE(dPg1YGkxuAUxQg`mh(K@1VZmLLIwOhx1GEy=TR};7HExQ_9Gwp2+T@t zhLGP6n&&>;PolHnXQllB{_YiOE0i;i+rx|uGAZF$!SOcFgxdU5N9%f;3UIDoDzWG6GZx?tl%*M zFBstblxYikN6$(&47K@u(E#UPc;S`>ZSP+l*gn@}1sGVRag^@ii7cQ=X*2tnus2c8 z`}GI6ci^T$(*J0E7rtsh;}=GyHAGqH#b`I&AXV-u9S}N7_MFz+x=_&ouP7?}Y0i7e z!jKb4x;q+zGCY)~oF$Fk{zEvvP-Nd#_&UR*Ng<6gq0n=CZwdu|aeW(p>(Wg)W#;;i zoLX@q^_H1$=e%+4wUf-Vs zpUQytY2g}cGR;}Xn`6CKI798iMo#c$c(3_TzMrFsVHCtL_B8*Jy%}py1=#2Bnv{k` z$x4hUG$bM1D`i0(Lsll%SV05ZP1Ne?487l}HV?>2n=EJiGSzH0=h1*)zvM_lL`lFudI)!&$TgkZ_;+vm6cP%?Nvry-br|nGTp0O zsicu<@DtBJw;H_CA-YbP<`k?XEmF5?trJi=+z((TBw%|i%cI3Y{+UaO-da=P$%Pci z)ez4~59x^!Ux5aw2WzQT*TA%FkD`aM%UZ2dmH^~D&^quIt^R5aktai!_1bI4FXQxPe3^y>EkLFWgsNR`H)8 zfA=NIEtco`WFWfY?eolN&A&Ti20Z`#*c_jK9>}-dMj`3E&pX9Uu_AG=T69Gs~ zdD-3Ft=t=$Vg0+8Zoz-|!fjYo8vc_DYw*USi?D3K<-hsB5d-9D7#L7t$>Ivghx1}h z*7{tX=I^LMAJ#Bh0|FB!?{LI`nA~EPTQ4&epoeA8gCW~HJMgRl#P3@yU})NBevTz9 z_B$`H!zBYwKD1)M9n+TKaPs{~(#Fuo#Z-G5Sq9&WO_T?!YrFHLESyI?K<0V3cbU$k z)Sdl1D_M|srWXB)G#$V3tvQyfJQdVOTZ@5qjmSypYVf87AYe|UAv8fv^@Z2?xz zT)??h-OKu&g@1NZuoT2X9g&_5=8RzkR4P{{JCr@zY_E9>s?#lf?hO?*r*NEjI(AJd$Aq|55 zBVpJ8zAuo5$UzzRQ<$FmW#o;AVx$L^oQpo%9oqGIq@y7y2amP)2v%P>PW2}50yPnv08jP~w`U%so^cRwMATD1TAKdsM2dZ=4c<6SSKljc> z`FcJI0p-KC4|mS&*cLU1;rX~SS6_;{~+4&5mVaU@iTAJ$pglG^mz|HLOg zF|)Vqod&YbQy(4_A(%4@$ku`9%?RgITVCi$IM)#TefPWHZJ!zQ1eo1P24Dnk-VKDu zZZx4Ued$ZkgqnJvBX~aP9J$k;HE68Wf!cQ_ks^e`yvy^`Ie03SgF(qMhGhC&{kd`_ z@J(rDUS3BXa4$h%BF?)6ho$00mL)v^WLstXWqw(1ozhjxMYf|(uDP-%DL+@HtWVPO z7hhn&bQ%(yt}^U3+z`50uQcOIb{!R=Ua<=#_rM#BZC@ZccI0=;$CYvHdIhv4V3wmL zJZq`&7gnt4k?gyC2S84%-Y1b}Yk!P&P73Ji2{=QRi z{P=OW69`+>_h*-O)X_Mi^`7@GpOG1O9JM-+&)IvH<_l zYfiwApI(Kdi+vdM3OKsZhm%VKII>{&H0HMj!VB-|2dU>@_yZTA0ss1j{{`F+*)x9q zAsT*PKxyrN>>e*i)zyK^kmm#2b$z#l2bTx1xUjdJ%s=q-`i@<+20NzE!edXDI=3UR|c-j)9_KtU(rk^;AKLdxU>A-9%(qa*n=kx z`2F9S@%?+3Zo!szUcJ-KogduZh2Ocn0Y7BG^9PSDhdIFet)MZkXpR&fERCBF1TBjs zpYu9KFI`uj^Mc0l{IsbPk5qWopn#hOp#6zsiv~1SaKZduvPVhzXOJ(8JcDT;M(-7F zj`Tu*6m+IFfQ{Bb^9d1NrQ-fVg9IvFI=3A$ebYDKD#D8k3wDjz8bNsPA=wQEgX}v| z-=B$1*J-W8^u!}y150!5sf`hQ>B?<*=;#u><>a#U!dJk?HaOlWoI9N>PNCW<4eg^5 zkhbGXSn4P-{?m1!fVdU)a|o!9-F@0W5ieM*^CVB-j|#;?lmoE)u77$y4~-x4P%r#_ z&J*!NeU4%K@ekNDh`(=T<>lLg?MJy3o)_*>@7m)GLn7}gjB{Q#3Z}GO*cLLHeV#M3u{&rhOo8IozQriY#bOZ`|SYsP$4M0!l zw$>U1H&Jf0M%|bfqVYAWTreN5t+S4wrfbAB(G+mZw?)|R_^jbZE;zm}UAojtSbHRt z?Y$WBv-X5C7{mJ$uyjYTwVA(*CrwvMvu2g zDnKNtJ&xDC+A7O&ZESA<_!%Emze+e}`TW=5 zffdnTe;faCQlN`k76a7_5&u>J6eb>$v%OUW#pC@-b6gTFyt1_~U$l<<#@LLye!tcJc0Y7_s1%C3rBXDe?m(PsA zf-VC%Q@sz6;83)96~Gr#7-|DbKoLSIr;8I*mcekHT_fPDr+R?CkGtmI+q)w;Vahz> z0rWaT(EJ8^6JObavo;j>V!k~S5UzgYIoq4D3?wTP#bh!S4~{6zKZShGiE$DdsgVU+ zr{yE^qXREZWTN%Zfp;^=1nHI;5C7v!>+lCRw(YsuzjJL1zOlXwFYjphkKS;~@HSbQ zZf~yPv8&rQ9Q@C}<^&vD?7RHh@862dK1j1YzkmK&K-kCxWfWjjET(ij1{)6CKYBM% zh6eCnHXt#2yss=2Fxn|?IQJhqz62+h7T6ijw2y>f01?ip*0dFKdxYVr3}Y>L4=cV8 zG<*UJ2d{jz3Hvpk>x~}Qg*A>T;Mt8W`1ek)C58b!R67FX{QZXJr(D~pP7Z`#-`a&I zuW!MhuW!R2UfYJFrrkewVlf!zqBl0K1HFDP>}Tw{+v|nKE8k8ne%rOs{9#CY0_<(Q z6vEq{m!7_-AQioSxF6Tkp6Q<*=q(PCvZ*ecuM#Rh?vWJ&+;}c}={)A;*2F!njXWq_lhu9sQ>wI%ZFb}a_@9Rl!x;3cS-)c?idr^x4eIFt}G7v9f00Z zM|CvqIgoS?XdB9TRK(7U_cJzu4!L1ABQb=alL>Wk3#~t}Bl#8gic2;}rQa53frqM`W5D zI9;bSscRqSVG_VW%41UF0cwu~HYLwoaY*-aXO%ww)YGmGQhr;^R|haMD8w}ZrkOtU z>=h6}OwIBoed7VqkVX_!#g!9O)BwTELq2M0Q>7GXbRoe|(%&3>6=RL$Pyx?12g1EY z0V%8r#8xq#@@?hy7asmi!jKDemwP6WO@k(7w03|!DaYwrFlKM+%s?%A^@RD89CtK;_Yqt^i$X1iUHC8>X{Yzv6HK? z(vRMda*3kZP2P?bQkn1KlSfn;+a5LkTIoSR3-+1oR}3Kj;8GtpP4P?p@sS}g9R1g? zZUVktKfK~R>p9*(4cW7gwF?D3Bic2G0*G3CHM?h|;f(tG^*Gp>!aS7|cV+LK8N z{!K%eCZ<-P*R}eE=o=?1^Rg@lz|Xw$KZ53i|->y-tyE=uB@5$^t#Zw2M+e;jjTJdv?BF zgzrGjBe2x<&5^}ET-zFfG9dI~PgTmoHp`IO0CBI(je2+(?Oij+uNm-as;KS`ly9KqS?X}-r z`KmT@IKgS$iW1 zGS;-R$92<>UA`eKm;s2QLFmU-ke@FBWLwmSg5qmF6_JuUI?poz|ro|fA7 z@i&na!&1R|SIn;xzRx}cZWI3;ykzzb5-b7PwjwxJCp2n_w(6g+AJIGd#J zknldHMZW*ZKlvvX{Axn8o(tZT2q>&G7U1Km%`rQTr|EuppJU&R19!1b1e>NcfSPwg zfD`+AzoU#$pK&mKmS`x`QX2+f_^g`r7zr9jD9@%cy&C{@Bm{(;0_d|)(|s1M<&%!j zHs%k`L+tOpo;769g>wj_l{9VV-7?NPswb|@mM{7oWabLQ9H5Pq19)?QdEK=fPx2bo zGY-fe$0rAq`S&`i#I`6%?ujl7cTAbQ+*DmJ)x*w#X|fI1U+EJH28YmqA&Zvfu$}R%=9F z6Gn9Mj}o5{6`z_wbyg;@GD6)toGDKF$C!%ySE~doR*X+4)~G;d0p8uUjEG3F8k?+A zE>#RO>i*>@mJZ5G`WdeQaKyfZDtI31@gTV7PI(0i1`!hGU;9p$41>d^12`?BR_a%eGpERKLE2gab z*A_j0s$u{^{h5Ng)X%_nXv*Jaym;^(|3kx$zi@g57R|i8vW;iBYq)>853gBWgtb90 zSzoFKuP%Ik@FJ&Oi}HpR{XwYG=HX|c10;s7bhLuyG#Gc-Hl+uV4&yPp&6hpT2eK^q%)_35`03ku%zL#&o#f>4HH|78N#wHv$?S6K1*YqFm z-4GBS+O*b7+5*lap#53|!hv~RmzCdGr}bj@-r3IZ!5bco+bI)Dp zd*HR_`;~3}{N7m+z)k!Ak*mvr*UHad54`tT6fJC1GO7KML8|cILq~>B_s*iiI_}1Z z+%tN<3NLrxHY)?o&rHV(Qllg{j#awvFI}6_JHPZ%IZEk{M zd<;b|`_#ah8z)mb8oP3S@b|ymx#+U|ot<4fu57q@=%}NP=7tD7pBAiWGc+~6w0`{K zAGds<;sT9XH&(cRZLT}!~INP+XbI(x*ANj~f zpeZ#SyOZ`ECj=zXle+2HMcxm(4{4p41jIq2G20}>KBq~~es42eKJxy#&wbAJ^EmJx zWrO{S?VTp9^PNBlaPBvd&56KtJS+VdfAJUh^}O_^h88$JW?7eM?Px+|RC1@&xaa*O zH0xT}RCaj$z$DbhJ_*MQt}oNb3CASvshX}wO^v-ey7P#DT7GVz^gNS5@HoY~R9^A? zb?NG^)uq|1J$seSKXY}~Q5`rjDVScDJ|}B#&>-{Xc*xb0LLdPP^_ z)y%~OMFE3!ow7|=6!Qtl%6I@Jyjy}SSi3?#9h7;T z2bJ*7s!()~RC>xQ5PfE$ltaS8e4c+Ujrxw5 z)R2tQXpG_7apAtxA)3~_Qf!I~N81D(>ge7e`K+FW+VBXba&Rw!c+hvQY{I{I_8R

;q8hh{p2f408z=0nU-p;#J+7QyZ+5sScqgl(c^}Ux6U_0-))02I zvH;kr#RAsNz<+#w7cLnf`mHCH%(X#%-R5uGfSdo-Q&-^IS2tjLID&Np4&q3;Vt{!Z zJG;KmXe@@j{`i>WxE$?4K;=N*xL?U|&Mu>Q*{j!<;IEuL0`Gj)5%}x(t-)V7xne!% z73*v`1XpWp5Kq1ShyHXZpB=K_S^v@cD(+wCRK z14T4Yevj?}`*<#U5$YE^>bTbqLn7bL;hrY1abODjlaZW+<#XA4AqK z!5=F@RZ{<~4*F0isJtif2tVPNftvS74yIE&8uuJ@&z*ZNNxoN)ybSssfZkC@^F!!G z_1VvUb|!!Xy)D}ytQ&biUZx>bDkHdc7~w_R04|XKX@FD$Fq^iQy!a22+B)~VEg3ZR z6rSa{15TK?X%v8iJmVYXJqs9)a{9;r_#d|dqE8yRpv}k-)3zDgi@@mJL zEQEcIXGg#1J@2ufZF=`N1vas-(er#(x#0L}I!+F94cLoN9ynL%Xb1i`PAQG|FeG^s znneyxo`Gb@HwiV}D>NM^2)s90f9J_i1LaN;D&${VhFTp}i395VPg0$to+})<@=Gcn za(U%-`J0y^LGWBTTI(#IIZ%2pV7ji2x%TDipljpGkY(k*=hD`dl>_m)+@5>>1>oM~ z6ao}D2&tH|&9wqNq#D59SOo)R6+o&|j4&xF@44<)vC=(*EH40LWT4n}2&F?%(j~HB z#i&$Btck7AAtn!aM#z3=jX}m*Plw*S; z42TYnY(V`70UzydP0G5eg$^<+zs+b zBM)$X@W%ObXW;Ca(=gA(M+AZfod7=YkKkNZz?X`xRjG&F=%)BQ@EB9bG^pfIb{EJmY!eNr-;GKcJB8u{^)Oat~_*I1dAu zZb4eVcPa=BE*L1QbvOf@-Zv0bB@jLuP`dAEig4A)<^1vjY_f3W6+n_5MZt|yQ=a4J zRWqNjnc}XPIs3xqF5GYC_Q=Tb!IcF#y4VlEavZNBx|W6js9X7K;SKLWa^x%Smwem2 zTx?kOa2~o29^%>?7SNs*ztT}Y_CLQSgtOO6o$NtrgGJ?0^+SIaJEd`a$8wZ6F5vsT zAZHE9S?iqm`y1P>CHpiA7msZYb2yBJ*e~2@NQ+1g;l5(W2dNn0K(TZyJr#Hz_wG9G zJ+-c#axQS*65|no+IKk|Ys6a@!o8!84w)!KZW9o%jZpKmdcPBq2OxSX9u%P`Y*Qd- z))3?3J!RVhza|ZpycabcyKRI|N1zqGY-c3|fSQ~EKMmnIxURX#=<|ajTBkqofe#!?^a_4nIsuAJ*MT;?f}8Tt^o;p~ zHiY7Ydk35+ZGe|pP7_b(Y1hK05j-aKK1XU|U$FgHFUlJ~ z4>A%)M|t9krM=E|lj-@r9N3jpR_>*^=jA6#t3CMO>2f@dtDBd}4FII~$~b=I_Z%o7 z>zO2vOhdo9@<+Cv^Zm{5JPu9)=mA()5fzkzvj71QCvO%Ao?rA+C15Co+)TczDnDPU zY*-4t*YuC7yQuS*_$^YpIi)lt?GCq81aE^9(Q_=jBdL}N!K?m!dps9R;m8kD6aOoK^*^_Ym_E1TB3(H1h06cdbH)Qr~crA=Me3=2* zr+)YCD#Ll?>^+O*%nia=Khk&!{Q2@qs!zTbdY)FOPBcbj1Tg+i6=XTVJDM!J zF3-;H(7j9fG@S=}M;#p!kyj;!N^e4KoMnyYM>kc9qVgWgIVgJUvB#h(HQ^V5f;K#` z4~h^(Y|CT6Eibbs{IsRWCr`Rrsg3zJ2_c_NfqFWZw+SIQz86gz=6xI?uWhU+ZA2NE zCz>@}dD}$c-J2TaG%=!SV>}}@^}a?BxQ#JC4UsVg{-H5f8*6gYFz&b(P6LQH_1vGd z@0%L*AaLBqd}}J-!!Xo9qlzzl;R_)QeFvV;ClQd2N*fF*OiK3LS#ccT&RO6~qO`m$ zelN#MP609wP|uacd6mC&`8luro=hwGmkK^vUR^!8-*x5G-OIHR>w5gjrvVbBDMOM; zQKw@HM=Ja#uOyFiINUR%KT15?H80DTsM54d4eAt#A)Vs-+WpF1wJegb&2{O)XY6^sn1%y^c%i%gTe-!Q;A z@W$H8d8NJ>mCQ?DMlexvFHN#aJo-KOoi`HD6+RNGOg10BUZqh9l$U{gujCO7V%aK0 zI*{*NxKynUdWj5@+QmCtZatA;dfJ>kNX`v6mxUkw+SNU!x56dkr9>{@;&q{%A-rs~m7` z!2X=HUz&#QpR}H)#tm&gYY>c|b^XP;jxs)|V;tIi-gk7cgi3%AZn5UfI7-JA3*#*J zWf@$_l`E^RjNE;BZIa&-be4*dI?y5quuBhyT%C2`e6DTMNFh;HWy;~#H#Rom`HPo< z;EUjaPROiI6-uEj`j;v3oie^o7SWrV6#yI#O)-vmhkM0G#bhiQ6=J1k0IXNKanPN3 zFFn7MR`K+a(^yv00xE|>W)gRJk)>7v^Ys}C{M7+8qH`+il>OvE7CF(8VgIQJI0iOG zIKK>EiDLkQrxpMtMh8|2NeV}QuP9PbpZ8ayj878iASmaxlqzb2aOl1k3TKi}B9Q8Q zi~UVpu(3{cX_#)Jt@yux-*G&S{GQE4sYv#ol+LzMS-I@)A|L&*7UHvA`;9OeBv>$+Lbuy; zl$UdyyDn|t)$P}9w-<8xUEADuYvdyUZo3aN>oi4fpnjk|S|L2(>Aq`k4F8Ye*F#+@ zEyo!h`TaNW`K9By@okImE@_y3?PW}$IevE$7$6vE^4Ej@U=Trd&m-2cRH(}P5^r0< z`jqOH9{N1m7=JF5EYg51pN~Ph&&PEbvszmt4&tK&&^zkrkO-Ba=y`{KbdK{ZO4`ep zFGEvmJB0Y(`dfbsKKaQ{!hTaz;HZsu9~5BHgiuaxfai4FKwH$b|JpojwP`;hXtdvB zp)IhGydawx-eBL21Gk$3R&99}^YXCW^Kyo88-#88;upVY=QaXzhY6%(-5>t&ho=VI z(D4?qp494%IqKj^bS0~ zdq^toxd%Wl6rRjm2l(Gm=X7-s~)%jU`$ z3G(NG?6iGPeE(U9FmN>#XuxQ71i9VM2%(bF*_SG7@w`OjH%*_*k;=t0lq3x8(|PcL z6mIOF>R14#OqTL@8DiO*z-M5}YRx3Z%Jbm2QmjsUlQn__>B|;ywktIh#cJUox-Yld z&ki^)6jNA+s=Pr$0yM`wwl-1%LkxqSv;!Q_o@*Be#hiQ?SJWr&hf}QjPmp|O5VmAK z2Hs-Y1cV0;GDPDIE~*RXPTvvdpObR9haqP(Yhp(oahe7EmNYF0Z!lzd;^sE|x6fXO z@7&t9lkMg05nur6w;Ay8r%tcJndLz==wY9Gb`{Dr&eHvpF3~T)0ytn2VoBB z2r`#c7l4ntp%o7^!%R@45Cfb(QuTtYIx!}VBp2@#|&3KjY%_I=#T_xkSIw8jP2 z$fD>40|$(Ud5JFoO934dCrQA8@xiKlnkdtA2U!dQ_ zk8E?@dn+HG_=oMqv*-tl3kF1Ye0BhOM;*-pp+XeH;3Bv)t=DB6Kvmn}jS=`lP-nl- z=xwSLZxeu>XZqBqKGnD{aGW$bi#kV5`>zSeBdIC)co5)an*ja84?n!G;eeY)W!R69 z>$tWyIe&OwiHxu4Z1Ted(#cR~QsAxW^Xv1U|9qnm@SK{C*@KEig0kID0F@%M%sP%H zU00eO!7@!mj!Ty=!K{R`#{F4a)O5@rgs~PGb#`=j5?9dnnDR(k=2Kdvy#Q*ShX2l$ zA=B)o1j+F~u5ESK>iFUJNckjrs;eUhqVL6%%wLMojNkaycLQ({cqVW%qum!!X#jWw zNWt(}ui1kHd!vpq>oG=ahdQ~06|F&DGzD;0!-jqpmiLN5Xalv+A^FxehiMEn6LBC ztIz}lK%r;?B6f67P#d5qQtOLoaqwNfYvk589DmyexcsvlTkxANti!7p`|y)zS503K zIL`O-zU4*r-GaVLS#jfzu+R4Wl7h6=cLH}#y)^Q4`vLS~=b_ZGUF2oYd80OtLa6m3 z$ca4M`!cL~Xj8TSDPQa-DyL*+5cm$soGL{qdETe)YZZVd;{q;I1@V}XU;tr%=il$> z`@kkxpzbPJ}SrPxbo`82fv09TYBF6obGo3dPg125m6}IY0kH83YP2#P=%q* zn}o!kgqpS+mEw1T_jnuB6g)>+?Z=tRO+XE#rswCjN&5|2wk`Yp_F!x(k2XDviSFk4 zPJkEw;k-a#`JghbwoyRvk*RSuwVAtTQoiU zewz8*WG-NP?xkl9Qd`G`baZEs^B{?e8vaN3b6_%8Dp5MR&VTc?x!<}5u$v?eZ$n-F zX_P5-_xA$Tc^(;BkjtY^A;djWp1XM2L5&{l2CuvV1y$fSmINuvp*@fu)B7UapK{JN z_{G-X5zXK=0tAy}YVx3~ij@TgrWPP^(r*@-VF~yx5I`l4Kb3{x1Nf?Wxd~4^xsG`t z0yhv8eo;BCD|vbGz8?q;W(w{K>Yf1H(R*AX*wkKkUx^C63=-K8zmZt4$LfQkR6|;< zs?H;&D*XUs%Gdm=Z>Lf*I)HDn={ud4E96Zc^t_8toj3+3<_tVXQsPtle!=rFWvJwi zI+8T&x#gS)Wa>{CQX50gzO=Ce-@364KXG&s9y1`+QcuAHi#-^bg+GKg7Yi?cUI4o# zukH05oTNRW{+SDLp}Bhk$lo<`x?s zZ7vh{JZM&iEhl5x6P`EXI)8-G_gonG=@@a3gF0R&r82XZoQ;>g`M|q29J~2jhHBf( zGIOqcPI#I7594zwAgQHsBSF6?#%bG^D1Wcg+M(^hL;>nb=5kf7dq2f z`;2^#?Lu(-`Y6=5iecIj?4@!8r)*zr_moC{M-6W;Yz$$^1Hc^ICD51y*%DAk8X4g7 zyVp12zkmJ~tSuDqH(s@7idI2(m3I#v+f8*+yX@K90M-4y7+2P~!M_X1F=yw57ciFv zK)T0wvhrT{=K6@8MUKStP?<`4-H%58dz2aPN8Sc0i`ehVhHx)>8F>LDMg&x1WexM+ zxp9Mx5D?0t{#9v6bfn$gVPaH3pVkP`)V@%J?PJm|$v4#S$;S+~L~a|9yqoDGANk0>$m_7rZf=wI+xxU_ z`S17mZ`!x#&Ygp{2|?X^VcsM7`MJ-1&i>)|!)P-`y_f{tzMIy7gCIOV`yi+(NWT|2 zj{V-m_~Bj#c=tQ957K@ZR(5n}5Gn{zseuX;RMwNyLn^l@EqzKQ1rb+*&~JV(M|Ej( z0CXMkI%OUnN_QL&lPFhsx}3r%$3w18y7tP|>jpr70dxWwvpOaIX)g(wlTg_NWfnlF zCdI7|%W4IvL*D|mXV@KoN@N5|`4$;=h{iYfO<`RMNJ3W(|WrLsJT z>)YToaXJ9b968{!Ou=&%%U9kIzysd|Y{ZNzHc$)3lKx@fxu8m!luG6MOz~eebAS}^ zZk|BeUZ*h)=|VMOoI%#;hPAHrF^zAXgyhkLvM0i08Dq^jz?eDwq8=g#|F5?h(< z8rkbS&^y|LxB*v_GGu7makMkiaAjD+mH|-y*nm(w2HAS!ktNtN1Neji(O-XLkxy)H z6H~1l(s55`4mTmqjBRG6vL?hhI-S3`JAw=L9P4VnEhCp_Z*Ie%uJ6E49AAP}>s{EZ zEaj7O*4A0yrPh!<5N9CtS}kgTZ&|DspZvQ80gKsTBJD>_Qv;)5WYtKn9?XMgW0sB! zkQBzCX3suuRN?D&<0S55xd~$Eg8+oHITni7fe$(CBNog;miv&}d_PLw$2L#c2P+1o zs{~l)pfBIIa**0ZVsRnP5#YYPTf&)z9$ZB}8K}#_a*_>w%J&TXylv*`Z~Wi}T-(}( zpE|t)XIB?PIr2CR1l#Gl+=nZb8Xe+$P1yf40|WX^JY~UK0qj~Cvv$Pr=47-{g!a=P z0q3$z>hti;!CTmZBIl6sT(HF3n3D|b{mSDfmW*>x*y)aNCy@2_#o&YK#hBe_G|sPSB`B!!nWeE3wTaC zMvypYFnyA+*LTyrIS6BbM;>_u4uYBhvkW zbooj7>dNEaa|#Rz%;y03T%Eb!x%zqDaeVSR>y%eWJhY#zM;Zf2uwC->#FI}4I6A7j z2(wiT9H)vx>4|zcs%)X6e2!qK5?98{FY(moeZ{^rU2@{p;y~7zFDN2ex-59iL0^AW z@dO$YMYD!jV91$mKU4q{cTGirpXyW5YdXyd6(C)PS`7+xA=c`+^Ga-pif~X#FUD^= zwkZJqKx2fpTSJhsN34UZ}4pd%3oQmAI2Xh-)30WUoSMkM>|VIlm|nAA{>Ae!EX%T-s}4^`TjbB>+=1H+DgB{ z^BW8o{F)nq{4%tO-f!q$7%Qa?h8AHTjA?pBI*tnlTtj;NgB#jK0&-iKcrSfCLLv8# z#XdhvqZ&fsVHz(i1OhH!zHAk>=zWC> z;wDO43_1Fl&wK_x_`wfCM^$PggnLKh3BCNfb5J{)mgaeG-mCK-!B7H3@!5pWC21{+Pnx6>Kz9qkX@OGZW=O-Ec|!IdX6 zM6I;!mz47i$a;GKWW56F!0a60zE{1x4zAGS_i}v6{1W8PDPwXx$+kc7)H9La@W~)w zju4Z+mBFSV%qNgiR40IPRIRI!BLY0YWCa;gv04wr>WIXKd<3}Ygjbb-=hSvyp^n9H zOggj*AbO0~F{!RgLb0uZ@kL|Tqs$Xh}o zu0%Fhk4g*+AnLo5{w0NUL0;JR2a%rz>EjnKN!w6c7>S7f`_%W z6*zwE=-hjtJJQ~uNI^#(jUyS#wn;hMb8;NLaC-;-(RW{l7q>_74g);l+P7f}6FlPFFTzl}}LNz<dPi(NdA!y`T2lPYFJhvk$ydWzG1 z+Gn}5x=XQNRY|z?kOp)B*f9<5kC3<0{O1o(kF8Ys{jPlu`VisdoqxgrqBnL%Fen#H zNks+Zr8SYiLvZixU32LVUfzJ;FaY{rJ-GxAomeqoauI;pu-8tukJ|EKyP*{604n`q zKYf2%Al}d69s=Jw-T2vb+(^RrwY^?O0|eUtxDfO1Q}tqd5fG=S0MuqGtMJh)bg2VS z4F#p^0UZJ40Bps!Y4O>@pEVRpou{!tdC6yc*eTk3m7_+Ki;6KQ+5m&ojgqMiOB`5-IL>4r@_X_-mB|ega_@2cyByB|)%UTXojVZ5dN4GA zjyme76+&PJ6^|HV6~TA(_-h(w6v2miI^*?jqRs<-Z|cDFjt+ymxw*fD0OW^0^dak+ zj$z*MIkjJajymdSZz3fGd8dyHjV_fG@?K8S z#p{sQa=^MI>G7Qd%w^uXa`$T2Ucg30AsReQqS6ZG_r&*~4ZtaZ7*T_-Dw=NsP*V>j zuT*79DwZY6MQfqtO_jI_{~$46?o|%HET)hr@YH4`FjhsdR`8JUOMEB=93du<0T|Y+ z1h?8}R#EVdCl4g6q(#2pbfSq3g({UKW!08ZpadLio-TqRb;^IM$Sk809hlsMf)=P6 zrsyQ$_?wEx3K=voAYAjNQdzpni_@X2_$Sh6-hMtF!`$SF+3ieCN~ELj=kGf;m*<~X z$QupxalPx#KksM{s(a?`M;REl{i`qEhL3#x1$b_A2=9IU33$(IPr%Et@12qv`qzj5SYGFV?Jn}hA z?+^Gc@duY~!hiGpO?c?o68!rYjymw1(kUTpU|=?Q&^iN-5~v#Lwr%Di&Yir;liGsd z5TghX03GU8ac@Uspz!CF+wZI{ypD6K^nH=YiW?&o-q^$&Nbn;R$S^kSDpmA`5931t z^PqPg`4lmXI)>`zA>~6f03&BI(z4e|uxGiGTwVXW_dSd6`#q3tCj;iWQ3>r2IT%jz z!tZ#*1{yhW?|lh$a~bh>H~B6GkQ!nH!vXdVN#g*Cj}1;7M8~t+?NL1*Jg2;!2YN>x z?GvG*8$k*L)<6B}Ps6N)c@d27s9n07!iVn{efYy4?#5n6Q&Uqf@9tdegCjKh!sitJ zA*k85(bf}BJYmbb7tT~Zi0B3f89@OJS+L(`9S=C3a?uBxfagf}`uW`ZZD7=S_jfc4 zaivx6yu-cnB8^kbbEO8)!|&ClC6Yh{&zDo$A!n!5)E1Wxpt+Q#)(jwq zpsWln^@adI%4nc!bi{a-;GC>%lwV{PRei2YN@75za9RH{7HQ{M*^tseL})+AZNX zpSubF=A{idZNRI4aDEL=EgC>)G=y!x4vhSnxMksaNtey+Gc6j(@bwN1u&@JU7^MNy zbv-=WAb>s`=;39nl9!*ZQMr9VcrJJlY&SX8jFxdjV7mlw~0 z|Js#Jc{j@nL?--G?z#5jBUi@m1Tslv?#tJS zOf-{8^aR&>=*PWlg!Fu+^6C1nk%`>S0o&!dGTB+>N+tF3>ykoPbrn64NnCV>yY)!- z;n2yzz@C@ws&?~MbMP{rA+HKt&xTcLFmQ2g;0Q8PJ+Gj#9UJS=RYsgXx z1;1ZP&HVza_8XvXDv$2W>b(ia-lsnGseL;};BN9X?m&k~ZS*V7&+eFogC&fff`15b ze)5x_Z0*^AAo{%kdfttZ6VTgxRsbFI<>ql0zP%ZB>taWD0+9j_NrLHhAax!1oGVX) z;QSh0&+$b0$EB0kC7<#`PiBPag9I%6@3#*b95j>dr_ew$l286p`q#R5URNrqn<-rZ5LDIif}%A@7A5>gC6Gxd3?<2~hmE2IyuEOv(mAn8pmlU(~KEOQfs8a?tdY2f)yV4FR&c#3>+ zr3Vk3YX&~fMs3Js)RIgnd~_4i0R$w94^sDNi~G6c4C%0Uj5!OEt&V#O3a_0Q>9I^y zCawj_o+qu+y_NqSz((bEIDGHf>-WM@5N;2PWjY|VF!x-Dcn|K5My#C$YbRJBS~C!o z_CeM=x#*jD*Mkk%hI1y{)m@#OtIfepGAyF?@u{mD@EaG`;pjpie(u5%IKI^PdmYDx zmA`TTG!LhZV7DD7C|9lgn4$f%+o$yVxOSR0>N0|>SdL#0gJDisQ`}lfz$|{}?=k$| zU~%9;bj)WKpuu2Z#~tmBmIH<)c^Jzb&qcoIFEU#Ui2s@z}>aKaASMW4;@4A zCKiw%MS$6kiC)3>bjlk=xKQ)G9(zv-QFU}!2WSjY$p2oC#vd6N6k*7cEFH)`vKN(K z@A){kW5#?xwzL?G1vv0eV^+RP@i6r{LmN7-fR8mw%MBth9XGzK;#7y;M{XUU^#C`xPet^>y1wcu_m5;kpxIP z5Asl8r~|T1(hNA~9`}%d*GzDs&#C<(LmAU(uNV&egJV!f=sg-Y_y+K>pP_F`U>@et zYcW=owuRra-&xpsQl2xtEF=a2NqgN7$C@9&ejc4XaSYC!IXVCDQC?OS4DGznJKBRd zc-|-^Hb4O2`7>l_%KzT=E%;}DeigpEz6*cvfn)F^Czhel0VF>+5#T}KD})K=d_sy* z%PAk*Q(9oAAY%ZTF-M{>2hh22$5tk}bx{e%GLKgRipVpTF$r4+w0ZSnAJ%tESYC)w z$JefI!Vip`e)hgKIAuU~OpEd;ie~3@V?PfjJfFU4PVM5#hR|G8T`@K1km z%l6m1F08@*M;09K-mAIrGPJEjuwO;*V!OtgG74tg>SXFY(-T8h2Iezx)`jYh_Y?xw z9@OOkvP&P&V|UV4!61O-OrSER>lXvpugdT90>B)j3Q*k$ilcXUf6x#7ld(WgQTTIb zSTGp4wGHPAj?LJ1AHto6yK-lCr{km-WKw4=JQ_JKelo~$bq?5jSTBIhWYozGQ*kY_ zz&M6L&m4b%Wi0og5^`OR5lYVi@7y~XCz3BOgO53CJAHB^2P)GVuHmzk@zsTJ@2H~# zB=VY?Re?KB;oS6va~!zQg!UV#Y9mbaz2fEC6wE{b<)McjYTb*p2@rsJ=PA5=2cV~f z@@O*VaQ(nB*CwH{P-i$Z8Dal@{No>o4}9PQjo0#V&zPp`FRlR{ptyg8tfpp0O(vwd;!<0}u0_6lWD-S@H1eR;UQ3L9$Gi?ouCdUZf1z;d2$0;08 zt|9obYo7pO=yzFEXrJ=HvE@qzFq%QQPNB&aZi->jtPL?Q<}L#ypm=?tfZ{8<>)yRP zG>9SLG)^e7)nYRRD?~urX|^L+OdxkuoC5=lwJ*7(n-f%t`r8 z$hV4uCo6}5l4t;~3LafEDN2w^;Hb2N<;)s9S{iA?Ip$u#5)6EZSU07G^Z>i!MQR<6!m;O7 z>*zs_nFu_GkX#3#7sFn^)&St!F9O`!*oCcO32TEi0>{XExT9C~&D|0{|IBrG?)Hu~ z0(!&oMLR$39-fZMDRt_-9QcN4h*Lz66ra&00j}CbnLu#5*DJy{iPEB{F@R1Yd}tBM zo4;2m+6#ws=G}d46Giw4Vcu;zCtosVps?puE*U$G%E$-FmcQq??o|wMcH^Yy!E%a9 zPc+Ftfqn0Ee-MD2*to!I*pKoa#N7-A-Sy3`QBhR6>_8`0|`lA~k?=h9&wlo^t%6le%EB>*KtdPJc0LKu z)@}ln)t#T*g!X$)x*O@EAN?r2``zz`CNyr{!Ew@r@TiauK;K`&c{nS8F7q{sXn;Wc ztm}Of&>6>XH^w^ZsC~+LKkzf^=$fP)a4yT03KV|54h$csOriSf0DaC6zt5FGk}sa; z2?L&QY;Joc6)9B-#Ae~|T|qvxSIBCeRsNR&;8fu{#fj7jrpnal9_OthA9R~MnwhSZ zc_k;oW3>QZ0;sCJ;<$+4A%T%&%|5+TqMcmW2!D{{bQG76OdDZ@)0J$hmoRaTHv3^R`g60R+ZiCbvn zA=UvE*?5N7+_H6ezBQAdVmzm#TBT)rCKXT1WOv`$({SeWX}B{;TSakq{&`1x5zf^O z10D_f3Kn|`W*suAAsN8+ogsYT>Fe<2D;w}e15~~3%qpB+9>5@1L73v+yHwXzLQKac zq6)+6MnI(FpRZ}NmrMM+5-IXjV*Y0al)O0&A?A2On-TE2>-*2 zx8SQcx8R-U*5J)2mudG>ITM?=#RA1z`;gs53?uG0R4J=l4_ zaRZ-9^dpFod&p=3K=~swl=tk9fH48*26H&h1eM)VB}~nB+SSHwM8YB?>Ycq3x!hOLkrb8EY?3GFBLceXA=s8VK<1GVY-k zi>kck`xd`1!?*91hYULSJsG({i80B`MuUbyKYGt&qy&0L?Ev(SI=TZ06}WZhpto@r zIEILC6Rg6p-v>b$TD+;3>%9P=;}}68?9oRbg;@#ZjNYhidVDqo&+Ziih&z#*juG-y zZ4!$bRx1ITmtI4GV|_VW9w*GZ9hTs(j2 zMNAO@Q5`^K)&?LCY3+~1R#hNeCE891T0~8ND^uVBfuczv6(u{xizj6+Xq|!!5zhru zG&rU_>{L_=N%fKIteeMhPkg@xfD2_?q>Dh~%g_KBn zStdLJD>IQ%0IxN0^jSmU73n%$iTJkm&gRsY5#Em~PO9B2+WpzYR6ZGEkj$eZTqpgg zWy``paUduH2IR=lz7{Zca^~9hD&u@+3 z<=r7Xa%>4!`l&ar1-CelHQ%%3LAYMgf=rMaEGgw^B+lp#t9b1-dfpHRe19@45xCio zOjI+Ol+BC*Tp1vhgw=rqBA>gt3IF{0b+~Be=iARX@Z5pyPCgd+_WK&`_kLu6V?o){ zT(@EMwKq5{gJDfck%&ZJaZoiFDKY?=Ji_T5^0-%ZXN8kElW^|348VNPpKDIX_k_Ly z9Sl8f{$3Hr4Gk@~e=Y1@kv!))sO~%5)eXMiLlae)dvV|9z21SX|4be<23%XpU{t^j ze`zeZ`K-eDwQUIF-_>vDn{vj52-=q($XD!KbtgLqP9I-d1U{|gJDPmQ;)cjX(l|Ny z-X{CKU=aXhc~sAEIC8S~@}YZ_zXQ-a>gW!kIxna;0K{Ma^HQwW>#QzKOz-$RHb*m^PMw4 zJJ9PK*XbsaX>bhA8onK=>2o4?mU~AXb+ms}^*E^l+)_Cx0qz`F&ePHNI)%Ih=4H9k z6JC}r`Q`1Bo)O>p)^~YJEO<(~Fbl2vFrd*>1*~^ADQW`{u4NknV_er3?kRqlx^{|M z?tvaK50!dHX{TuguXPJrKncz&iAbn|fx(L5x&+!P2GD!hI{>)R6Fn%DNlB@r|2myf z={)mYdh%qawgiS$Q~!Ed7{p{etz1(S-z7{>CSsUstX zDjz`J*0Y}%-j+-VaO92QC5j=Dz2=?~&5x#V=VdpO2|f3l@?p=nZwSKI6~MjElf7l! zYOu6!o>;hA$Kz=1|32I`?Nbs10+&0#clG;$>fG~t2F*dp!iSPapm!klyxag!8*tMD zg%-?>`yOr>SM(@Ud3sJa?QK^F1>7)m@0!6Ozwp93tQzncBSZYfTTAe+S09Hh15p0c zr*FW^J0<)Ku4T-)B{9fTDv9i)7-;M4f_yXz4EbKFAhQtGor#emCD}{fU;y(DM?2QL znAQ}nd7n|(b;pMVzF9dW6K<>#_T*vj9Q(?J&yQs!?+1RZCPSETOpJ!$K~9ki`1=Uu zC$DL|RCvHU1QGy9(mP`VekQoJ64L=ehyr{Wm{Wa7p@&3XmNLUDee~B-CJA=6u07#;8xsRS^_|(+sS0TIng-yl1x%gq`s6JCX>_2kB)@VV( z2v$w`Xs&|A?J$38rT?^ME`hlT3KNh2H9&|g35Hz>&J2OxIpiSkR_WhSR!CDWz`C5w z$e&6gAI|hYl4H{x@O;*|<(v43SY*>XCGPi%-qUA~JdGFh@}FFA zViKAU=?Sw4q>32G0-MDmL_a2C)QgXkVu2WsJ4<~M~LoF`$50)(-Y!I?T z%z3Hl_*gnTe^jA4bL1!b7Ic(dDDvqouggV`jqs0=ePHF*>q3$B*TAwI^LTw;?wtK^ z)-kYPXF>MC=Ho$ z*w>i&`6=lj7qKTtlH|i%hO6V<>#@1Frf|t>T*?_Q&>vI#2I@&u@RxL;c{ChafXqAo zOa96@X@ddKqcC{O>cD99jU-2cU6HDB3g%uAiT|bQ1D_6-T`Fbe4A{A2SM1C5)kIh% z@I&S5UMtatrFlf10b*tvZ{&0NWuUGC?7iic$`1kgKa%cbw-Zmll3@JT?FtOIr%YN= z<)<=Kg$KrWxO<5UtLM)mvY(CMef{kdst!l6GV2?Wwhpu`U#0W>T=B;9CoI3kiD9)5 zE>CJKMjOMmd;ZQzBudE^Q)vaRy7HvCk^aM1z3Vn~q&=C~ge*w0Jca_>cdyh#nxOYM zHA@c-Gd$Z>WlLu~TkqF%gej&a|*I;(%;tU^%Jz?A;JS#ZC%c z885=$1q}bk&0A|gI`8^S&NWjD! zwugGK6RY}M0VUlXZt1Z{ux#wnIDoe=qQdEcwbB={TG0P2fr?vrkE95(a3l*eK&%~M z*o6Q`-&t*zH{vIdsv}ib4;qK|STWj!;C&61A-g$7Z9~8o79{*A8<;P>0?bqRUw(X~ z2z6=xI?p%n6%|iqyRk}z)HmI277f>>wxL5SCj)i6uNn`d-cI9Ase|~Fj*(bbR%|*= znf{h4J$?Q0#)B>S3mXxeC{NxRjP06{=PglAvu4R~VbIUO>V3ep;*+3(Un&jm2KjbY zSnP~Al;>l{I)};Xfd#S(TTVt{$RBn8$}|C>Sa_yo{jR!bLC=83<6=jaAdBuU(=(#% zfhvHn0$o+Gd#FQs8mZ!V_XiO7i@OC?-oU}~1ADysDX!#x=N=xcGJP5}i~<66LO33b z34sqPt+?K z-ttG}nfgI9#(O^(sVTJb7h8`l09ABc|B}fOU{*H)EUU;HD3Nv)hZ@ zwF9O1f~jv=%@=aW$~$FegWsHx?3+3oHE^s1lRT>Sk??4hFcM0{*mrNSy(R9tE@BzF zf}VWYM{bk(D{vc_La9x4=a~atH}A+888kIsZAwu?1T8dTt^Wx&#T}d6*VWm z_ik|x7jzG}A4k@FXgcnHE-_;C-1U6(@WYy{`=7>Yib=SO*#tBue2!F<3Dtc3t`o5E zD3vj+E?=6D)(jsQ^M81%eoXhl?imiCTYYv|^=3|o7jm!&j6EUnoCiQRtwlz(ILz13 zoY#WlBrj?tyc50HlLjH%5gnmWC;@r#@Vg57@GrQ&OUgmjg-lHVS&_$cpcX*0>tr+W z39MMabL^!zAeBP|sO;7#4W$%n!z)Le|H`~>Par#3>mk2>TpMwuO+f9DAW$A?g#~2* zePF`el5(Qi;QxyCAQU{e{^DR5PMfEsQJ5v7)Mc-sM5Q3BfXXg<&b?;l63x z;90Iv_dypmZaiSeC*+J`?S+~VoB3bxTBrxr%T77P`4Vg`VlC(e<$p7~aHGcgOFyB9OgkodUlLn5&i~nr3%x(j+$qwlsP)LpeEGX(%1qdg^q~Tf;5m(R7+(w6!<7W(*1BxN z4+grRKn4g{m|c5vo19+ww{z^WL~P)j(-rk*_jzw%vm{T=LIEAM8o?cT6Gh3z`x#-e zQ{QE+{9r{Vns&*lSHk47vz(JPRxAe^YAT4zvdxnFeQRif60FSXmB@7I&-tb%Itz-V zNS{EXeRL?SHqa=Vyj{KNt^sSE3eMS1*%}ujS32Ju4tNsT4P<%4VE^{RUvu=!h)auV^bI z;-ek&{n-Afz9NY#&2`Z>$%0bsgLgWtw|VC<%zR;M^haalYGH|`c?M&*r7Bup>-A<+ zw#$_M{rtobhMg(ey&{oUhGcO^Zia%a*WH^l?C3dd{9)t_g`i*E2miZ)R{DteqD+oj z!~mT!M0*b;)X|Y(gH^#9RMY}~n!iy1pW{w&LhlC&IEL{OK9YA)RdZQdzLQNl5!#N5 zLe+qUy0M3wNG2>@sw=MEJtpjnXDsqz)8TA5&XEF-Pf^Y(t3R_6iL8e17=<8Llnc$> zz~i>IFaZsy38QJBy-9q9|J)xuslc;HG(wHJga5eDJRE|ek9m4}a-U7^ywV%k+L)r@ z{TqtdfmanKcWfRSrOroPnKY!e2YXH4p;>oi?EjIT*DI`5#d68@6^d&%gK;8owJ~Fz zlrfAQEU5SQtxlXU57L(38TD(`+a}=0sR&$ErCDP0FqIkgMma&GW!`~D@!6~~elk8) zV@yZ%O%Al{p{GZUrd0!F!k&lRh(7&7|31?}pOu+jS2X&HSpt#i;1;V6I}VKG8fvOi zXcpmY9iezMw(Hmi=xHCeoOOqwMG**kjYt1WK<A3`PyLwH;`_j z?LEUSac?4Q7H$e9nlN84kcQXKa{FG-Uu@2WVKfjL!Ff$C9Lr$wwcgjpX`0gZhPMjX`kU05CLgXI3@S8$gp;y#hw_65Hj;Y7 zt@gjb)S-_CN*nf5wF4>)+8bR8BVV{X*9^2iih0CaaFsdOMjEdN7OSW@q zA0M&!6R|5Est^mH>=RQ%HE+KH`s4G(>d!5|N!sMYRhCvuby*#sisvqbv$*eiE5wih z^`#rk{*g-_n^;H=M%f7rg;J+fbWgjAi0J2an>512cmV$HSEL z>P)^PyJe&NIGu$|W=$yc`cb;KAq7DIFH(K)%yii=1?uteU94cX@f6?E*Q_?pe-m(> za^!}b;j2FI{fEh7ItCFo+&(t&1altaN-N zg!#T}`sC&}VPk596MLPS_pKma$gmH_?7Fdojp@{zHapr#r{ywF8UIbOdByZt6-+?R z6vH;j-gO!HwbkjTNS6^EJ0JT~-lA-ccxCYpHTrMv>He7g6X5MvZ^hD?&ZP--s5&K7D!KI9=9{KhF0{sV=$8I_}? zRvy2%R8^Rg>f7UJAk|EsU)9aOAYQwfU=|`Pf3 zPJfG@7KRn}d43{V^?Ah;iQ5>OTzmL~(A^K-3q9x+yw62Ze@&v1KFCxcce_$$OiboMGI};hg!}^Szg|Ff{Ta?YsS=mFl1L6T)Z>>g-@9@=ke|S zvwzuVCPYK0&(6%8HVsdHZ=W7AkneHcQii`iIBE5-1>Si0rQLXcwm;o$>E7FGdatF& zBN{Brl!RXN=db^s(DlL`CT=d=UUIc4HgtB6snX|k*69?MFQu5*3&s-l^yYPoaP;-E`!)h%siV4}VV; zf%&KIs_<+Xi*h9TR|?(=9&(u8f9n0#5_pOhW=$9a$L&BpwfZxP#Vhtwwm8nG;Chw1 zN+Zka%G41oi6LP!v>{1*iTK>`yjIwrzrc+W&$SG+{S4r@4Lch~%&y%sW&lYOYv z6z)49Pg4E~@kQ^rlH@?RR3`0RIlVCsFc0xXfe+<=E;f<#E-h(wS^v<0+o7xhOPR!L zf2D;96h=<_0f@$3{8X*`e)%u3dLhqBx&`vZK^q)IZ^ z$1oYEpZ~az`6}uk_IUs02tVcPIrZ&|O_JmsYkDIi=Xa#(VZHZWX)y`DyTN83a~D$? z$mBPkpiLa}qChl{kO}fjGkmEmW)l(zNoO(P0|)evH1%G#tgXGhuH&y`M!nWM)5KI2 zbiZZvD1rsBiZ7IN@uYAQ;1eDXEhyuIqOEH%^7KFoB~kC+zk1|Ni)G{LaeIkMF0}(z z5;!<2{c6>Q$Fm&w|G`@*W_9Xmr>TE7U>D47?_zYYsRb&|K(wgUBmREwR06x~Dl+~E z;5P0DO_vW6m*jp+x;zF7P$P8ZY{(OS_jIibQ32`Lpq%Pv7Jf-8Zb@rUDk-r*z(du7 zYlWY>wga=~3Btz0+fA*?1gA=oiu3HUef^wpU0yDpPPW8_a}>rBJ;&ge!1a7HMrh7I zZnlEa)qJHhsbG{lD&tpH!*cv5+v&D44)1QTV7@f`>L4#W6p;UJXW$21h2S?}KXLF! z;r`%HdDEWEY|y*Y?*c4X?k~zshz){(^STo=uO4sSh@x5FFjyW`RT*Fnmprk2 zOT__(HvFDM7;T&r0>*Py@%D3a-Y;^E^YR@$det$B6d>gx)QtP6z@kl5(uq%+0FEHpRlI&XSej;F|HLT;)%UW9j$T>dFh-2M~mtnLzH1RKzVx<&VD}}?`9m2 zzzV)ouPSF+Tw*r`TI#ci7MQ{E*#R_q1)1ql%U)pSYA^rI3mjqmyV2ruy@QLWr+0GA zk_T{E)NVeD;>@Y^9WPHH)J@p(fg%ypGWdH$xeNk{A!=jX#^S}Yk6U(8?YuwPV07Sv zHtC&imW+^XvhsUr604%DWAP3h2p5I-h?<>8IN-ZbfDPD^vnE>x$j{0~3Nml(vDx1; z-*}9@Jy?jE8PkmJWq%?bA!A|XmV1;={99mcGyHi&H$jGa1L~W{_4V2*6}c{+{sqW^-`G% zNbC|@T;1(_utX?*Gxb*dn*a8|D*EN;#brNEh~O zD`*td!R>l@`Vu(zWXVL+My6S`;wjxi*gRPWDi^ogdN2@jn>Hn9;-Nk|;`cBhh)kEm zBfs^l*m`zEzZz5E40Z;4A27G}?PW+NZUi=C+skeXDh zxI6u!Xd3&Hu2Cez4KO1Z+!$JZF8k2yP4y_f(;vu%oGccAr$eftkfC~>*T(LLfqdcc zOM{(C&D9R{wx0O;zhGseYwm zdh?{i^mUq(UI~f5u}p=xT$hBGq(W=4V~to27#S;C>o z+NMq)ON#n!+&zCgCRd>KoTmiOB5=IWx>i9>;)6cw%d)Ew3)1<%uwWNs(NZvC;HjSS zvFA|X$Zrmh(2Bn=)1owwd!CaabI*y7TGao*XvFfrBy+8i1~Ej-5}Vp zuqE;I&r8f891oJc#SK4>v=?mGdDz z$b7wx>u0R#a%Vi-SV{9^o}{+fehsry{G6^*ISBH!1-BvfAAm_D$G&{z+EOJDq=^IJ z8wf@r@SjbOP?@B*NU(eJMQ~?V2OtP@Hjs>_;ZmIDYbsjI@bnn~&l$(ly6`gi^C7L9 z-?dbd)efELT^{V)TWlRT2|`q3t2(HG-9(4&1{tEs9KxMvW~05nOTyu zTV9(e?0;^LEP-hfKTbO5si*aVyeei|3hE&#pz37X_EZF z`m12?kKU;TpA!q=5p?9~A3o;2!M^`@lH8FTS(4r4%%HJ`i}s$@VHJ}qxlm}zSP}3H zXN^d}9f%iAYY`Hks3B8yS{Z`x}O-?1%e1edNK2Czg2&>%yp$Q8)BLlqp-2RSE=#G zM!DsQYK^M-_hlaGuR!|B(KW3xY87d{K15rUWx}u1k=YQ-gaPS%$H6dJ(~Wtaa7)H0 zM}s;BI5^yxBU5dP&^)>nSDhQ&m1hQKrVbL*Jw3#n6??}HGSf;G{$5X%Xw4*s-P-N) z;xAYb8iE?(<|{v@hfL)okmzpi{CQdp{{!&S<5w0d7Yi!$WiaOz9|{pYk^8ysLr-+DP{1Iv!Ww$Qhm`jn!rbWG z#|j2r+B$!)^IufC2@r?Tq1fyGgoVOm+M|nd>ux;mHzm4pXEEqScXSK>(kOCC127vS z>WY@)8^L?+n~4O~E2(g3gLsRCBEILmV`%wSuYovtDgPJsXFSt|Tl4JD=Ylul^>O=L zu<=3OlkS0W?eK68?1~UT6kD!-8L)R+61M?Gq0&Ed**FX{gh?h?9XTPUOVFlWrEj zXiA2+uW^YmXeNPHnvHqy2HCG@OHTcaAgRJH@VjUM-}@I^QN16$-q10yG%3?!O4p}2 zK@YPh*t3vv4p(gf5x!Nr@e#=~)_b;{Sf54t!NHa?Rql1Mci;;la~A<vD zR8TfO_NE9GwS*fJh1h`wW_NkY?DpxCgU)(9)Q+;@zI5-3MCSB@AR>c+OrZ1j#<=jY zK-)v32qyc>HYXvLy7tiskunOPZ%ELe%ZI>KK3?i*jOuDYP&ZtF)3Y~4 zrKrHqp7$SHc*1V!mzSG)#x3bbG8t}(hAy_}8SZENpxc(he3gr&qEVRw8!4`pai|G_ zERMH;1PCd9kP-NDy6uA}+3FF}%Byu3pA#^dN;f$yb<3Nr)TIZVf2LoySr2;oH{XZ- zsPgFI5EUHbg`Pz7MQK2ETHzG#AP8qUjh*V5OewnyyH?zbqeIUbU(-6jf@NUhk-e1@ zDb@B;$kDz!x{im7sD4ne?C9tsN~ow*(4o@$flTxq&c@6}WN~uZl#j~lWJ12=ZIF)= z(CT=4WcOjHUf~;*yZ>0w(Or0FAcKO~7(Vdc|3`^h2FeDZzsXYPUFwG*zP3sghH`+6 z&SBGG83KE?Y$YZDX}%}Qm45XFjWYR3|D`L2E+mL#OU&OQk)!Eo~;#BjG7Vj!>2Bvji@`57`r5OcWMtT7EulYL|JHQmJMTe2hZGPhYRq0F;7hqY3hXMa`TaT$66MfQ2}p?R1Bxw^}av za@9L@-kbb8Uo9XZQ_MLdFxwS@<=eO5n4KalyRV9*#NoJf((IgQha`0Jk1J&e)c@4( zM4EecJ4~7>3{A8keO|)9iYQT))Ro^YxvdbAbhNQ*wJO6{U82WBc&%(V7$W ze@i6!F3jtwXlLRmXZOk#)$cA}D2Ga%rJa)XWahh4uTW8Ql7FIKU~~6c3cyH16}=b2 zQmPpUJzb$sdC-oQEP4KXN$i=?yg4)o{I*-aPgy3UJX5$kU~@qe_PFkO))dE2($lz+XN4@9H2&@8jl<7!Cl) zUWtPQWGZr9g_3L^{ZE?AZ*`3bR453#RB@0+(=Ne73fph-W5*W}bfXo!{1Z8wpN~!P z^uq^FrqdsJg1HU`q`ey0&fDzegNRbG9F^*p@XvbQWIal)3tK^GtrT*3>g*_?3tJn9iN;4 zF>X+m8Zt7}t}vT0mTOvzvh;i~Eu%QksQ#vbY^j->nA1?=nfa zZXVAMZJuo+lNdz&^?8Vc9 ziE`id!le%6#Imrx3*J|xIf@EN77CJ<+MVDf$On{FK?uEIu z+M7z?>ksMYJN`2D{MT02s-me-g;^A;dz!^)92bP!VPrdHySr|ah{{OLBC;#mK??Rk z85=t)=Hwg<+guG7M=+ahTwue+Mlal{YNh46w1$O7lV-jT%av!KQC<7XoZZXoBE$aF zq(*7VHM*b$uDSf4JNW&ROIcHr%dUjGdscMa-eud7cj)>98?8Mk7ipu@YJX&e=+WQN z5$>lRv&7Uj^xFzrfY-HNk-NNSsN)v>u=?mS4R05R;ZfSw$gDJSl`4QMK}wcXJ z!NmP{5Ri%om72iqCbTAAlEPW7KwG5S=R32C{ndgidA}564h9`WOFwOVDPg6Zq=;FC z?43+oLHdBlQ%<(wj#;a)1tKd>5jvwz8_xlB0$pPl8s_48Rar1tLl-AKS~q%yOtMm z^*2+NU^&u;wMYdpe%0cqmJm4<{jDx~Kyh#}pH4PLWh>KH{lq%$UO29)tDUG5th<}s zPB+F#PRR;k@^X(KH{oB;2f57eCAVi}=pw`)kekTJk5H#pcok7EcYdkQ|BWsC&E`v! zLOqS61a4^e9({BTJ2!V(EoXRRO^}yd1Wmxc&pGt#TWId;{X4&N$Qu(7ZNm2;x%(|>NDO&yCxiQMCG;vZP(dKQ zIz#-GYlbjb=hV5iqx*M9LgcFKAYYz36!B}z6@rRDJlQz!I!qVfC;laZk9=Hya5I4~ zHjv>ev;n7UO%3yU;EMk*apPWHV)51m0nAEs9F^E`HOv06NK##(Yw+x4!{OhDrnPu+ zQKAQd=~g7tM{46cyM^;VL9p#{sD+Sx0Dv@b_4{gMwi0Kvk{yvGPU2&`m57&f5;C`s zbLhsYsEwdq|I)do@H`52LYufr`se^HV&PachS90In~@85>ma1^`svb%0P!b-fcLxh zER4{QyP`E4&-j&+U=iQLGyocf6iM8V4!zr*g>D7z-zO#VRnr!yAp-AMGbmWFkGWO| zOdl>eN1SI$njo-Jr1K+;7SC_N!?!i&)S4j4^+38j8lkROgvzD{XPRP&BJ3s!DLo^e ze0`YUME`^r3s@icS7{5$=uS42w^bNCw`w`sgZiUW_9wy9b4>WnbuMNiD@}&N9TOVt zGuE-l-Q9sO8JYVau&h{c4utfTTKUYcChh)z+58*^S-9j3<`Nkrg^8OFeI2~rmqnHc z0F|-`gmp$MkP=hL42nnY=j{kdNdJ<<8~<`+>P4xB<{Si%Gl~kxq2;BqCQVT^N{Tt0 z!(oQ55^CAI!xDau3`MHXi_9DRm@wVY>t9OWeS#9vhF8Sb9;Sj3@;!Q~uX)K9z8Rlc zk(XIMla{0Ooc(v6JTTTD(;;gklGl7BRs6TDTEx=#S{tsVQcTuJU*(s+)gb%hJO*m1 zqAP!xO?dxMSjBnNP!DS2Ik%@xM3UO(#vLitd|Q3>EBMH%w|B$tUUEW;i+Hhr*-2 z@9s5=*i786tC~KFf&5b#6(EQ-DJS&9FAhU>Gl8R4E)@8g-ESz9mul=%RW+tSu1Mdx zvVI#Qhyy%S1>l4FEV7W-V8N0dJbtgDbs=KbGgurfb(*D%65tvn5 zam>wzrm16y>pJ?>M%oEf082WhHnbZW3}sa5!b%TED0iud&_XsnLYCN#?Hl22o~w?! zukt&tHPe6DbGf`EKW8C0V@5qx`h~LcF`gIde+2w9=z7r+6*JK>dGx+yI$0b+*iZQu z_3OzvZYErgc8)~gZIQ=YPW&o`5%I|-TbBzLgDDPQl04bIKAuP;m&KTWjDTeRTMYG& z`IPpla}DeVvsw>5Y;8J*vwVvmVGn$m<3-xc!g-44HgHKPRw@fFJ%x8u#f?QM0`sR@i zkTsf%FKu2cbWrZSvN4TS%#p9QPnm*iku0Z<-1lM#8WyGWQg3;wH;qdTMGtTElY8n^ z9GyTiJGVU-5l-TMCPXDT_dz4kwK&1`K06|)3FgpYChlAck$FiDuPuU6>Q3+_2q!3` z;H&2I00Y1GMGX8*(L_T)0|qS_Qrh@iJZ+NPQAx<|a3iu_ZHq>_ye#iY`Lfy@mP$;& zzt9Al;c~jF#lAkkLRVh|H|*xFe&^y(sa#i`K(B5Oin=*Hme=n)-^1{KHpL!2TD9Xm zHfg}TR2GCdUwP&{E^E%9SL`Pw(}BsWdwK4ZG(+ZWO0BO)aCDAXmsiYybgFDDhkJ)? z@+&j)gmCZ83K~6gxfo0{QO!7m1VK`w=|drTYTyr98bi&(s6TJ^EHCbLNIALXLOuGQ zxMbZ%gWi78y83P(a`(&<%za$>`rh*(P=)+1`XJy<{6?2X%XY(tg>JM~TA97$U%_FV z%O>3M@<%nP&kx7k9k56Sr$*0R%-TE&$DV4mj0A`B`fD@9kI34lOuqCYUl2{l%CUntWFnz_N_5q}zt zzi)zk&TF@F2YCfP3Er5z!xhG?*5yk6+D4w0_?Ii9-7%jGiLR%9BopK{X*)5D%^!e1 zJO26ZoK~ZV{ora4Q!@HSH6_E&JBN(NSB7B z@imyz>?a`&cix0mW(00fN_#$UK!Y)YGBZA13VEzSL3$1@KY zExM^)TNy*g`TRR2aGrOc|7vwZGf=x92eN5*)1JruH%=H;?@pgynW zjR&T}RB3V+PfCvv&u7p)Z$fWy*3sS1TQAfi-`~ITa3S80=pbCQMhn1D2;|iTH(-pe zF*KQ$Gk_yx3Jy@{c5qNoi4YxeZ(;?bdkX19*fR3!tTBNb zJ9R{Rzi1Z~ul{i%6x9w5a71?9ezoPO^HDU|2 zidT88z}ro2TDrXQ^ZRKW_sV!zj0K^ZU>n_>PX*0l^scIa#`Hw6@{fBEd2QXm;olZw zKWsbJsIepcUmOTeXm}prMih_^<&oa8EHM0Ib1XMG<1YK4f!Yk-R&)2QQI^%t?@=^z zH3b3GP66BES+rE%BwL)C6g0IpH$q9%7Cr`LE{ZCG&hvmyGy$}99WQMSe#?TmN>&tH z`3BI4dZ!oFi4S>Faw>*h^+-)|-_=xMiIiZV!h7gl@0-&Tvuk$JbPHF zmBVlob57QnK9c^$M@!POPXH!<^)9u^==aXPats`74+QE z$mB3Agp=`U37W6E3dyD|%P$2OSG?(^vNm?P$L^MCtlF+G(*c}7Y{r31zA1B3Bevpl^WM_5n8sc4lNkHO?#y|I{&VwLT z#VrFiixS_&B23>n(15&So+7l+`L;olUn)uyPkm}~g*{)6k@?1*D82WurT`YbxRL%Qxqx&D8uw-ar2$R zL9JnvTzkFZ^I8{r)hJlkWnP}m`4(9@2{{r4y}QL}%O4l?MUlvo9?cmyP2?WU0yf3o z|J`bS^$Z&0vt43Z*R)f?HNVBlXcK35`HnI{`mR0ve!$xd?GE1P2FjN6M@cJy_lnZ5 zfFN2{u$Af(T2rE(wf_}bp4tEpw2D-TmSk`$9kwI$k<5E@L* z4dcV6$e=Xk_x(RF+i6;|xe=D4Qz`=B{V7o?QhF%HBjJ3x(17<=PTbK<4@%I?6I2j; zr;}#bVZ9rKV^zDyv#nP2Y}9*6^c_WjcVZN;9cM4}8;ZK3OSH%E4V?ABrC?R;F?V}` zu%MXJ0KXsowIXAB5P?BLeVG(0<$J;B?CdHV7Ua1wv?+iLK*|WlDz4Aw2ooVC58Bw* zF_vg1hR{+W$e=r*C%*-^=2_Itt%SGsNEPlXTLE(PQ{R>uIW~Wk!4`=Jd1@Yvd(_74 zTS;LW^jWT2w7achBBL@EqL(x^WiQd=>d%Ep!_@%HA z{X(O>x%FsJLcoW#U1pcxDhvnIZD_J|IeTwrG!OqwXhS%%PBPBTeqC&{V_*Xf7LbK3 zx<%5JaXcix`sHs8p}*9cG=WOaskfb_JYQyG0AgH~QLVRO1(j0JATn&Xf8I-2`1)U-MVYNVDCZWxR-_Xrw(UFZQx2 z?f-i=eyK&iE6>YkVvRjrQ3jF)JIm!q&71|o-=r>&fKb&Jk$X_0&`Rd+!T!HHtd7b1S!YaHS>cF#k?HMvZfPoAXRAxT5tR zyUD863hNWKK}Ao!5=hs==N1;e-S%C@5q*f7K7VI40P{+1-cCs?Pn9Q znp9xuh1a6b0S{!wpZ?v}bo_18Fm=mMSuKf+p$QZg#`o`zcCGSD1+yBqTIvykj@Mi2 zkfvBzOof+#(|eBaa1|th%^^YXi;``T!c|Ktyle?X&*1SkFVxqRdf1)?RVf3kfK2;l zZQk0L*>u_gzrcHMl#-Mcjf?355$8nL*`KMvMk8!)k^*XIxWiv1JV_Q&(A)K`)UFaR zBey{0s2nMA0Nk(IQP#-VhDH)#YNDQZas~zDi0M=f3Ov{#=p6>VG8P+c-Gbx;S+?x~ zB%|KM1e%c;2Ghqz&&fkGa=_7E13z|+ixgzl9~$H{#&lI@pO@F5a=NpkMghEPK z;ZN!blz~x=2K6{}=1QXiSQF;*%s#)iR?Zd@{cg9ZARqUPLO7~l_ zwA`%zqw-Jg41l*vjMz_JQX)zEiOyd2E)v`+0=3Y8=fU!c{Md$9UA7Bet0=2Rj7eg0 zs0Xocmt^lAjI(SkZl(83#$>{-^);uUke7DfPqJj;A>1kO!{?iwv#aZ_k~Vy<)EkBy zhFe9bxWf~&2PG0l1RN!^(JB$-nZ<|l&iVJ(`vQ}8{PeFv2&H*{ny~-9hHV+S-RZ6zL(Na3@wS9 zTJ@C4G_XC$A%0W2zQ^$TUt_>&Eh{&2Xcec%`uD2LdU0GVdRBBYWFDfgGvvWCxG6L2 zukt4DDlv3l%Vuc7@)e*f=-T8S_XnbKqQusbulIr}h4W;Xl*z#51|+-_D_p z+i?h0Q1Ds=4DA}xNsfLASXG~CR{0dTq$P#fcV6Jz=`|Hxl0x>4;+rro=*xvqm+vx#Ryv$sipde8x!h{{<>(e;=CUsVnK!2142 zpm*hzK&|~wAYA5LH-q7WAuE?Rl*+&Escug|6C;(68tnhxp=#KJ68E)L=tssL?$O)y zZ!^zofePC(Q^kY7SlvC52yIXb2An47^?HSxQuRR4)RFH#js%OuY*0Uge)nS-4A z^DRki&qJE`9jVS@?D_#3oeX5enZ(6hn*iij4LI}D6#nqjE4xG)5QZo{kVs4vr`9zx zxyQ#4z*~n(oBn8+3IJkhFA3T|2oudKGiac&o@n^x%+h}g^YzGs8k+m?b_?kWo)V*Elny?LCTV9+x+mZbn*0GqX%855lMdWe*t8;bsEm?`2YXi#%e#ngI2GF zRyH={NL+}H=m-0$kNA@IrLwU|f*kgmGHxDtj1{C9mv(rEX<<`My8s8r*WlXbZ-_g5 z(-!;@==g5Bm#$iIbeUv}Lp}8b)C9?Rsm-jgy7(;iv6*DpU<5j@)_gGr4@amZVrsJ# zf|+KC$?U{yp6&7Us=G8H+R*!2K?Im&Bgtdz9a@7fe_qRC18M!U^y6ALeAmkwSRg;e z-e^aF*>&jD_%R^C>SQq%5SUdw{>GV*fX5*hPVS+5#x&#bZQGCP@^1B!U@aK zF0c(aGRU@QllAD33gU3)+&RH<^P=E!3WAQrX9^ST7wpa*)N`ZMttLdN$A95gGKp@l zR9KRfx!a3W3_#r7@jV*@O>L?;8Rw~Wa08xC!G0j*B=$JC@R0Ub&E%R4e~749Cjn%U#}{?2FWfErjX>5ro8UXs1iTargS0oK%K}BHkc~t6-l(5aB zYOW}VvDgRIF`a`uiA~u3#cRoBB6@twHmnfZ~Z>Zub|f5;X5BWde) z;woe3hvj->OOH+e75j)Py%mP-dK8Js??aGiv0s!vaW%mB-IWd^&7WeSy$kb?b4Hdu zr7i?2dt}}n*6PX0TN-ysXGV2uAArdRG$>)?Y$c|hFUjsis(qJ?E|AX-tIjv5jjdM^hvF8DCP2+weP*LTRsc*shtCVk2j45PdDD%rg3P9Nzs0=3TI3r}zVb3U= zF|5g{&g@d-uT-^f*Q2Sh-yQs2d5WXQuUA>|=>1jDfXP5btUMB*N!N5pflwI?hz(Xb z2GR3F@mc9YAM4d;yLJaf0-ihYHggLi;XkB*K zl)CX`D(J@Z_NYTU%qSK1K9$TC7I71ueZZ_2DU(otOu4~YS4a#QhY~OOxvun&Z0R4YC|Aj<5uZ^I z@AU%Eu)f(sh&a^0M0=7kp1I;>*)=Py)=Nm8&4sNwkdD3SpP3jc+m;&=yU|fs)wLrh zMn?bFGkPgU%$>O;oQfC#uMcmgw6iD-y;F7Hiq*$%bOh_sL0-rEo_tI#>BK5qy2O4~ zr&ZegVA za<=yUioYHxvdnWM5v>r#T4|>=NJ!Hs!<(ac+3l{wigcl~QiHJjnv+}x+WXFhdTMJn zQ-P@^d<~SERz7ngw{Ebx4Qiy^Innd>XDWESNtn>|MQ{Jd|Lt=v|KFFV**`R)Sw74zoEb@jBVA*{ zg6YSj!?B!wt^N{UhPv2qbR4CJj|xg_{-57roM?wPSKThUDs%A+qP}n zX2o_Ys9?voZB%UAwo|dSgR0m(`7h7&e*1Q{wlCHks}IfId(>1Ll|R$FR0VO`-Qydi z&-9;JJHB;ei1-VvC6sfV-~Fr-tvHA$=CF+u^^*jeW4b>AS+YPdlM!``NZgQ%*fH9b zJqyBr(c;mO(c;ty23oubJ)sj1#r*@0+;7@MFO|*R)9D93C6p=%{Rut;{$ppq5lml5 z5g2k|uC4}4Afn0kp$d~3Wxa`h0s)>%l~5#K7ihJWwZxjf8^%Bw@*CT#tw&{sSi2;) zO>ohcXE~bpVjM&%STy!1BKn+*SJG=^p}(5q{+97fwlaa6=Zr&LVyB7CO-Ldor|Aya zq%%-`8YCAi5{>wtf=7@XL^JYUKP}L+yXl`hPz5mOOjs&_3mzZewiHs45`7)$DlL6D zk=}@Xuthwa3CuSb&VYNqc)*SyH37~vG&KRLT0@*L(rF+)1o?KyyzqP{ zVGk~F#7Lv+cBap=a%mh}+;zx&+z37?G(%_H1%%z!p;MwHkRG{C^&zCX*)1H*t=`IcETZ6MF z&7IO5BJY(cMTn|H*{8NumOK0OW2ech-*q58|BVZR)B8*dftw@tKxeOZOjrjD*z2KX z*(5x_qBRmZyBwGEVXBz%tC(szx)hNV-FaDENU2fQvx2kkHM)=6u}eKz<4KlLk#znw zoGeZDZWJCa=ENYk?SuS)(#t-6cl)8Y-8V;zv2QQX{eAtsCgtR$;9rduoDF(zFBp8q ztUH12ApaB$!As{?+j+Kx^obTGe2AhL)a@nM%@6`_iAcAq72#%S6B?P1C6{qR$d8vy z?Vf?$%;jRT-Vh-xT%C0_v-DhcNXBo97HeVcs8rpjLs>%OXFcOP^i^aGRJ>A>tAE?d zy7LM>TmreKs=r6Z!ofxEPyR>T!YcK_@g>xpD;;t7P+`pr0o)$LgPB6rSLvvxNtpNs zV!=;bi2WXzL{GN2`^LS@>P=F)N6se|5EGOjg-zq%=m95Lo*wK-_m!t{BcGreH=|2* z$a{bMyx1%7&alTf)dj#}v67j*R`YTNKC-CHPSFTv=E{u)0G+aX<}CTEOm{Rh9WNg@jYzjVP3Nh*KoI^m?MKo{KVsRszi0?^7Ym}6 z9lAjmoKGjSQ-dbvxhb!v6^il}=`6y+od%C3DQOqru^Yt+Z2&(Bf5_ASCL5p#^CkZt zcAzoGvspR#S7t#wH3S+WTVf4w%Voy6&P84F%s3x_VNzo=>4zmM<=5dLYGd zsnjTjZmViP+q^h#x+tG%?uggEe?q>XHJ{tF%&%e*9(RcLGCpgp{vi zX;eX8X?*1ma0T{Cku%J(6`5W95w|4!)$J&AGW`Gqzt81(e+2BmJj7cx^z>CXYpP<- zH%2#-XCGz>e<~N;a=zwU4jf|ZMxf0kxJxvOLC`p7$}n^T^r73-9~T+m=6kyA1cW%Y zbR$8)Fu7P%T04fzh5}Zabi!H?+lJ0|8l~MVcxO+q$sPb zq@#v)I&PmD`;9O(cdSgy`4nkYGIw{IZPnB~A*u>hqJ+TaDnl#U*GvhWk6>6L_;Rz0 z)_;=iW!_GZFg3?(J^L@oSq>lVmZbwRCp@GVASlyrWNU@1JP1_Fv{-lXK9UOX@tYF` z^oo)`-2$7(` zaT)8v4Lel-8zc{<7oX6?@OyNL3o&D((6Elj#XR7WkHF_;n-&oqOzajP2(;m9h-$HN z5t-0H(mcZmvIp^CzRbM)4NQ<^a{?ubkwoX%YFN3in2^nyP+(nml)FISBT^dtIH+bO z1eoml)sQ>9Gh1s|&^)7ALb|ZttW<~@>{-bNSmQegTP-oDU*AcSqzgGp_c<9ArcgJA z2Kwq%2OOA^>B~J^!ZGF05RRmScXa+B3|xxN2zBwNWM=^!ci1HISZT5K_%_W(Vr?TFPGUEq!8TB$q*%hl59Ca zFymPngX~drH2MtVzHyZ+C)x z=&mv4bE0$a{-`O58gThwU~AMWPeeZ_OsSG4Jt04_1b6F|{!}{E$>2~xv(3qTm!mCg zU-Vb|@^1O_3qjl?$GblA-$A2`4(w8qw$OhvPG#lJFG18xVQwl>Msz>92h>;!bEcs9 zWx@;vB%(GQLFdMNlORCeC9ZP}_oPU%d~T43YqKKrvs^aKRMc=+fUr6aNuWCHy}~Qg zzTkt}xIH3EcdnAtYeF#au)bYt5=sW%2ehcEj8!HU)o*lUMu!U-O%`KilXh_8sWD5; zSDGK98i_^&Ty|ClBbb*UeZYL5){kL11!SXvFX+f2m`7&pjh(_&x!ISvQOpBnCFd_&P_b=;(_syEGOx?sNW*jyXzGYXT@U&0ukDB-&LV)ua~Qy z$yN=f_9p}2^8|1-ck5B|)?)R|N%gy9p(MFX*@c{)+^-C2ZUS-X1uaZbLh`&j+~XD6 zO!4k&`p4UR>`6J!P*?^2xQGNmZWBln5IzwIUjq=zbh+~1J<_g^x(&M}581DWH5$sF zjkArrr`PkhaWm)J1G~FRT9f|elqLVfNjRJM9GRm^mVN4K$GyKQVvdzmDw~4;FQRDv ztlatlUcz{!!R8ewh>TG5$|Y*Tq2T^D4{3e7I-f|^;q?=o|+gh-LJ{R!8kN$>M-T*8@2*K{qN5LU0OwM=a^5 z{DkZMLpj9E?c7DAo~9@jmm_Nug_nPEJd5C3uAELxsCzq#KFA&|1`_VCIguTg*(gUJD6 z9JEm(IM9zaR!u;+ukk}pMW_xMw${QBZ39Tc|1Edl$t#fVM*Rl!#o)k~;J}&J+G+@e z6FP%b;+1AIo86y`f;7Wc8F7fQlpR?I^;gMu(r) zW)%X^iE*J7#F>*FM3>8jlYs-#zi;--sOrs(%}Ym8osxKfgxNM^N$6E{A~_)K7cy=N zpU`7NiF+D`U{tuhMDX38>ZSw*Jy5v|>wEl56$(X}2Nb-SO{9MF>I&;?3B@d+mbGI=i8`gYw3cJ;;8G|UHt)HM?0U9Ik@bb9C~ znMSpiaH##t%hyPy?h5qNJ=hDV1uqgVLiv`)*&lJz6g4CMZRmsU?UxR%hhEUCifNZX z1(W9yTL~(nsnbl$3AP#)@^=u=PwX z$1c6^{ze+#qy%PYUt4h8)E=Ybt1tqFrlYragHOMc(s6sD@v+b9cC_(Z-*1BWiBr=a zpErB@&Xs z)|E7C>uEAbR-6ZtWxi!g~UgL z8Bm*2*lfB-y;1ZBzJ3ty2&wgSsneVG1s8HFszHuIF_DkIp;fmD|6v`tXWAezZxH_8 z7XRRML1kGOU;ec3N^}oK6frGf#EIi~W!`K-=WorQTQ}ZN`gidA`dq0T_4j5;CrUpH zlgOl`n;F_w?65usI1zkk^I;JI8-8XDU5)StK?07NJHt;z(_E)tXpcb}y8M?D59n&7 zJ>~dwY$_A4*A_B6;P_E5S)T`PKC&q9LRr&@BbwEVaTPAG_dJtPc_n3UJ^IM;htna7 z!nrmfLg3tZ#jXI!Mdt>-7;KTgxo|loGYWxx=uoop6V?Sq5GUz|*Qn!MG%0KzEIiy| zIQ9U42B2Cw-`xr1CLRf*lM;L{nIxUF5cvHG=x}R^CE_z@8=m2>@ulHvOHrW11nSB)Q^%ue{}NrGB!`OZBS|a#5iRJg??E z`mTP{x#X>9oN=(^=d)MyA!^^1yqJMp*LU5sl%8|n?T;Kj#I4!nI+74op9VEr($s76 z+4n>J9O3YpDJqA2=++WB2a%M5KtN} z>~LgI(=4l-WDi@+C1P5BJson`Fe`OJ-tWK=UBCOx4~>6NxA?|=7zhf6mzW1WL?o1D zP0W^HO<^K!3oe1PJKD%W#;y(Y!S?0|*sOkd2!|;Z_eE*T*oiV$J3-xO$u*$T%KV9* zFI~w^ZY!Fin9_m@vgzCR>xr`ReQAQDlr}kQ8=5q4Y!rbX-Uk>}opQ(ZA>mSRQRMCi z9396~b)cMzHg9T7hKv3{x#p(a*LCKz%w8%4QhwZPLOn<^DZxmzb zFPmTmb4Ic|5)gyDPF`hwxMl6_?L6G_UXtYI9~L6GMe&`!9>#>*J1yGUdcJ@MrZuAw&*v|Q5Ic%*tw*=050 zp{oq|NIi!RZA>2p_fPX>>iZTi1ZI=E=y^-;{qIapacQ4iy34;BW;S!@mom73$=b+! z*s!UkLZB$TX-+2FK{zdg0I41eV!j@^fOss##j>(tKegoE(9r2v4GA%Y2HHcxG*)Yv z|Hsy$a*_?+%NG8MN@JpEA)5@^G)lP24~bd$-$N2I>j`oj8O;p=!QML6PW6_NFQ#4r zS9>Ef5OtaWu_Z`rIGQyF;@*oBk75GGJtH@d@g~v~FYJ=Apri@=yRmq6qG@UyONQ}m zjlAnz(i+rFL7x`NOPXYv<;`KSyHc-pg_%HrG5;2o$Vgu8}8Fm=+D_0;)w&C%?2A}UlWG|$8U>-Yq{7zp_GnYGt=%N=Hi#r9_3GS{ee!r3CG>v zHLEjGinICi;>Vgj|JP9?(2YL6E!|gigYj^tlG~=rKA0d){y3XJ?%|At-8&HIK-=f) zbqnJSTXejA$%f?beq|w4^2p#&pKzS+HkN<)dhj`fPh?J@+uA)h#Wv;QW+C?9GWbt+ zY0u@SE95oB&=gjC#t&8$PF)=GIAo}@!>{=CGMQoH6R~$)5vt!2+(nEA=Mwuoj!~$% zD{}KhH7eI@{#H7FdrFcG;0{I_F^w~6(lICrYICqWDNPuKv z-4@rNHiWuQ*t4Krhe7tIG#ip2@6v*FIu67wvB2(dE{Yl6t2>a#e<%rOh`QqI_W>(G zDt&v=Jwi%kF$dhNASTGe3QPAw>9Jn{3#b!1LJ$2Qc15ZW^W}b1)m`17zu~PGpPcBs zX(^aqizBseJY{?pj!Cip0R9#aN9;R;G&c=C7D`MDEqiaRC1HiZMrPn^iVj;XVN>9d z5Hs1J>OOiu3O#vSn!kwq;zR!O0Y+NH;#;U(JIOx~MtZ|Yv#S0HRmfVMCQ$xFXr&)v z9b;rr9+i114kYulY|UsV4vtX}6?2$nA31zsnbEtZ5cokeDz+gbQo%hLmK^;~8IfQ= z^NJnN0>TrXk6jC)ay$2Z78l6`ZM@ydS2iaQyI%%sK}GKZ`S^0KVM`2qy!1vd%;9ZK zCzP-;t{F_EPQ9W5yHki@?+nm`e>H`sxZSJ7 z(6IGny|d*?9vD2Vcel{y(%vrB7%qs;WEf;nBNR1=Ca44P%BmrS0kq_vB^ZGjWRxn= zX`pIw=-BP1P%$4k(EyUXO9XC~MH12ESdbwvfbyYFZ50}+yt0CAvkXD3wXgvz1<^|< z#!K_)rX`y(aYq*F2RLeg*CQ@}$}BzV&GWwvyV~K!Mbj8|clgrWbR}?^fUPQY$Qr_@ z;`VaftdKRVu+*?()=FLVnliq~=xmBgMD@+d7VoDHQ z#a2Wn?ltmn3FAR|HHUZ7TQawH6S0~!^9x3Qth@Zf+x9pqZ!`X>=FT&$|ZiC3u&W*UU4rga{uS19h%kUnp_kVwc;~f{t=TBcdVHA zM{KYF+=}&g!$K?>%4%)dJIhsnbjV2@Er3M$cR1!|E`S~X>%}vE7yfV?!#;YKmsmGp zPyk(&Mtq;4Cc{z-3znO*dIr?T2FaX1iiPN-kAAU2-ZXFO)(&#s0b(oeCH$?K-`Xz3 zs!67bvlRM*w#tk*e3UKBNmALrAV&&@+led61=#o2d9}zdI6Ncx=$+r>b?imGgEDZl z|HYMmyKw!R>EH`_$n7A2?Czp|&Y(hL31w*RGe#G-ie3P%r)2Hq7nK8vEhMpQo(=xb(s1|})) zmo!6=+lA2n^DYYJbQjJf&FK#vrw|3<;b?gGy^(5!jfg>jw$`v@WAom*x@vS2Xk#)> z75vEn4_bq1bCqNZsS*%T`= zH!5vKf48nIRtpG7sxpRiM@gd7R?A?aGP*^rBHnaOm__Rl^v9i6z(ot-&LtP-+(J0Y z0ye?dJ>&0EMKgLMOg|^dLS!>}YIs&5z|D>H2$fkfm6DDndPe-A1mMOa>nS|cY9jUw8pR!iVT0~W)owNw#2e|u&6%O827Bllmj8#rjdpWS4L z)Vwxs!DxTC;rC-rVk(d`s?y{B#?Q?@&40rV8zC;wERwt5l6@C2O=(<1Yx<{ zo>|I_%U6j_vQJfPu3s)jHp9%S$)8MWZh0HvH&#y^J7=@f7ySGi&)lV5qY+&Q;gR?e z+x|mt3P`10hoAKS8?DLr2lCJdAHb~en@&}*h6E9Os19n!bSSiH#gwUtREeJciaQJt zTCXg;7LhVi|5g+micy4kiN%RzF1-Lu^QieT4Vyq_hKPwaFl|Xg%1K(Hu^-C?oK1XuYTKd zklORYa{Xz~AN5!Y=!oU&5+Gwh-dR&ZXgJ6?6~@R>XCBM6(b@x=1CVpeu@{$4{bUgUF{kd2}Sk3$yX|7L$&w5U#T{* zN<6a4`6u&yO9yz2e&&(k84rbpItB-UpXo#QGQ^hi_jIg&eG+O082+c!d$6>*+Ohhh zW?2T4_U^xAYVo7~FRcoe_%b#Bxz%p43YsXamzNWJP!|gIpeaRs(zW5>MFyEG>v{G_ zw2oH?2ME=RL6%~rj&A$u6(Kvz0Y7u=Xy}@b&y^yDD@&OKe`4mBu9#XAc>Wu zZ?`PV#TlOytA}s4UX+=&=OR{4X=9T7=|MT4oCLM~f`^EV&Ch{Fzifr{5whf$!DbGRN>HHP{ph zB!lq*Uk@rfQpM*qCwiwqz6h$?z3)Kr64p^Bi4B~hUcPyF#6KAuC8d`nB+Op-Rpxs; z@*r+OtYda4Tn7YX)mFo(6k%>JajEfDVuvmF`kx$lrbR8x;l$tP)UnupSkZTtSlkzUFxu^t@eRU#>Lp4&;)p!%fdA5@5m%eyNH*9)t+Q)Ye7-6Y$ZeyY^xCi*vhj?UXr`9RF-C$!9l3{4#j#dK^Vflom(p* zh=WSkwn}`|u5eh5+-4)ic>&ZwxLC}KQS^XlzPmNU|1RuLBBO-KIVk;iCY^Zhr46HR zW(~Va8Zv}{!WGa?hp6&Dis;eO8^*_Rd1wVI< zMS7ktb&2NseU?RTW{PCWzN*fYFjHkNbY%+-o%@~b%(IBPq4k}4WXRis7Gj{6MlbJ>6u z2u97f%6pg(?3BMGs7%b>r&A5caEIk7RK;V?UP?X87;hp0a|04g{y{Y?4gHn1lm-7< zI&_@4$GOsQMh-vf%ckYXZHGt@>6!Q?`q*`|6Pssfj7gTTL8PmplW&VtQ#4t`0H9tHJP zh7I}*&h5fw2xcnqBd>=|K7POP8f5_^_xd$I97O1z7t5NPd~bm|>b$Ltq5R_~0i?Mr zwiy8iJ0h9XR$JtsAN*28Rf2X+^WDu>soczSKP)oSEo*i0A&)GF!3-ijX_;(qD>Iw?f0-lm!5vL*f| zyjF7XaQF-RCePx*7=4fxmA54rGQ_;21Xj^f=5Fu?dZ2GWe%NAjMf^PVa9Fo3wJI*o z2qonar%HvakQR5OL9uZmCRuMV+lEbygLmE*NZd*p+J7+h{X5n8FUHy)9CWzplWNbQ z5?wuKNMYcp9>(G5y`E^~1;$3HShr>mIuM8Kw;xCgZOGE0F~(3fj{yPFau52(1~tA1IO(4E-o4z&^;}04t%`nBv}`vEhR69 zTK<^kPpU$l29a(W+FqV!I$(qH_&8JhQ&+ge01YNR!1J@sZbz%+cE*lbx2(x8Jtc3- zeUcmMy3cZyXJU%e;mv_@==e*{{g+$#|C~H`weK5}gjfsFFO>Lj%ipFh*JS(IV?+D& zmL~~I{2d^n5OWj-zX9J|gI*abW*x1~wh439MRhe;St(%hGKm@}KN+HFtlwBa^T|AX zvf50KLB+f$oIW@hU6$c-#mE?gQEKTK{*lSeUw6_73XAP=FRNRtC1(%nt993spoQd# z;+%F*EM+MYwKsJAKd)8@7#12y4%tNT=1Gg9&d$ zG6>bRb7&+JPGA!$r%mT(&hPlXVq#Xduv>U46W#)YZo>>}sA`Zh8A4`9A;zIZTYwdH zt=hGP+tUiBHxUTi%WDgaZNApb1&h7+;1`Hm{}#!po(*^`(U}^@KfSu(y9@O^0)KwLC!i*4@yr#c&rmTP#}S=9KNM5 z(2DZyWL-a~q3OI3Lfp47BnSas-Cf%z1780Z+ifJXYtkL9@NkE8VPa*|93|_ z^g0k6A0!vDBwGz$V)h$x(fP_o6_LO|EfwT3qEJiVqwUCXrOjSdc~l!Y(KuT) zJ`_(>B6=?*GBLmm@^WNaCG;P-W|W1Q2okQw3O-IO9E>t;Tb#e7iY)FWrj7a>n)T4s zF(|A~7TStvyMY2k{BL`9^8zl>kdT5^9QEGs{vSr>G|qqv%9b>Fux6TKa*`!Iuw`0^ zNkc3^dw~~BCf-MjG3$}WM2p8D3a0kuE2qYJ33e>WATYKJWHff+3=Ul_Ujk&xMxe2x zg5DAr$H2&TUlWK^=-d{8P;|cR#78mUeBRdSVKH_d4P?t$2p5(p$ia$`jW{q9S8I=MuYG{L!nypl=_G-ox3tdMBO z4iA$IIgr^^rK2u+AMt-cFeS5mDj{_+;nLlZ`~qFYKe6da_-oGzkE0m$^ukcCLF%RX zXMF-x6c{?|!O1@p)S*_|90_|t{B_swj)djfKRtJ({GwaR4&Q#;1i%lK+jGMj270%+ zvhdM=wd_p1>)hGT4E%(Z10E;7q)%q~=WDjA^-QbL{>+r3W#-*YpKQ_ca}fuJv!Ht@ zRO16|Z7KP2!#?GAc`sXy(3cq5hQs~uG!jDaWx44U6jsRW9zG~CB@riwMkO2~gsiVn zB!Hrnolb6YOuUF7MLHz~oJKM6?Fwur8ihD?q#S|b1f-*n0t;(V%(&>cwalbpB?1Be zJXIBg7$Z3w_CqFS4$M402nbc*GB@d3BJ(@$=t$)b;fZ42;zWqwkHU}jcOOwz$poX} z1H<0=44quaQ*E+92jDT+jUvt@o(KhHJ58LaRafzTXJEwLekW1{53UHVLfAMqn;|HI z$S5X|EkOpp@k5@_e$=!gwBGM7fGKI8G4|}GSmd- z(PxF5cRDG|#rqhKX1!`ZcA_OWbky%;0@M5e&LG zZlx~NLjsz?%0-U~f^W4qdm`)X2Ooj66Vzj0A^Kgk|F@cyJKqC%9Pz#z%&fnm(J+Dz z=sI<#XbF{#KiS1<e5Sj#*b5}aKeYM_oT~=cd7zNT-$)+#F@BY^Q?;ag-a@&6g6wh#( zjfg3A#TzHZ^HByiMfR1fpTb}6J#4wla3c?{gc`Ja49BGbVI3?BwVz<&j=T5p9$hCS zz${XPj%ETUQ4I&N7o88HBFWrcZk)0=G%E5mc2Tv6RvAQag+Qdu6HPG0Y~emg&z^oV zN(mv_H1Rch2`w(voeR*r*E)+u4_P=R2tfH(B>Ma5`j1n4l&xLb%%hl+>_)*2yC_qq zetC5oAtAr}EmDjUO;UuR5>l7aJhDUx3oAsCh$9x8m5D~w#3uRDv(Zn2S8v~W_9fDU z?2gjHt^;GAv*eeA0xDx1E1E1CsO=KinSz&D)H zQ=-Y9&%@_QXpQsD_2}xy6ULxudviaVCYcOjuO9G-53={w3@nq{{ek3Ti*ihx$&L(- zA$7PS2JxT4XwWK$$s~3H6vi@nV8#^9$m5=$hf)u=WincTi?Nd4XN+YSq&XTyti1{M7c zmFBcr%cTJZez})xA0xGj7)o!TuXbOuS>z; zLu#DMZ)ERLcTPT-C}lostroizxC|hg30RvA*&h-22RjZ!%yz?1?Eot&VJ#W*awT&{ zIMwPl>@mV`VvN7Ce*4{mM-hsf66=n(k z7nsLrzWD~{=4x%@Y}8WX*}Gx|OY2fMP0$FuDJdP$Td`3Ac`xDk1^~;cSn8)P00&+T zE*Ejv?cI+c+aK^-y?Hmn$c}S#;C=KXjDpNF&M$X9h79Xkjm|5su!pXC=AUd^ z)s0gecip!h7uzB%RXN{Pz}(&3-NDrD?4|%q-POzm_}$>tt5aXu78SG5Lg6y-t~H+$ zyX^m%B$R(weFb-XS0sqZI}8c>!-Wt`(3}k{v0+6k=@r3c?p#0>HbIRJ(O$n6%{Gd1;cMjq; z$Ypm9X0m&a!wBESzvOuoMwsLMu}Qd_$Jm@~tq`>4nb2vD^inR3px7KSG!_fi7)LTm z{bm^u)(b24mYHI>^o&94?kT4A&fvQ%ufdI(8M-euxY*optM<+D6oh3r!=p0z-S3XS z6vni`D2^S=&XPdG<&H=W;`zNb7pJJFFShDqJ=Mhm3++Dqn}9VMTT8W*lJMI4F41WR zbGLX2S=?YU4}Kde=>d*rrC1J#R%W7Ur2`Kz*ZZ4L42)ds`-RN1_=tgv;+lRwMC6sd zGa87)C`iqO-_CT;-vJOe?=Ru9C2)CF6ms%%E6l5bh8TYac`%=r|-I`s>#H}_Qoyo-;uzdiDbIrmD~Mt!F9=4FjeAbe#c{7;hsz`Uu`*Jk7jl+AbVKuC3W~^Gjimu{Pu^P7~D$A*Hr&LPGB8JfLG1q}NV1u7yA=ZS%MZewUl= z)5@WiHt_Lb+Tx{2*Fq1OA|KO_Xx?yYR_$30*J7h-&vhbA_pA=H%={;j;fF(xZ{F&Y zGvRHWsp}f{@D(2oV{m;vsRILdvt^XyU{1oxd_t6?~jkO*YQvj*TbETwF zq}smvo5#U>f<*DHlfL*HjcsL`M8i}x>K1V>2pVw``}Lkk%ZPn^RRx23B{)PaO80tm*m_v1OunSQ>YY{ zW(wuobY7)1D)UL{VU|FTpZDae+uWnRYbaRD;l%Lsk75FqsMF%NM2;UHB*SJ?xQKB0 zT{94V>Eh6H+*?l^Z1iq{w__hIE6ZAiPl#*c*P$ev_AC|ao+Bh zO4_UU`LpVC(f7o#qpFVu2EhAKI(9xonbK~LdE?U9;F#>pja;e zA{@HFs)wL^ftaqkb;9UPl_o0BiN19E+R9f|t*+U(xmC3nkEqWa@L^puL))DUU-CnL ztsJzJnLFmd)rX_RG2ZO!mnOiS)fu}t$6XVkUXXdJy2HhAOW>+0bQ6$8DP!;|Q02GU zNcts&>^XJabZ*C%>7Lz9AY!DfSMvw?|5!PLcYXy*llGV?O1b~u^#Ex>5T*TG4L|RN zyvE?AhP9^EB^Ph@*$(eh56aj!BNto<+!Eg?pOfk*0QHC+6rv?WBRUn+cxAu_i=6;y zfVF{=v;DXOQ1_cR{^Ddh^zb4NszZ`9QqbZKQ%AuH<-tf+qF9%Svb^2u5Wv_}hcwQZ zNK+F|G+iG&fxpLMSI_&tkQq<7IUDcXDfxQFfjI!Pmf1-Nwz-Tr#xXxG;8RucpmI=u zBmLyOpP5cskpfGe^A(?&3Qd>;&$rz|XgMVIP9zPCbT93(Ft|z_gaeq|NzL!x{_GMTL-q|GTyw5h1+^r3%aaOZ{oN?3H-5PJ z0t?hW7&XZIz00cdv`T??3j)+{TjZehhOc z4RB3`?cLy#q4tb6yvJfEnuR2%P{wlUs0;rF1&MqQaQc6D-oC$V9~&D~;EyI_Ynzy~ zfQqFb^_pScJ%|2+1-^p&tCRj(9WUEI_B2;^y#n5Uw9W1JUWx(^%TNU@raT?`KAM>@4PV^2gqpB*AsXJJibB z4Fz(?zuJ+VHrd0_{}6xTIz%g=gL#G-uNt~qOm0?!8?nw+Gn##&0p$5*zuAx5gfJrK z2G;7JAkc5|^LuL(ro_6^c(1e1C-i2565ax9jvgKaCsX@8I+2-jlz5Sg0M9DQ^uYNt+4Q8;G+sywEC=YQaw#Xp0x@ z@LB69G8lGL&ZBK^+UNEk23birJxx)7AjLP*6Fd#L-wQ?a)?2W4P|L@FCksw=ZsgsgS@O1*2JD}RyB2aCEtwyc4gkvR(Sl%KF)2as8G})53 z%h+^I^VN|i$5lOs^|JG!ha1oDDKrk^MSEH8mpxWR^gkrVI`!~)f|2OAN9ponEE5VA zQzm(n1=)GAV?-hmOm8t)Ec4`?2`;hsh_b4g3 zF#>s}I5-z1E6_s+Nj4aFCOUIxSpv+n)QdYQRN{tcDXMQlQ2a6F1J|m5;2@P9lG8Po zv6IGZ{Kh)Vm!FmPR~X8J8o~r4)$v_2c@MfAy`aVRJJ$|xDDIW94TukCedRV7$c*0d#JkH z%csTrA~@$MJuD&dzxw>+2IRvF-Py0D!V%$lK8*aKmh3!8>Dei}x}E*hBZWT&R(ehq z3*|>|FykNQY$*)zK~hF(LVcy`H z_zc4cxW7lfo5cMb3|V9bG9V9S)MQ>!(&VRhL%O0+?E-J82r~*Ujfl!pp1cC)86vbb zABJi#%`;jNwaIecKJ$Ni(e}{KAYaHT`{hH&y3Pa-QxmW7E{nRe&6I$j&+)q<$cQU2+> zR91lfyhi_nIbkxVUE#K(mC{=p;dGewgcL-N5$-Bbm()QHGWuAa6a}4~G**{w@zIBs zF+g)w=Y6OM`iMBWu*zeiit*5E;EYqJclZ@vgNb^^thoCZDrR1x zLzgdmY5L`OE97az$tC~p{q6@U)EiP+9L=avml?g%$BMF<*Y;(K(ET%#28SO9%!A|W zvFZa2+G$wmX>#R;hJKN84Y69`Y;2?(1+bLLk!%6eA%SaxlM>vJb0qwFqkst|N;j8ca&75rMjk#>74m_zy7EFc*AmBe#AT|}c6Fkf4F zF0G4{r_3Nhj2QkiyJ5f;)Ssy*zYJ|UFZJ_>O*JPl738z}nzx>DCcZ@AWL-OopScGO zW;Dhnwg0M`2cW<1SE7gr$W2)+?(nD2?r^W=1lG0ani%#?ZL-d-I>Vg^}#T-S||)cQVx32bT0_EKFf{jwKlvn@X##h8Z-%NZO> z%#WfGTafxf0u)3VnU}n1{FfMi@o7k?m7!F{t@C(W?otb~FJ?ux%c3*QKZ}dz7 zi7@mah*=#!-5>sBHQPw^e{x{8Fn;u~?q`$q?bz@F!d*QIo+$;7-qvzCYix$7@WlKC zLE^JH;1)gA{>>QY0b!H-o!C&4>fpU!kJCd-2BE;Ice!b<9{xYJ-uf-7uKfe0yHP^A zMUd_Wk&u)SP`XjNhVGP>lx`%XrDo`oZctzdi6Liz0R|Xg4(I&#JE~ z!Fz)jpOj_xDCSXjaN7^Jl@N(Tm$^H5PWGj`|VIQ>QfO%~EN4iau* zN|oJ0uNIj*&zFtny4je%0OF{GvC)6;)--zuzUnHkerRrb`c>3Pih-LmgTv$@#wvXQ zqn=JA-=EtrBj#0DXg|p1;r@0&2hStEB{`%+KOSbze@B1}xLV|9a@)Ot_AUy>JSdq5 z|J-bI^_CFoecu$Wbf^gcCAkbusqoA`srfJJ>2owjQp`5M^6PSdSyzGeZARi}OlBO3TZOg_TpNxu0SeMjL16rj+ z%@Rfl1FQbTAvo4NIX(^c(Axn=Lmc!v{mzm<)vg5w`^Ngh%SvShg7Td&Cmt|_sp;XK zuUfFZ#Y+R$&BJAlEWY2NuX|+a<7`zEGQaU7!p%do$xNFKW_gw;^s&a4l9o{-Vt?}U zO(APu1^EXz5IxcJ;7#R|JZPx?LC_l78D=#!QXE}8c830$p{*X|SMJH*Xb`6fNtfGw zQO}}(ajhcFt8xGOqT8ey%cCtxgJw@`FrwJ~dB6$m;Y0$1J>|MO^X|=OUK_GeXWq)h zhChgjT@?7*YTlF@((-sy zeDX$3py8hcQ@S&5nY5fTwtw019|KAYp>M@N6=(c!=UuL;IM$AlmKrY-o2LInNTNAV zg^gJa@OE@lb;NVO{V z%fC9VZWAX+FAvv(H^)HTMcrr*2=+e|T~e3-dN3t|c4>0HHF9~mNydpB*na-e=Zv-c z=zvSW#>B4nhc8@9!B@?#q_`f-E~2;+QK>NYtoiLUOG~Rd?r-Wt33?9b(3Xhqj4^c@ z`}=8r?uy|vFwJkeijrBOJ~G;Tz?Ue+AXee(Rof2E;PD;76BXkC;Qg%5bPyJMo# zDG@K)Lps=N&f zX=2Vc!M^2RFXCp~LbB4COG;$h@O5wd`od0A?3}*#)pOSDS$5AFHrZBU<-o6=sV`dA z8$IgPU!M$!;otr4vX^XFq9>Y+(10^v$^7|->Cbh2;>CC{AG1zE+lvKwC-xJ&t)?dA z&k&-BGRoA`;f+yau&=JQ(Mwl1}-(KMki+u{(jeeF< zUG~tl?q4(!z_|-9NdLlKJT-qBrM9YFEcpj=;>(Evao8SJx1(P@0WBa<* zg;kh~)<)+cFZt!Qt|$+E)i%hsYJrNd%nAa|u1dr7x-}nwuT+dZv-iigw;N_^+9o7i zZR~&iG#k0=yu13@?)ivIZqw|rj)WMvpRCmUna z|M%L^Ve~5s;_LxlTU8=l&YGgz^fRfQ{s=`}EM7xOYLP2zu_!)U7vF~;$NJ!o^WZUU zlH!W!mLrX~sfQy|&2-rl_22G=#jF1ItakLQg8I8Wxh{B9tUip&1v^Ay*C#P#yI&g> zc+E*3!JvQ)q?sryGO)(q3;yGO+)xMMv5c5P8RcXqQNrcjvfQ}oL`A}3?DBb7rbL38 zNg4RxR>ptSwc0-~R%tcCc=ww|_GV6z-X=ied8zZHBs_2kUPh(GKEz^iZLLgV$8uoA zZ}VV4_7>krm}@@A`Bk;IItiNe%zU`$=VD)p98l2YdyZ!-eS&R1Cod`F;)R$6ZJ4k4 zNL0~l0=B64*r3KnK89U?7wjho3>w>k=!V*`q4kHAT!5 z$@j3=-FjJp9P)A*8h3DOM{O+VkTiYKrJvz$xOqh!+7$j)rILt*$5S(a@6aT5!(F!e zj&t(z@?8~4T-yX!T53w!VozYF8SdDidH4s{6d~?u&6TSPop3eQ{l}P@?{U#;CTFJX z+g<6Hd?9bt(NKj!ltarnhN8_-n}W~e@eG1A(M+~3ae4b! z_Ql&b9}Cy$IZ@^je>h<7xB9N$zjuKCL$a?JHu>PYH~u;Q*5!5hpkKHI!J&Akgt3;% z^oZiM0dm|~M_ViK^-o8>Ub09q_38}73QRU1(R-*^@?vdzsU;Ufz4*&i-lywVZt(Wa5Ox9LSXyxhNQ5l9e>J>y13I8H&b zVP={P*}KCf5d2vD`k1GUL}wsh%ErYBm_79m?+*xls-AGpG#DS}x~hH8ltw>u;(=k$ zax-Q)+H2uHHre{~8pF={i9*}YSipLtScY$?YQ9X;^_gJnOi$u<+yg^kKqsBJ8Gx2p z@sqPfmmgg&4d3(o0u)?5Ep^v+cVljrgPO8?rA z0*`wgSiCMJDv{2sNSD>=N8u1*b-=&Tc~-|!DrpkuRq3{;FS6oshR~&yp6S|@bxmK% zBR>2eJ^+S)$Qh(=*me!t1bHR;I0FUwUv|rPa}`TWl#J=xy3;MRht-+{N>$$I*!#}~ zbi^?<(45(=#2z0H#r!11XY10s8|Z9{*)5l~Pw*MTd02n=Y*nK_|DLyQpis)*azh_j zTlHiGGc{1#1+d=)E&Gzu5waQ)hNbqW&Gm_UF5t;e5uK@*%2M8xEi#l&eXV7km7h+H zIt9m|+o0b)ug-TT{7R|j=3`deW74FpRLL$VnD>HY8nQEy-hHTc9qnLIIpUxCJ|a?k z!6i@NZ>Q|4Y``6J3~urraz5KgvFeod?t02B=Mc&u(z8!7Y?~Ii|3YjsmUea6 zKj17MiC1BND3wzpp;}%83A46IRBI>RS&)XkG1noGruvtYKrXBr818sfKEuqF zcpM^|x=tuR|F&<&l=+W-F2MeKrS0iY{_bg$c|zHxP$tluRvmSYvuXeRt-vLv4w6Db z8h+V5_{|AEEM!~+9+WVXQZ#T`9h?({QrGN3yj+EtM>oMSDy{YbcJzM&RzZKze{Cb( zh6ZBY6kCuKgctkk9H)Jq*xn1Oh3!uA;bXEXgY+$_uFfvI`ndFJru4;~2Qoyiodjiw z&BX1~mB=>N5z|gzS=y73EhkN;5P}6&i&g=!e|x)CB~ z&N9+!@|#bcTdJ=mHj%8Hh*i%J1j{F=O`Cc40}j?rsqe@@A<$b251 z#MCJX{)er})c&w~#qqZR++p&<+7jslpXLz&-5$BFi%9e1QLfV$$VHC9aZimy*OR9p z0uLLM+`*5TTcB0(#FLKBK8(;cqfG!C4y=o+b-BZ1m?-DnGWErwy`=I8mh$109#&67E8_MT|KbAhj%X39r@nrMXV460e{^iN#LyhLOp)T}4yPkY zNc^glF~}~#^@<0FIFB%n!r-&@MzwqMo=yF|423v&+77ODuQ;&rg;zmGody=pc#$TX zfvn`M`6Co||0iVpD6hbgkjh71b%tKEz#zkF3FF+}?zzTh2t8fz!;fAsnanmqi2x~C zr*@Z-bJQtU*Un1dx*@tDQ}E?1d{(7G4~U%ko1qnYVa6M@qX@p09FKXM|9JHTx181s zi1nWcUz>>b1TkF|&X9ZzNQ|v zi%W~9!`7ekn8=2tcw=m*$E)zdiL)ST3t5h{*PS1K;kqYIt>#y^&t|2NpD~YkZhK8f{Vhj-;Tk=dvl5_nAz^5B***AF_^*JglW|WM%JUR*jNB zS^B+5kiS(F$u?hPqUReQr&&NEtgmVj))xh;R_3x5cS@RT==}>etust*hdns(uh=tG zLZoiM5NOl!v@pOER%ZM#-<=ZzaKmL>uzWi{QQ+5Yt%$7Un(I0HjLStG^6!CW!~0is zlpBVckI&7KU?S>TvF`D&SsO`_&W@Cio?CWgS=9&2YsM%^_d56uK*7^*XX#1};l*q8 z044E$+S|9Mi~i6o2mp8f?>|c zFIS-|Xf&Q@)F;lzdqF-+HiCyuAK!`7XuL199GlFPE&PWcux(6?pfS4^D@0{k?;r8E zLk>EQH3II0i$J=!e{P5*tD=UsImunqgnCP6+kW#d7EeLeM#wtx{na5~*$m5T*S?0hI{mW)ESTJ;pYM9v>;t#>&X@|v&rnaahKg|&kB_ncgJEPr7 zM=jXc7jlT`iI0vgTJXpHwbs5h=@x{u0H#*((Zuh!ZA**J6%e5}aQ?Rd4P^(7q!}93 zv4Ig10Y`$r??Otg@qH^58~Qln&tgb75mx>=HEnu5Tawp^I0@InvF-YUlJ2sdB&lnl zyt1F>$fKJzco-kE1g7+%V6!82{|$wYqcU#F^4T-0UbxOLC-&#Y(6KqUw-3JCA49W3 z>TKRi*hQ(sW91D8iu84odMsoR%P}v@f<}rU{XYIFcL8XaqXcTn&p{T>LxG`zc(V&%T%$}3@<9a!-Z$+hWE z#)I0iu>4%&gS%t9(^Y_8FSqV7=LwI-K1>fRLN^03Oub#R9}vMUGzvl0<^-MhkaShu z4p>&2%0BI#xBG*RrgzzYLaAYWbcTTkFS9}+ggHTfm$&Ei$9E$OCnHy}a^{Rq0gZ>VXaGV6JKKSn|vvqG)DVZ`=L3 zD2R6FFt`}{6+3VA_LJ__^~#^A&9jw61JeI^mfFLi*@&VB8{*bMZ3bbMJ&t^?*?wvq zUV?S?r_QPf+T=s@e?vp8+V9p?$Ud@_yk_pJXRQnqp~gQ_IaWg>|0c;5#O_q!ea)U0 zR7d_!SEe!rB$rr2KK9mj>4lSgwtR!YcWceWe+c7I=k~hx-#y&!f+p`7X?`_*RBQD7 zii1f03ws}Gh?UtE*b%tGF_uT2oTB+XQ~&dE9HsCL4mNihrB^yaKmAB$(PY#qYt-0} z6COkuE*6Ars>Avx47-Vo=PU)?!T~m(zoNI+#JK_oyVvPM8&P-%lQrW{kt_V*xqi47 z>Y9)S$W=dTr%hM6EjbtkZ`zj#{?@Gsr%5S`UnfLKX)y=pp-#SS?&8_ z^|$K5A6@Oo#K+M}QC{-wX4cJJ%nF=Onu*d!D;R@?d65b4~|_< zWelA2C|tgH3E7#oD;T#~oXBhMs55}#(k4OxLXYh0p?oE`yb3*3YW#m!gXQmEJn;`J z7?;2f;oAUk;~#MFN%EJ`0kr+e4&Ve`RhAWJwcIKfsrB6?dXDr)b+V7IO0k9(Kn?GD|Vd(IBWs_b3Pz*C& zY(CCD{Ze&eOmo|_rCmyUd^-p>k@K7RHH@4ofLxC=1u>-0Y*vNBI(uwO{A@yt#DMK( zWc?UFbejC|6FvW5Yg~0xDe3M71;B+!Y%=Y3o(I0A%+9_ln3-`=+i+$O+k0pNHhSNcSi9#dCs zA3C&?juY*otqb{``T#$w{cFI7ut$XQ!jnAy=&^wCzX+yJ)@r+3D64;EO4~OI=coZE zp`bhHN;l@B`^Gbk1jqH>et`3Qy8uHl+Z^wHQ}n zN}j{_H5am4IwBZHqt3>deF!Z+0hs&SOnkg&yYIPw7bx+(T3=2_sH?+Lm$R5$By|@# zkkm2waZY7t%!8V9VCS;Xp!=Ph2WL)Ho?Dmp(ygt~A;rI-vN`f6H!Cv*-Kl?kfW&Hz zuhzq2c}=VQdhmYtXOZTC^33vav`%itm}bi$I8zYeXehj;nKvVui7T;iwTSh%pcP8| z?=Q?e6jENvOTw?mD==292)Yrz(EIqEq!d!gGe2>)EtAjgCq|3N)S^3DemF_K;#XMZ zM7t8fvggO3tdP?%K^U4z4QP^{Y5GAzZ$fxw?|!{MEXVjYhp~z@Ehx8S9=xtZ!`v0f zw6(xurV$_Z%$13smO&4EgPuVxWzU^u;_jAS|0zzAd6jbXJ6A)=-=xMD{qXfceE=Tz zd#WOFv?yGslVQO$qKPeEXtW$@M)tsT9;rjWi{$kvgMyBEF#Ke^MCvE*z{fDr$NdN6 z+wO)c#+`iY*FlUA>w$uIlLa*90Zr2K8v|`S#<%0(oS<7|jvR}2UL%YXA%}B6US&9c z+JY2({0DX{^5Y=+u-b^$Wy?c_8lJKC9$cd0bHn<;l_PVD@gW4&AlQ9;PO>69-5A&bz?IR1;1n(E8Xh3iRLM-u5Xnr-oh3;+`Hz9u(W}bK6Lot*V2LuPUk{PodNlbVds`bD z4poj|C!HZI>}m_GyRT}nzF#4Yv$*#4?7ER5k`GBgWhxrjYSth_Ew?m=T=8uF^5{Va z`H4h0t_loX_Hcz2A^q%&&sP}kM;qAvv>6Y?#i1kf@+c>wdf@!P9kw)yQCA}m>T$x6 zDX2fW)9Ky*c4Q8tboll(q0hyrw)I|b5JPR~<*5ickXSR%ECv9i;{{{2W`ozP_3-QA{vG6rWq)M8XX9c0lE85pZX1uw;dA$a^&gWcQj`%oLKu zK@}UQdX*56kTg~IDPvH2hm#j{bC3`>F3#!x68IYm8XE<+A*I^Ff-W!fksp7?AXB_I zPDd~Vu%$4!=wtSp<#=GPCHra#@>0SNbV#;}XY5!rT#;DAk;5+v={$Y}&_nVo zMZWzuLL=A+SJ|x?&%3}^>^{x#1(TJ1(bh=r?x;o+X7?qdnFGB7VU3do7vaP( ztw{x(jgBL8KUAG+O}t2Wb5pMzc1;11O5N0-(}J~Js$|2KrIv$VYehH|fl#Jj;in7` z9lHj^dU|jd>UrJco@_DNjp>r;r)+`y$)A7DW*!v*roL(f>vIg`NmUltqfN*R z-o`cC@VtkDpbbvcZ>8}im|WZ#;=1|$#zrmQ$iLou+CI#I0^qdXukH zU>Mg7=)L8H?ba7VUNpgHVj%NhNb~+1jm=m|Kh}p;Nw-Ms!gk9+)M2(_o>+MwAu-O1 z>2jvaUCwKm24Ya>MI+b{`?p-}mDwC?QQhrAN$u`NP`w-L>dht`FXzUVNLpaMQxy*ywovRYOohLoXG1Inc=d->^qiej(L(M8(5*pmN znm+1;u9^jgm7yO1xmTy97e4_0{x-dJM0oBiIe z$cdJV-({uGiwS&KZcUX3%98{!PR4@R8lRneNsTZzz7j7Zib__&Fpd!r_#7GT4avM( zBZ~dwcOEU_b5?9e{4;Dnm5S;@u%_X6^VL6}Fu_f``N@l(kzw;%kw zX9bmc>tQ~lfo?>HVMx}#NVD)xu6DeSHlUtfWqUSC^RN*&MeX04Y*RVa$JHEoI(%=r zICshVj@PJ5Tfx$EcVyp3tMDD>+fffa4|o+vg99TqK|SPQjCtqoFdS#<^ zt`c!$PD}&#rlR^}ik!bk3g%7JSDY5m$X`ZCrxc+AIs4(U6!)1FV>h6{YhKS` z-sSA7^pz4#epK?pM2<`&^{EZ=9$~ws>`2CR>fF8keDN_E zWXbc-Zj3~)#~W`4btw*RI+?3a5VJWql1omD-jnTQ`_%xX*yrd;k^FPwY&JC>bVT$4 z7BY)*K)s9B%HNvv-VdmX%20a(Mi!t`#V&LY!H4zqR2gmj#=5uW1_f-LWozKd zjNxJIe6LQAv!R}UuNN>{>%RvbqRY;tI0rzbFahnpVBL$hENPBm zmt9ZP^l;^~DzC`BC;!R+IU#Dl5Y-OAqG!x?T(9C9hjJ(s-u0Eg#3g5t={>-hEuN$Q zV>1T@;+E^mtWnm{_t`OzT(&q9=zi^1UP?O{xfH0edbu)@2j{o1UMShJdu6U`T`EYd zucjH`&$H=cM~P9AelDSj17S54{#Nwk-cg`$AnRxRk8hg#^}RS`d>3gX3->vj6wO40 z31J!Sh6ey>Z(w~V>mGh6lP!^>^8K0YfbJj~rId?1IkGWJW8LCM>jUCIJ@K09HHL;! z1D8AiSNm}QmtH3O6SkCO$|WW0awo^z{LtV;hN_h7j90s#QO*a=JK%YXxy3o?a`t{01+?Zy!tJRNLq^10Me@x3If$gmQ+IV=mBenT#i7%fq z1#VnHVp7|KV_ebYhqc6fVf-J;H~N;^#Y;yfm2;#}tZeX_r#(%hO!1j|SfTybps9$N6>x4{J} zkc%4rNuwKiBDjw?Q+TTuEqzqSE)J~?I1Qvdq#8eq>{FSFr2Tq$%`9k9~ z2Excs^{suf>!GeC7nj=*OOhh0oz07Zwbyu{hk#IVf7ccuSHR{r)X{gSbM2ED==_yc zSpRMhm%!~pV6krzajfy(u#Tnsp7x}kjg=TU==)iIdo`1^%|sXR>G&)2luD$<+d!B; zRmk{F)HVa`#DDGG_k{_t*{llvsY`N^ve%=3OJ!A!xFVPw+Sc1e$$$s>F!IPC@Hm3m z-OH8x^zQ6%1;9En4;HvA=6fl{UOxdUPw0E$Y5XZ@xhdBtxBB(Y=}O685O=h606it) z?DHg3daIj5fR+28;qViGIIHue7)Gc_b3!rNo>G+)bc(KtIwF4_!zar`*n2VNn)uuf zwd^Y9hGW)gb`=QUwIXVBfunUFx%_M@XfZRAGunV?FJb=w8&*CSNO{@QKG_#=B2;h$ zp8q8mN%l&R0$DPqsC_`|Ahe_25;yfz#MNilR7i{``ez%a=_m3|g$-Tjo%j%Cd1IvI zc@T7$woV+Aoi(?m|B|~8R5*+s4ea4YYuW`&_z)^qDz{=7$JY;3s`e0C>Vgb1Ozs7w zKFQs!GW_hlSQS)QH1uaN^((0zUBrx!kxwJ38n@OYbrq87zKuCvf;+Vzd_nU^NX{25 z1)WF@FJyBMEaBaGXO_z`nv_Ka%WWL=y?506ZeDb^`%?lQ4!~(itaDl--~pWUpTQB9 zS&KecEGWNwAot=YvFTl8MQ<1B4#Et##p*pNnNu&l&5_T+PYk`9TC_MUXNYQ00mjvQ zx+(&K)QelN5#S$iXJV7YMgN*~>Adxr8d#iXF#2q(B|c>N-y>WpB^$1ac6~br6&_I+ zSaw%?=VGe~f|>5wN!`GZjUwo`-KQ#-@dhg2yv&2}*!eHr-GVgVnOZQuqj}sZgVWn7 z3o3PLMx7thM!zQ$qt$&8SRK@PVe`k!4XQ_9I)Kk^-?q{j1QjXN2F^tG2MMsacodrk zjB5bB=zb5h%sFf%Y~#8n@BCH-_rG58Mo45Y_5@*__ODzT`v6)u-TeVG9@#y|E7=xd z#Ha`PBx3Dr#22q~vDvntdrHQ53tcu9W?kF4I3MXFe4YEZ3XC|{o>VcLeq^T!+Xuec z_iafuA@}w~*C$YgJKpaLJdSNe4O~XqOEK>OwwK56k&_9I7Gza!9a99-?IlfN8T)>c z?NH-8o2p;IJd{r``>wC0VZ)ji^OL$>*5*hn?bKlbS$NVpBewG7!q$`z1>6IHBz>Dn zjF0xRZgUn1TVmi0w2FzHIR}A<#|3T%+zPkO8oG32vYr0x(UOOUjr%+c9jnup5sZKr znWIUP{sieTnab{&na!yEk88bv3S!pNrX8A4xMFWwROpJC2Rc>A;Ty;4&BUOVFoVE5 zZ%Dz0H4|hNJrDqsj#)z7oYs%E{yGbC*B&+auc7C7F#$>9El>MVup{gKHFG?#Jz8NZ zz?AE?q#qQTe!30EsyDbx^fVA7VvkmJ#6g2^kvCGZ@GD0}fCuS^6ckG?SJ}h3gr;as znirU!ucJR_(^uorvzt_4b~8>@=*3EAK33kdvNzCHL^l;3B%ib`wd8Zdv1Hq6N5i!F z<=HD(eyaQY6#?BV<_~ml-s(D|z(BqaZ8}`@m}Zepe%Ze^TNRu!X|>b4b~%*aw)HD4 zwkv~ZKDm2cipv#bqx}Txc(3>p=K`;{JVgabsi`7Dk21)h%(3*21-Jn(nUzMb&O8S( zvgCt=#expaZ5f6T>V&OXk2lg1@LHy;V1Z&S0+MOl)RD3=5R{FJdiFg=5c<4igy5lc zwRJqO8|dzYsY(Bhyl_=tRve(Fj0Y~<^u>y{B$su-2$+KJ!mk35j& zb4hdZkPDgwO}2Ok$xJYeZkW3FtkTT?njpdhgNyFlNsTS<-+gW?iB6+ho@;~K$l&hd zu2{tP`(($);h`l9Xq*!A+uZ-eo%{6)AWyg*TNKd#)t-cL=WqNWch@A`S{<%8<{7I}qqw(wEya6lBL$ayAU%<}@CNt*=<9@KNq7b&Z1 z57L{dATO+*Xwj45@6cdIp5BM&Il)eps$R$?|x@qJ1o# z-@8iv_om_06;J@=k|JRJ_4@W9NA9fkMQvnW{lPwZ-QM>gd+Y=4+O6LH6XOmjMUL=< zm-vvu19;*AdH|KTF#Yjgy}27M7&U7H*4g*NPejgizr8z~-*wNa&JGrAC0v0{dxf{@ z8BjcRL~;q;<#=Gv7PF|4uz7_kVZ6-LKOW2y3bi^@z`v~2d}gU+T1Dhei2reSa?#c! zN1i)nGpzZa3ML!IsI!mcuXX{0g|{Pi-m+wBP1o)j!dNbvE|@=*ztenEPuV%Y$$)lb z+hyDRwzT@86M4EeGYT!B=Hj8f)5B3`(-0Z*QGT&6G|7%H+-b%kP-Orb(k^%dZ<}g8 zN`9+@6X0fEUN#Y&p7*Sv!?*hdMDYXkYtG4PNxnF+Xu>A3P%`x$^SI1L3ndRz_ZaU6 z9IJC@&oFlzG9Vi$&3`#oXeLziM@)f&#@BpiyQLv_R`E^f^(EcdV+Uu^h=t}GgD&T- z%Y5(P(d$G?63S0Qch_eH-&?OW5eia&d5_y6)x7)Uq|xfrW@G+z)*=5q(w}3fJ!Ar0 zqXyDm`R22W=qB%_JXdPQ_t%J{k(YVo=1D>>`p$q=5*xn{!FYbjvI4 z>Au-AxMU=3&?|`la`gbJG@5=)9?HP!$mT@DdzHl{N z{0ihH3c~l)CEDzM61ci)Z)+Eh?3Pr`F-q0!FO5ty3?A2iBR0#BCJ8)(24-)!nf#Ct z^fU7u?crYw@PABwnfPE~v)u_7=v{y2BBYvZbEWf071Mq2W@vxa?0I3)o6ac?Xh3EK zZ50owx>;)z`g$`|E@8<$$l<6x=>WixQTN0DE3S;2KCI06 zZ(PW7H5WpTkW-EGQ&Co!Xb5Kv(ThsKMbCt+K`pvB^xUK!Ab{_?xxOKh(v~lA^~Q-e?<5cWFOYAwKHc0xq3Q#oS7r!dU2<~_Rno4zM8HTe-b zIDXkTTn^*o0_=UM+)Hmky`OK`iJt?sB5$iAN=jSTcLv^Xs0F8biJQ=y2{DEI9&K`P z5eIjInS2r#8MOx=V#|KcL78!fr{*zUhhEG6xe44q(zn6gUXUqplXiR%38&oTS)B#&5W99`zJxg-;dVp-77NoVv+DyX6$TUxP z@FUuXUO(ze(jLq01NNzcHr~j!dUO|KrKQgIAXLx|AP^;ax|%#cLePF#{?`XRrl<#V zrx!%Gf6Hcua!ko@Wk&KPqK?o-*2D(#n~Lv-gjU~-TAE8gAL+-NN&+^WeJL6lz;!z< zzNC8(M3H@vLy6~XAe;jZl4E)wl@jG_M)&;lc6JW?-w1e`b~QV1VswopPn>>&?AvIs zd4jx$vi3SI7Tx&PBl@G)o`}q>wS%Ps0-t1YX@mddfc_$3kn?=T-}4M)CVlYA@~a?0 z7k=;9&1CGCg_g!-Id4XF$#r6s%S*UthVH~~TTL8ZwzORQ*Q|hNA5^I9%8goaJzc)A znr1NO5&g6^8@hZesopOq7Euhda9C?5U{O|s`mvCvu|F-GudXLc z$qffp^3>uBeG_8-^~NCqtqY^){Rc$+*w=CLA}>dp@XYhzL3D4}!`hraWLxFMJ2pi? zx?x;{u=O8q#z-N{YM`z}<(irh_qXKWw066j0HC?T_eL=`iG za=o?pjkSZ|4^}_bMCwtepl2g~SW6x!NRtVgxuW~+gPxqnzF<9@*!jlEHS-W>M_04x zA<%bEN0wx*Z-s}}w$%Z-ReQMg{%ZndFF=DNFpUPCv{hI`1)O3JY0(f8?cGDQ9~KxpEiy+CMI>l_7vOAl zH*QsTKb_5cAG{IR6Jx=NNf@JA6v&jDV8JD0VKRIq4jaDF=}oxKT)9tX&%TKM)VQ_( zRcE~EtwK#S1#)8rTh*6C3w_U?fois8_c$~^H06LP-s)_z z?xHa<&uso>EIS@T`)1GWh5w>7K`AYw8$XdQPKe9K+DG_OFE!>kIdX>EPs9j={?hmp zB1Edd@@i52B}&ic*~g9uQ!bc)B*75YBjWw5{BpedMM=NZ9d8ZdSq1iaKG9RocQE2BWlKdU-x5?I#-zI z&t)dk(6m1JTr|5F+%vpJiA;@lRMqz0*x@cQcw^JEAX6^3(UShOLsMq;T)7|VmV%x9 zpKFBPGvq%e=_Gu>vs_|!jZimV5hAX4*ao_2CZ_9YyiVV0h}R`+z9y~~-1N7q`WPv* zgHg>r^h4c^`#9sGx%hzj=I<6LcI7WjyoUOuN)@ zvI-jxy~j_K3;F`c`1N%^Ibb8yKq2U66PA72XURaesX3Cffy}_Y+RjERXeW=PtH;1~0i9ba#t>zvIzZ@Ac~B9;WyI`QJIZIvA@ee7=eI?VV~W zA!#GUORCxxg1SnZs_|)M4~1W`znhx zvcfJcv#r#JMcHrcaFV?e^O%8c{9SSy6KcDeYm5|n=bp1F4=L=P?ze^hdxn>vnK9et zkk5cdF^S@OFDc7WHDgH45(Tk*%mX4c;9EHNN+n--Lvx+5NcmcB;vZ#}j}cRP*w2W_ z`!m~^8j&(G?pQnw3XrmMxY&i=-+SCm?G1=?pc-nj%1y(^l8oi5j{!05O9S>x_uG{Y z+CHW6GCxSzTq8W{BR4XAp|++=4no4A6wX;ryH@WQcZ4*#VNF1zW#2l*v&5q8cFm$e0q<-?P4>86 z1hgQ_NZ>J#$?{4AF(7khdKpkL%#!H{cDt=TmFxi z6XX;*$h*>B1ubGAg}#ewIr-&KR3v@6mG^+0!Cg7UIbEG&5^oDl?)6Mzpaxjo9T0-| z6Y9S>uO;@otXTR@7&`K`pRb=kia7_K(X5VIG`ien$ghHl!NNA0MN)C+7T|El|qsiPS7hkAy&_qKi5ypFoDD9Tyw<8tLc%;vKj%=@&STAKaNOtDGDY{NZ=M$${U0s=Q_M8S(~Vgh z+g(Lyr@+qlpn=jQ4(f1=wdN)hef>7qX`GI(cGE@p|2f7BKthHkB2Y;U*T4@ED;YTMf}ec8=fff)^1 zT&U3WPz9;CWof&*QdHiRSN;5p$|4OtjNK!^ z_<#%AH&6h>cq($u)316x8;s8LB;OT$*w6z{c77XUV5`SjuK-Qc zEf#PtqUe*Zcqb$tv^2NwybYfg_nT>+S_5B!&N@l0-1nwQKDP5Swd|SsQvdyADSy;w z)3PvdM8`L})tn&E39DW#Dp-GiW&~4daoSnEm23bTrC8l=KF}V_pZ+=PMfqxKQSb^}`9QnVeqh^cMpu`uq#MdQOFL1%pH6V_={cU&g0QMzvQTZ)l$6amT)eL1ti4mK&ANyDkzrR`@1Bc4B zKFqtklcW}^n)Y6yO+@_*{2!B6(XAs#C)YH}5VhbQHo{p#!Ji(2=U4BSlO!$YPcfK8 zH%oLSq=owv%iA`GD)>_p9+!e&(9si#-htbv%s9uH?wn=Seajh>ZueV2JHkPs=vnx& zM)_LsZ_>D;*VrhEa1tsy^y&Qy4m=x#D7ipAW<6wCsX#c^eAwIP`PgyB*L#%>CWh_8 zsIS&7XsMr9DP`x2byuUG$z3yCAd2AnkZ73#O>}ewybQP?izp>l+GKyv#d&iva*-O- z^diQ@z1K@R^kn7oDY^(5ijvGawZ6Fsy#9a4dgsQv!tPr;wrw}IjmAb}qiN9C*s+~7 zZtMn)ZL_hlcWm3qyMO1LSI_g;`T+M@YtDPlF|Of;(E()dA7%API5U6!6{goHe9;2? zCUQ_F=1!c_SI8-&N*V~2*QbVGgZhY+rI~7UogVN8)NOr5VbgX>E z{QS9Rv^A(j`=abnS*y^aYQeo%*-S}Lovx838AnesZPe=u8pO6hY@PSUfbv z_f;>e%dQn6X#I0=y$XM7BxqlsCj}%-j-HtcobTfN_MCB>LgzyULRr1#Z-Z}rJKo!g zV}T)sWmmsZV_W@p!#+Kccv$jXV&!fOzxE}L-1KFUTsP65@yx3JbG1Em79JE87VxBg zN$A5{yVy5DEz9u%!UmgDI>2tWOs`FEK2QxXEX?GI0#DS9$$AMmSYd=u@nO>e zJ8!`I*S^0`hvVa6APu3EY{k$UGkntbK!sc&|8_YaUZz}I6$(nC+a-4<;KtH>E6B4p|j2tnIW}Ot;xNzkl;SP z>!qxEn{8q5x)ea!bhY>VCGom5VQnI?)^|5Ma(TpSs!Z;M#q>FmZsyRA_ro3Kr2y`T zg%=R7GZU__=db2Ku>u|2litE?0JW z*780`>MZ(Hcgp^J^M34^OsqqEe)$-}d)Wlh9&&}(*wNkkqVrhjcNCVeX-UzgUomcfZK;_*$Ic%sLo%WVbh@E` zk7#8mf)OkFE4|x~E?Ibn)m5VU%bPKujiPc|5WriiqwN`RdJ=^VJOG0co9ZYdj?S8L7Yky1C$-WoBo8h3?T;=*(f8-rnKET#?HT$&E?KS- zF*(8^*ECS8JZFl{W_FY>e}ptdD(~`3UUM%#7(N(;&}A*Wy8XC}Unld9O!>zQC0m1F zw=S_b|=~eL<@Gd*~(KzBEn5A6*J84+=ZbzUX zt}xM>$UhLqu@Bc6x{;*3S*)OjNOLM1v2&)D5M{rWo(YF^vQk8SsV+XwI&Dkd+|zAf zTZUXzF_@Z_k@sSuM~+$p3NwHH%@AzBanWf{>pvBpbKykSoff!|K|OxD>UNdXpL4en zt&A@_4ewm-G^pkvj`7YJu|7J%nmdgw6fl6{BIc7Luch1F+JxMJoXK5JmA_v33z?L z_C-}|tsN39ed#|cW1)ZRwg0&>VowPSq9&4SzabL{`*BN)j&?{wE$n?IpMh`u03q^* zMgVda0ng`xEDC{_#acaPjN?Ifw=EE>BD0KZ6E)^9TMf<{ManS*A1gu<>q~I)MzQl& z?H1j@_w%@%M>_P2`z#{Eb(J#R_lb^~ZYK=xrrxJ_J`Y}jKo$IKs{zNB`=&bRgPf}8 zkV+4C;~TMmEvLi}d~yDf`g@SXc0b@u#cA~Q_-^cw;~BJj9F+C@?9#YJuVj_? zP%c2I87}MGmut4iL}i7e&VDNCt@^X3%KWVh9N2v5Y39>HN<5-c*6De9B>vey9e^;9 zRg)uB-7bc2>^|SGfUu(i1tw!YPVVoBaGbt&WPZw8$rv_QQ*?G zWo$C%q&8RC+N$!QBpvMj*_1ftMb!Ime?e3DLzf%HOcsoA9E5h#{B^$@1S3F70K187 z_j+??4YuIhE4q1OAM2T;6X+-ehL-~wnIJp6MK z75PHAvq0z2_uTV}dMAhnUb3t+BGyD6Y(3WneC(16r#};e+RS*|$XscBV*X@bPwMO) zlpCL4@aO4{iUMqVY86vX{xPQcUlQ}b8{}cvD6uI!YU>09|BHT|?hwci6U54?WcNP^ zFI*u*Wd0V7;Vps@T+9tCl@O$vYL(mHw(G^LPaqiz%E!D)Mmm07og~oGPF~c)WB9Z+ zzn_ez`gbp4kUnwOFYjn05Wa6HUAG}~rt&MRq@8zflGcU{jU#1m3+;b#rc5S+nv0FizO-%)9ChT#UL-%NKZ?^+_Vh z{daya0}jx@GWx>9R0E}(D|POUX1$dFMiHU!Vg?X#ddfTg>B7%c!<((-_OY_S_stN4 z8VT1~k51OM8&bg^eRoVBe;zI}S;E8CLJS@dR6YMLrJ3E#a2Xk<35A1#9M)PR??=6x zRJ$LgJo$Ku*2860R@y}uy^mDM{fUxmHWRiZ9AsW+x~Cd|i|2drzVDZR4o!wvR{fv& zOB2K*wyhlRJ$n=UTf3&g)d~>$+Lkt9<+BNLn^aKqBQM1AQ+8hU-4 z-b;X8_qV*M8SgNnYVN8ri8Yk4W!O#UmyDzc&%-HV0v+aSubnD-Hv}{paN+ z>mt3AOUC;Ouxg%L6dRP9o1vQnMW{|m)P*1n7DGKw<4_4KY6j3Y%(cvuOIlR+@Z@4x4ns zACy?sdCrVNrHcsFT`7|H9Z9z69d#6}0DWAZ9h%J6?amBF#hR~rR^1C!6>WDep-i41 zO@{AYr_1=W@HxCTd32vf?eT7Kg=<*8bK{}8n;8+OY}Lc&?RJn4o{+zz{=1FvBV=YL z0eP_S8g^9zm^(wlJ;kE0bpjwR${Q`A!}EOj;P?!~+{@SR*pDyTj9<#~2KUy{-Le$_ zjm=w|2!@WmCs%S`f8RI&M zp1gtKis8pkvh%n76X4=_5advnFTt;3vf6ArGR`Cm@GUND7Be(kzeBNheh}HY_#HU5 z><@9f<^niSaVG%zkXp}ch`k+Kf~gE}l>sj-LLl-80j$m`pgjIXaa2}y@0{Zs4VZ1v z++k~KV+dZ(bPuKywBMU`)-vAD$N!u}^m)eF$~__qb8OhZ7Vq75zlppFXNK3txx0QoLwx zanlHa%7sl3Wl9t!!WqdBg7Kcid8vtROURBJ4?-=aakPYL6at`>D=^x@jtLfwk`GiO ze1}B+LC8Gj1PJ9BDr=8#?ZiY0=7b;wERREv{z@wlR0uk@LkK z7z-&@Mj-5}v|LegIbIK2alPN4?dN5lYse&toERo+tebknTj;Ie;TDMmXMef=HYR{v4_KS`fdQm5r@*e{Yvp9-!8hBWF$B*pB zahkob4b0w$6LygNw8wW)gZWd*U8smN4&n*Zc577EuV~(idc5M>vtepyf0uuWyuUR* z>Zil%C~ua4l=m0`f1Z5XRoSv3E}w2!LtbPV8oyWfxRG>ezcLGkO#@U0qb!1j<-&t5l0S^K|-Yaz0SnEkV>~Fh)Q{4Gmy?$rsYCf`{nrT zAIX>begH8~ByK*#@a+U(lHekIa_wyAkJr_dH-59G>K-LiS__=N?pgHO!vve}?6jU@kg;Xg zTCS_G1RHK~Qv>#Jb)VWj&g5XaiK2C$*!P}@c}6?9$p>Wuz!e##jp#E#F7^=cXOzaCFaB2;!$rKxKb9M6~HY1~-{wfh%hvtM@j%|u8Axd7GA|QImP%5+5L^)%anwJyF&2hBpP;@Fg zfxLEoqKesF8laHw3m|bgDR>mIaytm-Z46MXs9dQmv*-vRhO89y zR;SBEoteM`mG|KevVo(_5Q1~D-|m467Hj{T?KshL+4pp!*va>sJ+}|gC=4Ju6ALaC z!dfjJM)7b59fI{R8`;|wq^+HBm3aAV{=1ZyVXXEj&)gBJrgw1>buX)r#X11|HWVV# z8Aa38(ChJnI0QDysB5@p!9953GLNCE_)2JdWNl_n9;Ir=miNzQ)b5wp+yUCJmI~YM zj|%6w>*zLU*N7a34|&Qb-lg18kR^mo>>t$mrTpudme-^%` z6FGKxdEM*h964L&Ftk$xzzV5k(=wg*o<(Eb3|rjS%K10X7Ss*?7d<@p27Bs8UI+)Q zA3j<<2Y|&Jbo1)KxQ@e@-OIY(SH>!x9Q-=ifLD;;knaGPS#$dg3cmW$h~PrZN&ChJWA=8qIdtW-K73i{=itge4t$T}X!3i- zUGLs}g4F)_Gzk_+e#uj`083Zax>n@&pLJV_W$r^LfIFMcaJ7}<>QSl5HfGR*kX z5fN1xqgqjt@d;SSO{y#2uCK*6U#8U%QwarsfrW&4SdZ9>T)`~I@je>4qbQRl$8{Vo z^<-51s{gcoB4nzSppXutkUA_$@n{s$)U`?F?qFYUONpy>R@%>&h+m7h7$}%ln%&{Au+J zk|V7D!eO&thR_-Q4D;}=Hel~C2AS5i!~>Ie>D`atCZ^45FSYK7I8de3<)#w)!y${2 z;@)TPr)d}6ctz&|p1WO>Dvwl)%Nt3M;)$Om2@`)a_lMZ$HebSA9(B)G;3Xq?kOnnX9|KS;RNr z?fJ06>vxC{a3^BwxwWkF{}6Kaxq*{bWPi?*<#>Le4rIU+zaJU;TxZLFetH$(iFDsJ z-CRt!;Pm?EJL>XO-gI&-Ng(zfEr(v-CD1dAF_71TT|^#Wa%p|`FoRk3w!O^p9MUm2 zu#Y&L*MkpUF$5jlC^9d|J6rR^#KBotH*8(KvK8}>OzEn5B-!N&iEld>}1wJH!C%Si%7~q%&?;wgYM7M?yikZXBOn06- zZ;aMk(@kohlf{%45W87|DL3LltZ_sqp@1!Hs4V4HF3f2{D;KQq+77&KPFgA*y_tD< zJMw|Uygsr?-f9#4lLMIH?f1=dxZ~z&7l!NasNeP6a2YFFEXO_1K0#8u+Bjm?kUL^u zoyJL3qY~mkP3D#2&+cZT93y)T#F4#~WSeDD+f0%pweG@ehZO>jH42TYvKR>_BP-R)e6X%1qJ{N9P zyfO@*PH@mU=Y)1Sbautq^v>^iD@S=f==1a@0gxG206&rbeH2}{1ZSh|vdspOxrGa{ zB$%e_9Qt*W#&wVbo6?2!-#*Hu52tALAM1qX1Yf_DGnIko_!~>!it|fxCr!S*fK7Lx z$P{>Eo-oonA^|Io0+EVuRKM7NvR-?a5K!+`bNBSol>zE#u}To41!l;L#k07&KC7Sv zoc(BIBMJAuPw}ye&uQMeYE)ugkp_~U4J2#^qxRhC84N4ywrq6WUs&(P;Td(r7ODN1zqF0RCpI0?qKzw~C|5sFk_k-yI zFay&+W4~ScXFv-o261zO^*%$mzwG%n!^Q-|W*K>@&=5oZC-e*u2b@@YMURsX*_iFU`qw>G+l!R-Kb3qq$()pu% zzd0Z%yumbwaSArpnu&YgWYDcbrwWs|Ud17aNk5~)kG>2t@<@aP3E79Pj-F=4>$+dKZN;K1{?1Vk0W(JG{~m-}0veb!A1! zz-u^IL_5k(Jqbi>7vFFn^=EZEKXQ}aSprpv99HS%{zQ6)47ZU5j8k@>*YF519L#Kb zQK#4m4NA4loMX25g)8{D9yi4liQ)w!J?=H)Sj)~1-iG1+BKu(POIA}_Xv1{J8xf*v zQc%lH1Iz+pG@-gx=!zSIy83MS{z{RceNQCE*PIbUX;o?GI$nnd_7?&K=p>PnYZm^r zyB*$q&B~3^YwH^|(e8K(4mZd+SeSEBqS-7MfF@|itVoJJoujad%TmhABGR5FGOskC z%6H6H;FRTB{)Ee1l)YXAmIQZto&~*rlHz1~Ig=kM@B60eV!urb83dA$9F6T03Lsvo z`;s8JrHAZN<*$t|#s;0p`Yr%ZZMxvT>hX5RlUP2u<*c_K>^g#$ky1% zRdc?qtmqoRrJpm)*i3=n_PloN^W$$hBW<^!2>SLHN$Ldy*K=vzC%U};e%VdvwMI;< zFUUa=zN`aj0gnN32}e7mD^CVJg~2R2gWZk!PvA8hu9&ER6QTg6%Vd&c% z^~MNeCf~fg61bMj<7)MzF%_aB^q#VgrQWv(omo*=r*qB~Z;LxcPxEX1v)0bDUv4yj z#dYJ|C^7r7cNGEr$GmBc|8@^@-Svhf47ndQ;^ocY)hr+Wyrb!7*F0*47*K+S&7;DJ zui_`w+XzBTUK+BrQBD=Xs z;=U?c6wL8w_9LdsmxnK)tzMh)ukc2$i~CT$rS_`@VTv zqF^L_IC7qK6z2c~m8OdYgQ9pzw#+Nf_A=$luz=4S)A-)y#iBG0D)zbL2OL- zo29+eNuL+XZ$d$75pq@*YZXuI4H4mZ%WGRbZ^Uz)fIubh43`-G@`6pKDae|Xug zBK0z?vm{xImbG*Dm_3xN) zudn5?gtG&9kRUqioGaSht&fNp^ODK=CCMlB)s^VfsfATk8fHN7Zjrt)nX zu!znF(>9%wrtndKitEZbscd06yML4Flkg$GSj&tU;uuXo2s?>I$$4VB02y)Vcf|OW;|5gS>yV zCp^u^s^`?Q)iKO~{5Dl(YQ!kvE?{W~+`8<|IZPF_m-L?M?eu7WJ?ot7=om|9rr+%B zla%({YxDzyl3gv`J$1x-$mhG*Jlq!y?SdZTbbM++O|)oy4T1(Lxe~s2tzt5MmUGgs zGr7FF225B!8^UIDW(Xp7C2DA4Qj>VyvLLY4*#qdtjC%)^p6s&2ByXQAnm&t z9vz$S1;gkazpl18*5w1Z`68V`W2`;c9?aSNuvM`gaj>jp_J()7>)r$2*@v=yI`8i@ z&g*3xmqDl=7h+bP`S_Z?ivRh_N?d&0%GvG|ib|4wn!t8ZL*OvokSbV+SNy`DLd}g; zM~i3tj$W@3$}I!s7zWv3Cy*UlNSiuQ{7=(3R1;-f8M}8}yqC|yr>dVz6^pk{R>-BB zv0rX3Nf>MOThA*iiuq{HZG;Ko*yeuN3LzL5T7(E=l0oUhxy5=SP5%Y+m;X%q(z$@km+*}JO3 z)__YK_Y<+#30BQEU{c@pn@3(*1@&x_BH4P$q$DSE#2629mFot{uiIO!D$fyRbUVVm z_rr#pf48~&In_5Nx<{QxZFMdkiZ+8E^Gwv`Xp7#z9Q>0zE0&=JS$gTDr!;jM&o8~2Gt>y(M z%Y9tAn_Ppl@WQKWW(?Gxo8z*8`0k&@=C9M=jwDH~n=Ndd?j1a}o8f2B6cXT!0?uCc zH29Ux{&E|&wK%{vJM?E2x-Xcu99uR-?1dmt-4a7%9N@JahfkRsYImLQ`Lo5+VKcA! zKWY2s>-?9uPHP4lT?B5=FyuM*c&UuK@eJ0KN|x+1kkavy#ptFYA77rJvJVN`Y%JJ? z9vc-I(nm4umz+YDa$gaN9H?#Z&>mlSNb9$$I5ONUrXBqHGun=^J7s1K1bakKe!Zz$ zI@Kxltz-^Nh9!+P3L-C|tl}e&697Hs&Z_O@EV00^H z5VZZK2bqVliy3_~o3f`cC$y$Xt(;yFFx%~ER*=mOouk0`7ZUj?=iL^w(pu|GLP=H= z&+MsgDjje6C5`C5@#n&WECxc;B{VQ+aTFqtoraVrUUUY5BsHN6J>~+g)QOFMKM(Qf z-pbj|SIGj787EL|k!zi?Yg)Og22gt=LxcnR@@?QDw10)E&(-GV%Eqt70JEYnqKV=M zhd-u&e;3Uy{GfWqyEUvueZT3A{2(0uab~sgt8llXbho)kR|UGMd{C{^QT(4DyLsnO z9B&FQ7iE?=*TB11ocBYZDVTw`h_wdy<2;Fo6&0n0nS1z0bt*(34k}g?JT6C-IIg zySC*{ozHC=@U5GXBzK_3g4f5=qf0l#8(b1CF=lW^y_;tqcFz4}F<(Us-tvDcm)}KZ zyZzt?`4o^pX)*JTILD;e3RJ}@4W!tHv6QG03n;fF{*fa2!;bKj>O%?^Pix4?U~OZb zf3Y4+vg4v%HPf^|;@;OU4;{2cO~vTK>Ik@ypgup!Bs_wt3WGfb!Ul_1MUYumth>eAf0wcd8j0kZzA1m?7ne{zhL%KJbnx2k0o(I z;fP$yvhlh)dZXr6i{a%C#TtnZeZ1i`yik{yl$n0Q-wjcA&vK%Zgw;qPTX#n=wLIk?imb zA&1JLM2N65;__{yi*niUCX-muZbdPq*P~!ovBU&KLXyM&Np~)!KTt#xmG`wE!JeD=7D!_> zj-&90Lysk2>rO82TJ9^So_G#9WT_59?X6cEmX@B|yLxWom9|j~;{Hrz-)r1ur?%ym zuq;n+2~3!D=HBczxSnBk>Q7VkFu*Ds{n07mz@jw&cNI`j8BTWb+L5$NBd#)VC9+0H zt~S20rb6FSk3UOwpCjy(y(E19a!F$Q1E_M=V3i95qzlqr{^G(O76 zx@lsVSo)ZXqWBamI)^{kq(aQs$5i`5o1Z!lA27NNd+nElQ_mpZrh5?T9ViY|=V%C_ zL4}A=ESHG$CB$NtmV-KMq)`|fE%q#mz^5PEEF<1I6m?|fhq!S+^cvX^1~yT2;2tJy zB9?q0a%8HwXR>vEWf0uVB61oiT_5E8_>}8=Yv+CI@A$VuN9z#1`=$F5)R{@A%4%}^ zxNl>%uZ*9(oHK3 z|7iN_-q_i5AhwJQp;3-3k%cln5sz;5es-&Qf;Iaxd{8@jYUsE*r4X2_P@++;$(Z`T zA6hoTpV?Gh)X@4!FOeid*ZGPR@NoP>GQnvyP?L=iG07?P)0SdA3f~#gyb1E{%@~4e zp?qr^eQ$|*!H5)ZUE3ys&JwZQ8Y8{1SKj@qD z7QRp^Eu3`-wri4AtXZF#7eI%w!O)@F`t`OotmvHao+-s|#gB1he@~cePD5dqq`qY@ zJuO~W-ZOxvh{vc$hPw|Ty1#*ovlsD-I)5}Cs&E`ECG8dPj^U#b-H+oRS?AM(_4WaFJPZ`zJAKGU{Lcy(`4qu^sZeC*zOGp zn6?Qg?QMx(vXD6(dMsF4t!1@yZ6|D(L zI1LA_dns@wzgpy&5-T`FdV7|U4t@)@O0H&T16u2Uak25z235n<}aT^@ahp zco_m6RGpi&>m{lV-6qzP9$3YQ#-(NrBuLE|)USjGT#Y-G&7{9rdP`y2RLy=-=#66x zi&@Y3t=Jl!QD(sdX16Y0jS$?HqZN3L>}(I(_Q%vIdA!7lH1s+&fT1Nfa4vlZtjn@8 zpTl}V)@$U33DKfVq~ACCd#Ke25~zjKCQohzcQw- zb@0Eu0dfNV`{Ozuj4JCtWMpOEps-+OtqZiX{mvdt923hNAa$W0-Ah(BG(p(QGPL)l zc)nr8=BZ4^84fG7ptqf1_h6h`enKL$2GSUhLdaQlNY=gM;difvc=*u6l-GCJWN8>2 z3NfN>Ed;B3?U^cj+{%Qy2Wr~eBOLWt*!Guy(vLEu$&h!7>?mDcmw1w$wy~8G28*<>dH`0b;9~5#%~pVBP6_o2EgZ+;~)9P2!5{#`8?TJo=NgL5;z}^TR8S-#&>_V?$OFS!Gz{?0 z;r;{8|L3`RCzwXA?ZYDL`lyz^u>*aHO}>4>yp;CKmj9?)M01;k=f&8f$|8Sl4RV~| zc2{ERDjW_$7Jlb1;LF5)P1`K{?+rKCdAmD2Bs#KrW(DrY#DYc!iO9gblp|$0zM2%( zrc8H}d2O1Jof5xtj^UVX=4SlPfOiiZY+Yl8%2#q-;P*0k9GHt?%h3}3KLyJZ8F=Y# zxG0X&b}@NBN6+V%+5HIVYl1wD9w1(LI|_uJZ>LW^Y9?$X9@30NdjyEfVkma3K7T8a zy14`StHT?9A0Dh}GB#1m!@N|y<_f0&XZhN9%bpg~p*$L%$NOO*ijQZ2pu1&*Hj0?v zhe(*~LTcOJ4)<2T;jor+QzC<=97U731DC!Y~_?(n*!rY7PT#=a+(|F=1eXTiVm zf;C}Aystl`rIOA^Rj0&cm*L{b&-~(%zA0{|;E}9{)Y>MwtmZebGTcAb{(QoRW*$(x zf#Fs4#7&&4q9C zky%>+^9rZ<8YqY3taxVXajIPDRukF`&_KXp&E#SmYf&?0YP;It6`<(T!Pvkk=h*@L zWeH&>Fnkcl6AGwWF#bouN|_&k%tv+(g@}N9W_9df-NENBL|G)B{FYzI&c$uFck`fz zOH#?pS*TXHdaAq#9*0}{yk~Hkp`fG_I-ly7Q!gt{1!g{Rv$c^ zmoNCs6;9*F40*qj$^Az!xK9JoMJ2CxtqiRWxgwbVO*g)t{ZGCxWNR+D2C8!!k;n#o*hQL#^px0n ze(m@LnL(M)l+3dfI+q%Mqn1>sA4D~D2`X`ccb@ZH5X;3dx0Gpfo;GUv`D?cEx{ate zxhA}2(j;`H#xKP|F8rvsz)jmxFLtfOCGiPixRSQ{En+^noJ5xP`U zLh<+zOZjr{*~Ln8ML-v~)L_kEp~3jd+v2Rr8GzOt&H(G@88%nSU9efew1a1%5%VQ0 zyh83rg`HCkPa=9CQ9d}7*a%6-uxIu)*A+V0L_-7dJqfaQKjA=%6K}lvX;+Kn@b|9~ zh-KKhVDjCSBuAlIN`Y@xURD1r`B?!Fq)(BeKz{sbX}xLb#1@JtL*OaGB@zF!I`F2w zyPM<5eimZEy_+RcY&Fv~>*l%nMou@k9fOA?N)4|xyXJ4{xAGX}Q)1%Uxd89m&1Vg$ zyZ@(0|6h$?;Rsm(R<8fc>b3~an47oOsN_J@Snm7t;pn@nxn%+7Y&4ojc}lO^8@7<} z!XFeKamek=tJN%Vj6$dom`Fx;_k8FA#C~D2`6GSKZdrm_D?lz)W94e|j{F_NXevow zOknswTK0^xL8W|GYixQ7P_7dUE_YcX9Sp)z%UsKmXQa#3ER`1`=&Ie92U3hTHz2;i ztpTfaBcs@sn)+_bprruryt^+OVMm;gIYXSUaR{nF|75UNb%NSuiNB3k@^YLa{*3sX z%{L=KJf*5eZ~fOoLsC+cR7leA9LOid2n1vy!+?s{>{LzLqnE}@{AykL^_EI#C)yS# zE#Ob9zVyK(>{mILXc(iKFn^s?%>JEI8(EO|F8gc}5)W1y<%D{!QfO z#h`2+@z=BE1{jCj2>dbWskwEqKW1G%Rdgj?*q%ok`gK{9vRVe=Y<;p}W2nMeyOk$({ zn2>}*#H2DzF#OZY07;H(NjgnFtOhB>kcGm%qZ?3hgRw#w;QFvds|o++F|MtZ-AVVT zbdEiZXrsZ5xW9bEAEr zTB{a#K7uyisx&Wp6xc)xYid6<^J~2Mz%nR^2sd0B+BDw&2fMLdQ9VuwZ7;TIyqVl3 z#j8@Uss&*Kl(0xY~lhRp`Jk#-iVq7 zhiYZp1kXEP@UEaUs-0h6ro^-mK*PHwvoI#vNCPL z5EtXF5;_xo$X6q31pr~BF&n#`%h8N>6@RxM0Hc) z*lDNVnx(sP2`i1ggTq4riC=fd=Z$=c#yVa?nFGHq%=Bqt3e3^}ufNlfHu2snVCbm) zo}Y;G6Onbv`XKl~xRH=e6)~0FeyI8$T{@cN=bZ(`)GxRjd($;+3w#@feZ+7oN9@)x zD5)TCZ(Ss{zGKQFpZJ@{RoY7aK=#pZ4^$3YC;NajUPk~c8; zkmw#@z`v+yFP<;IRq&$~^T_hQ0mWrSOh$xiuVjUFEnWzv@fI0Kw_f9VStlc9B87?Q z5^Wrxv0mA#8MY)=;VV3r- zY^84Hk9Ay=dhR`d^-os1N8--^JT3VknBWF{W4H7jqyMgH=T}Qm)y;aerw=i`bS4xY z9txrt8j-0@(pYocHDAHHu|h}%SHOiNPoTj|eeX{77~$tyjv)yDNm^c$CT%&TzKfQ}KCuu5M;4Old@z)wBB+1j1Uzx#ZcgKu4#}wHz2(oh(O2$EHJM>O@ zKMiaLg#_88{1g>};`Zk7^Zy|HeUdwo(#H>8x^%|@33%ze1O+!osckcg1GnB&VRe7Uh3el$N&X`#%q7E zk5Jf;e`-xq?wmjzn~x+v(5T5(UCkYm3=g|;1Zv6}N{gnlMhD8ErJ=WbE+y2WY;zu9 z+E1zJB49rWf-xo-T9`RIafgfsT=@&NZjZiNjdP#H|tlSogD{AQ1lKW zG*9vsJi`f^ou+T6zm>mZfagmwollp5|Lg%ZYp@f<5b0EN!fo!@`Mu29$8^gj-M>S? zM&|c>p}FW4yA5@ng_I>zw&UPZzx3c;mz;S_}cgkLOu`+w(591 zXssBbir?qHTF6012rdszJ=+u=p1wwdQz#oh9=EqjeD!N!xgC@m1SPC^j23y_iz#(t zR`7uM1Y#m~qcIU@EcWymRD@R(EUKdM65P?KjS=gTL4F8JHNiPTB{Bf!1;QATL_a7d8WW^ zT6y+8y#x4#x3B6j&RHIfG>RiaN5K$(CTWmd;oDLXiw}8m5YAlhup!!ir^qDv3-WHS zp!3fe*gdH4@ND1(FhfuL7zPNvG`gzqK@U;;p`Qfn z{a7#84!{Q%-C?^NU{dqr&YQ8xk%)R`#6o7O3@g9v|1%RzRk-(g+LrALxq-N=^_$$~ zm=oh1B`RlX-9rl;qH?o1|4r^CzL%dU8KqV^WpI04qi-4F_SYl`b^+BPBgkq#LcBmf zre(L-0oUoy8x}8G?VDs!+0mSr92-5WlV_b2C|wxgpC_s(>;#SA>g^gsi+vECwL<>f zEVXPnf}082ryO~?v3>ICA5GbVkvEo;+)!C_c2VKIm*4S_=dtw9(TKcMgTL#Cc%L3- zeaxx`TjN@ovJ6Z0BgU*MiY&%>kb)jDG=tvq3AAL`%_PQrcv4`K&FmIuf7y!lHQxNr zJ7w>CKl(Xu_Z!jL4Vp>(PMNLKEa2G5X6{4*?pJ+OB_15F$!yHlSCds5#G7v4D4@)Srl?XR8>{XRt- zn*~3IzysQ5mUvMs7Bq2~7slfMbujJU-EQ{epEeFf;S3a2(q9@w^U&HWB|% zp<@VqB?njor~~nsC=LVgNgdIX5G7M;I*fw-Wv3*mpZc&+N&NNCd+St?5`V_Jw4kQ^ zUp#$xJk@{v?>Tn1lI@(LQrRk-LxfUDC1o6vRCe|}Mn=i1P#K3L$~YpMbBv5^*$$3< z?1SSt$C>whf4_V0U+44hc|6{)_v`h3zMg|s&)shlq&6L_pB%o(wU=?ZX8M&} z=}JgY(zVUctKN2(HneM&NBfJ)Y;FILWGmPf)APN84jjERnGjCkb^hJ>JY=QS29R6v zFgdP(^FfXrKg7ahM)PpotbxZv@`K9jQ)V}x44vfoc_zdxRb|5wl+`3Rr#kveQoZ~7 z3#hf(JljN#;8>)`Fzs1xtD!$P!j|f8ncOT|ekEUfAVXHP=v--PAN$Mqde0=!mS#b; z&l=co;2sb7x-%rq(4-6Q%fqBMvzH@)=zf&zzc>%LqR8|?qI)_r{XV2^2e!VccqD=xczwx|$RdZ%_36PZaDzM&t0+cct{EkA~p?u)&JX3im!z(*n%TmLWeYaQU77 zBS9B)7*A=Xn13A_IQ4+O&?l52Vy5|ftI`Jussq=6Z;Cl&1>DruS%iZOneuJ)fJ5*VO2uZ5BQyIL+;kuGVE_?N0ttL7Dz zBfb3R-lM(s`1vK!?dk2sZ8gbuJ&PV<31Yv=GVyhO2G(tOwT&27pFm5D`O7&i19J99 zjN0k4_Ag*2LzIVj7L4kN@<>@?S0n^3YAbO`Il(7_%wjtkGjic9yvy<)1&Ac3j>xP2 zhf7zux`syn1}ig5^0`Ct=PAeNmzat2#9awnb8-N1U32bL3n6l_)|K|77R63^WY18Q z(AW5T$Klfwy{|Gg0}C&5tr(Nkr4Gc5t`OJn)CP zksobg!p=KR19d#$Q#&4mRY);mj1}v%Ll}4nq@i1AD;!Z2hHDYsZNP%e9A-mT(oGjg z`^y7i&0%ddla4(9Q`ru@p(Ik_Uhm&~f`dwdvwa3B3ns3nq1o+{rsnSJKXH|fFVpix ze%-nzpTi}+@NtOyyRN2(p?KCrN%~Ov$p)-c|5dTwH(4TIl}Ff$a<~nASxgk~M0uPm zQ(jQ2)*CZ2KxLROc=$~cVxm@ngXv+lG2L8NbqLOS=S8-dq>Iw^7k{6NY{93Xf71)K za$^h?Mec5CDmj*DC#m!ZsfpM~4$HqT38>P!cX9JMF-<)McpP_$R#~@09MrovA#EIDc^?ztt(x*K2Ye@0Z$`3&>=> z`)+J)lTz1$>O1X?=TN?YY7TMp-RDmb{l)hO1`7206qDn@j-s!A@yLJQB9 z8q`=}#4%0O{L^zgxPj;`o7X`Ruy+RF=xgxF*{UD4#q4!iZFrGc#MYuHu&0K6e1G%0 zpt8sEZsSA;UQzTCvqU}L3_&2_&v%;t|8k9a5~wS3*^}b>7YtDTS0@GP1#Gg3E zIZ;w^`kceq?Pm^`0kn-`I4HagCiP<|396Kl7!i;4i-;1vd(Pm$${*{L;aKNVy&NhN zm!t_aUc^Q&o39ooXz^o0>EDg{c!dpJIShFgY_(3ORqlN0;31Xl1AY%1N{G@n3TiZN zwZQ@3Ee7RC9^W6^9wmlLiv^^;lF&qTT0ylQ`zd;CIF zuMo=S97JF6uISDv?|Iz@w^ZsH4K3b<-BEPk* z(!fx{>?~#7)HOY2u#i~FTFZWAlmrnDzoZ_w&O>>-)jI|pWAFNus2B;gaw|Bz?7U}*rSL^IS-MI?I+X6^dX7c&ln~zMr<@)0+HY7_MNdVsH&IBjtf%S7KGnS_P7&ge%&r znr}S~l>RaAVNML^Lu^qs`i`;k@;sIM*9Ts0s@Yl17P~9*56AHo4*{BAh2Dl8tG0Hy zKNE!q^m!s{)sO04V}J0NH3#Uxqa(jD2K7b1j&1>pEm)EP7X?zKIdp$> z{1}V7tk1Ad5z`V)vMvEzj=>-VXi8{uw;)KbU*3f|jVbBxPb2%zjChU3+{${t_Vw8# zTqLn6h%LR|vp#w4Fte`NRr5m#>Y!;1y=(tQ_M^B$?H^h!BUFD6{fA@7YDN(e zJA<D2ab~fFi9OcAj52_|I;ao!ha}+ zXhI6);Nok~lGFN)#{6Bk)AD|a-urvz`t=4;IR3eaT|PUYWM9XcPrXa`a!(BCW2gW8 zeYRMir%$yqAB+a8w2Gd29Gwi(<~Eq1o-c5@3*f)~#k9;I%ey3htYpbSKP>t2d8_po z0}F$XM4-W8!nZ|`c97(whFZ%8yN0`-WbmiFsgTLslM#a+KTctiRTsRRUk8qGdqgW; z%zw@rTw>x9x%=V$y?;ox_C0H*hTm4S$_f?=Xmm_ zZt{%c^qKpuk8@t{_V}_V8H=o@j6f56^_H^v%6z9OoL}zD?BC*# zs#Uph0l*Tq9*T8=+!xEu+P@&^Fd8R!R>4b5=I5{0t$!M0-eOw`ATgI~aD#X84_iGW z*uJA@-N7G;kNxGXnP08hv-u@9J|E+*MW*~Ds|=(E1R3ghNYz-&hm>qJes3XU?&$xV zt-H(DrdN41#I_}oUoa2KH3Uz7E+lg#I_7m}!H!&~sE3nL zHeqL~ZdQ_ybevXqh;6-|8V1B|9-p;7C};R)h$fW|_l$%WS#v(peb$H^%1goz9i!OQ z>FeghEhM!v`k!p4)iuekEj_?2iCpJIbAd+}GPa0Dmjlkaw=m{g5A*^i0uHWv%)_Jx z!w*LR55cU*UQpT_jrN(;79ka2=;o6#EQE0k4BReO3gGIa=io0H$;B4bK<3LN3xQX6$oMbiSW=Nw8)0&iQmPBSUOkue_v#rjl zQf@G9biF|^|J2*IGsPb6QROBu*@?YDiuddE*99#mAih^|!_8LtFUFs*Y51g-+j9We zmp6Z&Jgx}2D9HKgjm3l5Sk#ujUgTwlb%IKp^b_sJcW!d>8L-+0c4n2o+Z=IP24C>h zAPp(L<6;GR^f!9xDT=m5+kBeR{&AtcU!mY#OVx!xgd{6ri|)szy3FDCYR08g9i&{Q z`6=bh$2eQQVU?Z>-`C%sIwZ>R|8W)weWaNmz^j!$KvePFn}YV1Cx6~S*PU|E<4n_Y z>OP+@F6m_VC$OA1Jz_MGUViX7$pb#He4OP(!$aeeA$0CCBi;l^dfl4 zh?&nC5yh2MHwRK0O+vJGWr5>&-xNEO1jLXNsc&}QfDdCMr5CDPj2O}~qumTK@vq}e z#qcc(>8~>}p;Hl|M05>rx%!UP{!#R9|L6S>`e4{D`+8nT1vsd*vYsx{s_%X2O2&+U zr$?Z3`sB1QEVT@_;XWLJ6W2Vv;>{@*=(YhQx74u^d~)+5&i=P9n|aK8f2|b=#hiFO z#cj6ZzuyrnpsyK*v(LGdJCmn*JpuyMX6+jr{4-LE3!Q9=@8nm^O?F^WGTyf#hTBjr zWDmrj;{1VD|H~AKEj%Tc_xgp?lUbQhB^PeUUb_035gtrc0qP67q^D~SV@?Zw@9#6Z1S@CH`Mx)7 zT6O*OkJJa~40S7$$D7IqCz8b{gg;)d5JR88UuE5(JJ!AWl-7AW+8USb)eLGSl=>Q) z+V|%JMC{H?ISP{`caENkf0DvtpKh}U{ z5Q;*-t^9^rlt!+x{PCS^j#G@0G*51kpT`S`KTW7S3D}AQo-9bR#m}+8g+%0r0C}V~ zpI=R@+WCd1*F{f6nz~<+h|n^o$3kua%YHgvc(vRFEclySrXMneb|4n1m|QaXm^v9S z+mJ4O<-CJ<;fAULX>oI-VM`@F)hsB!v(|^hjxjtjobQ)2h7rl+eU?UO8!<+yxUsDS zX0~KAx|_=~(n7Z4GdJpb!E@!T zv-8x6M!wS>m7GKqw#98} z$KdGkN#wJr70GTCUp5iO+8C+8>%X_6UDkXQXd8yj1|S-nQ4FT;YFW8s>AQQhqvnZH z@2zfQfomF|$TF}f2B0~MJ^uH?wt0<1^Uxdu?7?{c7}HNgna1OXC?Pa^q^G(`|O}MR9AGj!>@7bPU{iGADC7 zSG#U0j-OIwrW1zwRqJ|LP!Fz_ z2wXj}^i4_tNwrQ?y?Jx{t zJkd9Ccy4+CQ*#XK1e)5nrqRx;+ezVE*G$WBS~vL%W{j#$aN&Qx~?!7qNlJmqj?$;KO3)dl05 zwK)q~Rvv3e^%+RCG~V91VLVD@@2cxv9b$qocO&Fi!ykoI)ZTUM$ia#L6j(RN;ZXjL zmzuw$l0n8nLrAtH$%@zx)B(u0VfV|TK0Jb7Zm4x86(wZj6@I$a)pW664#HUs!zss? z%ybS+5}l~MKri^QH$>04t4cjov!3ooWTh>zN6DuE9DT(-!uQ>M$f(`!8Dd_1XEGu_ z!;Y+VxZ$?gkE6d3=tGUi5(_IsmYRGvQM3+FE8~FxFwDSjlwkC6hb&5$7^G^zxPOaf z@ArelK@$){(ITz4T!Z&aUg)P+%q|5uq?)JQ`W4*ld9?g8fFSj!y0*v^Vh0&abcs<<@a5IB z!hs@K)<27$$(T|8%X}2=Heo&925;-m!`xFEHgQVn@n|0};w-~+4XJwh>s|(fw|YAwNKNdSck4o5@zK=uGiJEW=g|{DiZCYX%}g&0Mmp55E4n7Bg4J_8E8F zzBI<{`s+an9*(4AFo$;F^F$K}b@+sB*wUl=?JH2$O;{RiqZqRkp48zdKZN9+idB7M zqs;k=X-{qN&ZsdfZS*eO3%|CNGr*RFRH${sf9Z>f71jGF>EtZXI&~p@wcqLj7UK}c zu8GefSMeFj0g$T}(OgG$|-puHT_keh6z2m>dXrE3t z3(L9XqXs6F*sOg%`9PrJ@MT%%bve7nrh~)jK|%!g8QbsD8tx>^<8*ULdC<@Ao)c3^u?RQ*I=O0gsPzeU zA@H~-6jk0l^UvrYL#NAcPyD zJ{20t!B5+%>zE0P6tnRPKJ9U!K1vIoruNFp4sSWHUND72BebN*8SwawErfV2Mvp*& zvNTgKN|Bo&{H2H%mqc9%9xKpFmZP6!aAA-m|MT z+r|e47-%*v71SJeBHETj^yv$)nj$y-nfJ&#Ef?3(Yq!fm-W71d(@mXMYwFs2?QjxZ zJoEHTU>>s-il~PQ&eK+9eMpQwh;+)`h0osjeUQY_f*={E7P@<^j{x&7zalu$G{ZaQ zI)1TdqiA7z3NX;bJi*3xHbT;0gMcY7rr@s6AL(Vx$a#8r@M6v<`Bg?xd}h0e-E<3O z6q_WJd>KKFsR6_KRJ!)Q&?y^(*{7HghN9}lTRRrKBiLGV?DK^kkE}tbaGjam+C4do zoKG!TSU6aBhtu}smEwD0%+$b?^ox$~s>{6hzp|#xyJ7aFI^Dk2Iq6{W4MP#T&E9W@ z0(YO4N$Uji{_j3y?6CjJQ2U#1xB^_EaacxwCv*P%@_Ud=8mv&Lz1+-Lf(6GW92&e? z_nK2+%z+IdZ3zUe!PY9;(!VM8OJ zup#CT=6wvbo2%MgAi|^#}U5r!k=i++b ze!z8hssoc7G`qVwg`JE=un6yWJl_>axg;jXumXG%c<5T4J5Q@W;v0W-VtfW245M(SV z)7Al>J1bonN0FLG#jv>!YyjZ|2DS@3CWiLt#*p3VMAVgYk#q<>tn#m2z9=-m)LxA{W}O={<|&-OB0I!fJ$G;W$VT&1y#JmE-(Qx&9WBxq}avM%pQN9L`f z)qD_*;>n(L)K{`t4_NsCjWL3URwkf}2_dx`tBgaOK#1ShLdGid818pFFLyg~CefMO zGtu#lVn!}J>IzOACaFb+(L`B|-O52Q78^!2jJuezIAlO{K`^6%8o~Uu(jj6R{kQt; z8hSV89%E5CDk?nJ=XaB>aU%xE>T!pSl;~O45(>y!)=o26aDcKE{ZY@VH}m|YCL`WQ z;1^NU>010p0eSpNxo?0K0*82SgVuUI9Zbtq>jr)uhyyzAPw>&e*YmUo)SgIeUbnqa zrgr>6!ODRBfXm4EWx2%jy0489+943mimmX?t4RA1vFQZ8;x0h*R+YQYe6Ke@DNHf6 zHDU!r)0%QJpb>DbYgp8YEoeB`0)`P{8@A={T%9mK=YmNX*YV!u{M#$IQ@2m>Ca}_7 zZ7H9@(uMX~C-)mm7jMG^Dp0R9>pmAwi+@D4V0S8CZ4rzfNn%1zs)t<+K7`?M?VAw@ z@q^fm4Clp;r3&WVQ!5#r7Xea7k}odsJv%nko$p-W6VOcbtRSwst{5xM-S* zz^TbF!DB8T_meoWy>@dwD->c#$M@DtYMxuvpv%i>E;qX#p>-&QUt!)?qpW#`!~q|< zt(!6*8U#@yBX3W(_qNm-)I~~6FqWdvvP2Mei0w-$+0OVrXhO0wge4eV>aR<9!h zK>tW3tR-tkp`Ju7G!(e88}UTec0a;$F4Ah|g$FGf-$uuUCqKR9CMzk0t{V=};rY>-v ztpu@2WY?HomZ3+uC+XZaC(o+C*>cdxZp#I*lKQ<94HkKC7!FhA>%*yBA` zFbP2I@}`g}-|@o0 z*QvX8N577aRJJN~ypw8U3CR-iZ}oOdJOt{bc3591)2C6Ut2|fv&CXYaglDMh9S*3H zsfW25&vRG%*FQkQMWyJQE-qIC;o-gqypH&ENYuC-JZ^XIat^hii8FEV1%CuV$7lOX z-$D^oA~m^@3a4F?I{v4@p#nRQgF=i0!1N_qR$<728;nm*i+m_)$@fCs$$QqL(#dye zuW{G8o;AVc@`0|;YXQFlTcks2$Om$>EdR!>(58iWu=gTzqN8&BWB~HEpU_&l z|D7hN{xxIb;tY4${^v#FEWf0lAmlh3%o)1hnRidtUvKz3xS2~HMLM;7MH$JPoqFW7 zOQ=gdQ#d7n$dRb^frgBFR)(VQ_>fP*fz9-nwzG$qBlsitq=r8Sv`Qkx7qy@`2!cT< zWIh?bCPakiDIO7^&1CJ?_wk*RA@18osDpb(R~6y=%?nxyz%WKgWpq$qFg~}1FNiP% zW&I({+*e&04$<|zrcPAII|_bydTKp75IR5paHD*{J5Q`|2y^%a6qD*lEFjXx1Ro%e zA7Wk;AQWAHOoT)Vb#tg~O;!%zsL7s$cGP>v?x=EIYM=76)R}N3=}fp2)czSlZ}&N5 zfrssiCY8+w$hRV>it8y54oTRtN*RpY=d*o{29vZ82!Y`hCLsYg6Ggx65y#RaBlYF5 zaH1cKxKr%3gQMNir1C(t!g0Ls8RxVELP=i#v6FYI&ymv>y;@wgOj*^&79bphOJ@ZE>BPVZ%Tmz-lIGE}PC+s@Oc*Uz-;tRT`3}cN`bnz{Lf?K_iuj9iS*E{C%dxCT{#rBZCoG;77c$>Z9i9um6s2RuTj`CuL_ zvDsHi*<@^^B-G}c3FCVQC`Mhv#e=r*0yL#E-Tgx=5sl78%kUE+?!*et17+9(jvw7F z(At!+U`h{wA~=!P0Ea?(skO}qsD%=ed%}^^#mE&neFQLfoLZNHA?;5R4XAIN?T8;3 z3&jEH-HR~t@SfLlxn4=|kX`&%b{+C%VrcPJMa2}Boy+HFT2WCbtyz0P8x zz2vp7G3ZiIY!FBi0F=g=mZTpR;65b(Qv0JD?iRoorF4{T$5yEC(c@jDpJgc@(|r2Z z;LOyN)Z>i(C=B;JKmw5z|?`|-gd#fbbmqEY* z=EJU(&4#zwviiR|B|@Czm4t?J?G0}ZOGyeu@TfD^BW7`H1sqS1j7kndr359cFA%jiDL#Gr*9LY5O=$C7YLn0I6+m?Zek zy5nevhFR=L04^$&D(8n4fMtpEEQfo`2B~`N{^PDjD zpvR9wXbzSCQnRjPOI9A&bOR8Y9Kogn&6Gvd(ICu61o{4b^$fkyOh%d~AB`8uc?H@-uWQ zrQy|T|ItpO=Tdb;gI?yeoIys!kYLs#$a|z2-kM$@qip@D+Q?%;zf0Z6c>8$%LTK@O zIx0I(Y8zh7enHE7m$i>vWuRCKN53&dPe%>Tf*T_0&;o&K31(og7aC4pa!)X-&+XNf zeRFBH=mDt^^{X22y|3SFbXJeCeW`X+8>Fm|!XgQ4<*ns_JiF;G7Y`l3LHiIia9t-i zEV#cqnHL#S@Hg;xzuWo!Cf_)!gO>1xrNI1Vt`Z(vm% zE6QEMy=i&+(P$%(>r>Kd>P|vR5QWPpi;Joj_2Q$4Vp9EiorK)Ae-dN&O;Se>!#CC> zy%Rm}7nj)1|G8~S8IT8vaT^n*L{z-{fVScB$1@*>_;Eu%Y>g~KznoGOuvMh_TZ~xB zh;lMRdVdxYtl@DKbu+ZLYhV%({`al^L7eJb9|S)E{CW?Vu1ph%R2y@xG0sO|B0fyK z$4HS&y;G0p{YHIUcd{|kg$rT1k=-r7=5Bp1j@(V)7EX zx4wYt6;nV!@&wVDwmMpQ-0o*!sfX@30Jj#vLnRe7-`9YvN&mDLY96+e-N3Iiz@ds# zp`$IV_4@ezAwc=zGJd2x3VB2VpeN}G5cX2Ujv@7)B@xifIZLzcC`Cy1A*mM?c7w0A zicUH$4>7paDGUsU1_c|o2b_cglOz#wot_%+($^7wB@9Oo=Rb@1;CfljwfxQ8{># zJyemR3M;mg@DAW7SK){1s&jRd3J<0jI)u}8lB@#p^1Nn8%L*?zM0K>#*`5o5Yi?po zxk){Xw3De>bEIvLoCu`o^FK#>U{=R?tFY5VBS%uzXk=@|C-@>V*ox9-_(c}`n>Q5S zJo9pSho%4i&k4shP~@5sm^@sW_|}l@*ohee)AtgFdSMz&f-6&?rq7@<`B3*%6fWLm z(HprdJSXz`^2?Q;w`&Eu==>|%R>tZ4?8jjrPU?;XRW|1HpQ&6QyeWR#Rsw7o#hvr~ z^*K%3iU+B7W?}s1XKyzZa6h>;IL<3MLfsVb=Q(-qJ)AoR?=ws3bu>Hi`FAOl>rCAH zSggvU?K46IB*!(YuP>c}UkShgd4rKl8R4`o-1u{Ux|?4i%PZR!g!9=nBdp1>zhp2L zZ2!)%*2O<`1IMn}dyLI~2<4ERv=@2n5VGs4*&9`FNjbm-&vA`Xgn9d#N|iY=eh=Zn zfu#CKBA?ItNO8R9_%WHB?G>~otumHWcLy30IQu<Z)G0@Zg<=>`oTLPeQPPhCxMn2oWf65-3QpR;EA&DgSxivSIRv9xDq7e!Z+YDNlhCnU{RMsE=be79vheOa1*!moVB`Lc?Qs&R`^W(DoKNPnOBch#l28eusdv&Bc z4*!-MoJ$h0&1Y8ab6|syXMLol=o#?nWCVnJ?jDV313lV=;pCiF2hkMYYhD}3dgdg3 z2qEJ-x}bWxt%l)SrOrFa#KYxnvakKoGOmY{9tmRvLpbuHJ9jkN3*d~u&Iugz6)ide z5;l<}ecO$0Q3ZcjVJ7s91BoC#BC-36q}Xv7sk$$fjj+yAI6?UV9)Fr%Au-r*lX>vj6y!1h>{6b|lBzTf~O!eRI>1Nz=_!r9Lz%Hb1 zkbVM^WO9J1xxEo3Lp-8p+-F7>mKm3(PxOqD(%J~xWcz<7#>6o)S8vuP7;sOuM!N~v z=3a~DD{#GO(`fu?5_Q@fdGL@qicrw1#|jXL_OZLo_}W%-SKxDo0fP3EWw{N< zf8qLSpL5gEb=JGw@|IGOV}lT4S(@x9f>sW@5+1(ljpU!eJyG#;OUup*6(Rh&!W?nS zvS4eTKI_?*KUQs8KwoHty0DTtM%~DWkrf+hxe!L4j1b@I=uU3( z2DOQsek1DJ;vf`7>LiFdk>(YVcweJc!(fjd88ml#c<$imVh+9_$Gt+V)*GBGXRk|H z@~P0uY8%<*J!GG_a)0v3&6cqzrqWuOgScV^)upwk)ix2vXHJGk>U59^#Ad!hDh)0r z!aO|6k)k4yV4w&Tiy!hHKW_JRQsgY6#4YN**wY+l6EW8yno8S#-8-3Av;B)SlK%KP zgwrd>;GGB&PP0AezO?@J)Y}bN1=EdZwztQLNpaGs%6^l-SCq`elrs;?*VO8g-3nb^ zz&=WgKaGygf$a_nz(;4*H?DoEzzr2;$Kqa9Z2QoUH+wT{NjuA{2v@hQFYU)h?s_>* zCq(MzO8A6(mwfSGvg1)!lk|phkPQO4F~1-BV7^yTgCBNEbxeL}V}-AyV#{ToiMD)w zzTq#hz?jhKVj?0Quw~V$m1C?o(wA+A>MwwwoPPxdFp8}CnA_GDg$e8K;U*+4mi4mE zQbe>74YLvkJ+)9-zaq%GXY(bJpIMCO8Q1WrB8EO{H9j~!VbqoODHxlbfV#iwVU}WS zyRfPC=wrLir?QrvTTyi_6(O)ybxGL<4<_Fy_J}nviPY^*7YZv*pK)}fnC`h^g}hyf zQq&xDOb%=e^U|DpO{+oIJqNVdDSR2INs71HclRg0cz-8q zr_+l8xzuMmi4OUjXPt5Qte$*(_Dz97)m5&uF=Gb`8i_yMlG7d?*64YUY_sKkyBi&N zEnngG?MIJ)%V@mH}=& zI1u0nbEKoar3bY!_0u90NBR)m1Ay(O z4?JAxWo)J{RM8*2{By=}l%@e=NkI8XrO?~57N=0uSs%~kUCHk9e_?i$!KFl&hBkun zoBNn%?Ak)1FHi91C`R|&vo!s&YR)xN{UdB8x#v_ciMb`|qo<;Hy7j4;w%&a?j%pLL z6xLyEIrc^pFf;Y;7Vk;}j7!&zVuL&wSXA(zNM~SiZ6geP_u?>)x=|USLtkKjAv_h1 zb{Mw>vveB2dx$#gD$HXNRK6>;T?W zMIa#H_iMrIqn#0>*`>R-HanYpH0SoQ!PPO8nJi1&X&wNccm$HH?k=a7)KgN_gou2FLlQ7z3 z(CIsYwJnJo|PlI$nVoWk_sz2EM!8lgVxU&+Z@+VB+jKkiv&E1 zrR(`LXF@gXE)T6L;=2PWK;k{e9F;niRr|MfdYG4G`{C^_Hk%h+JS}qKozI%i=JENW z2a*GjNc7R2Tpi|a(!*|f0;VxJltlI7?_2wlyG?GzA67N5gk>_G+Is|u=wL8A|E~(= zKyE$X>&NyBNROs^d*t*K;ulkl@37vl%Lf2|*6w??O9KDuUwP?kBil5uNqlYa3h2%K z@Qg{U5_)s47M!UqVz3kbR46an<%auR>azg2acg5L@QCHL88j?DCsnLD0Eqbegh{U1 z`^g)*MJo#^i!cU&+QU$>P_D(=r^Qd?8xEIbRWO@j54#35klN(zUiE(}Ce8dp%j=7> zcVOp=MHXZnEjk4~0OPJ%knuJr{VtI4*KNt*O*a5-k&=MTe0i)&8alb~s%O)&j zz$4It5rf*aF7%?Uz>g4lVh1$*Dai$Z$#9p{fNFe`T+pJdP8F#BYaYu5HhU}%PSV6| zL!Q2#W|`2SP~7GT&omD=I2VV(L>OE`RDE=$!)G&#(Z#HxuxG2mzyso()QoT9EnM}k zSHx+Lst8)kuC10_11gdPXNZ@fu!v zseTJ{XuT|=V-1sM zs(FZO;T#NKy5h4|2%BOhj8@hYw3!2{-QsZAJTN$z&-%wsV)uy-zv*_SNx_bT+e9~h zXlOj0OXn_ARsB+QhX3`dV#{&22Wqa;!>DDO(;qoV6uA7&d1{W6)l;gI=x4 zc&5}F&fim=>Dkf$1f#@yd7C&9xJ~6X!ZesYM-Bm85Pgt~^<67Z$98bp_X`<@Cgy zQ7O0PEV|xdv+$v(?=rkTL;2#3pFqpSpwp&>dtU{)TLk!Qg>30xGJB3i_;M&F`SrIA zK4%)-h`RJt7H3p->q8ra86Ky?_49_XZAg@i(_|kg%micmar>$@J^;}o`pu7z+9DhG zrnZtLX`|rYmj})TKnscMn+U3XcwEs9@?=HA%^~_h>PGeZRTF`~litk|3S{KBb&M_^ zOq156j^lU*bF0zKYihPQL(SOd-snEmp@l7KtIM}9aPa7h{6c@WS8T;M$%AbSgaM}N zmPO!yfIgu#JrGFx+GOiYEC%F}={em5Vv-W%ahrXb_YX86%?G78(CA@Wzf4}3CSx89 zn!jS8od3~+et>Bu)Xn}K!4~pOIshfTkuHg^vT7eQeoeNU2n=cTX<@%IF{;J;0&AM@ z9Tt3oaEg1qFuH)#{@$C#8Lq7pgVb`NZ+`d5PW``RjgTs14t5+ep98I!p`WkLzf%sl z{v7shS(5kt*07AH+rUsSD4__h@ocRL5E}5dD!n%?6XCxysEpg(WERuSCVe56_GY%% zv4g-B(efy8Po&zb5SiCQLXYJ&O$J!|`P8H|n(p*@ozTr1vbHc+wAJIRvl}A21vkAo zqHS(oCanjJOern9^R?I=4FIVVEYTA&z?*iHuBD+n59EX9xJ@w(o?+TQ`DJ4N>25$p z^M8~&v!Yu0-JiM%`@!0YmC6~7f;Grrzywlaw4X2im_Gxc7jW}M6WRb8G#6k#^xH90 zfDue{M;*D}QTgK&k6#VztMxf8*odxvH_Z{5*S8)EIhV0jD5=fArRt-#3-QGV5l?n$Rvt! z>5z||2WQM+^wgZeOD6bRD~yff@xz|L>&4sE&4+F&IJxdqE3>#>C>35~*qhO!+E!<& zT?E@eo2J%)yaeppW3P^C;PCV_$Ejbp|A7UxjkDsonB~+N=5Uxk^SDnW!w0s6`=sSd z*$Wb8)ET*N;{s;!Io)_3B0FkNIXe7uM&ncf)0a!&cFA|-GDYN^hKU3)s9g1liM2Z+iANS zo-wPFY*0h}D0C_c0{Ps2$IYZ5=Hf7~z55w9uoc%vKx@kp#@^qR_Q+6J%ZIbtXN2-S z<=pAHfNoDCyLajM!qjuQ_h)8GzZL-F)d8n9vl2VL#fg^Co=36jSuJt-y?8un$G6>f zU+T>uEWY%w=H>N<5ufiGT#SZygBR(8{!#%G0De0u(EzQ4zu|2voM?Fr4Xg-QoX`UtA_LQcXIMkLS%x zaA$sFtzYSoB9{Zq>qfq^xx7L6?;nzbFZF-NbSNDLJpNUb!KkWQTNxd=(LbapQ3A(! zFV0A`mR2yiZWSP9g+a$hKaw8m4u;s5m*=AYGkHjQpqpo_%Rngb&sXp>UG%a()`sm~ zV_4~N4rdwKiWm)-8@vX5a}~^mabfNVYiA7r7#_6sow|(jYsA7x`Io79L5S){26IuX ze^VBlKN;{jiRCFeQ&HPCa95oYs>35v&wPy@jt(II)T(LD4yZT!?alTPv$cYIo%Zvi z^`^f!d1=u5VSQaZ9sLtxi-A)EEFWBb?o*q_r_uwz#ID;HH_VCE{+s3JQq+MQ76=Rs zf}2Sz;YYEqek*FhyPYcOqN~5Vnmh&7+J!}MH#lFcN*L&ZUJJ12BnYsCg z>rh85k5$V~=G(_kF_#t1FG9AH)rU{_&j;W8rf6?nk}5j<^AcB0g{Xnc0MtQf!Zeps zxA&v9=Ag~=62*5x(n4I}E?=mNMytwe5{+f4@*ql!oZQb$; zWi$Qn4w_9r$v`$MiNLnS&302lJRICrQ9Z zZ3LTAG>NMo9$vikwGw@SiKecGb*6!1KwiK!A;^3S35zTyU>=@T&%T;5QxWVenMy3A zed?|F$ed@SA_luFq{d{04)Wvgzf5>s8$nXrb2R^|fc>3|AIBc(W{Bl7FwAY z_YDtX&Vb@V1M?JTwI%J;O1g`mfd)q6bLzLt7aGiJKf^!d$VLob_X5_vsra4Vh+ajDaupPLBHIaeJO$XK5e`;d&9!m3XrW_qVRyhPK z{U55nGOp?Wi+7`?k*-l9APv&pD2kNS=uo6{G>k@&l2p2+J4Sa&gY@VY7~Og2?|<)u z`)rT*d7bk;=e)~IxbzX?V{JCu2;5ahfjiD7f^)^Z0 z_%g~W<8ytI2>}+B6oCZmIW)5Y<74Sg_fcG()-*AsQ#Z3Cb=JK(35M8&^o9;_BOCku zQ*Bqz^vn^YJ;yBJ5s4tC&w8C5?j(pF`ZnDnZb2~+{y`OW;Vg?R^0VfRd5k| zg$*M9PE$9Kv&G_XjpD6I0b3#zye#%LB2q^fMn}I^ID%kE_A4~#S7X~~+@uRaguLoE zqVA8NIp;pAn4x^9ev+S%qiaDVO8p+@9eRp;vE_qpJTH0WQ!8uYy2 zmHRKZ_%^#1N6ZmKEF?78_Ri!u3?v@3DkW-Fxf22@nphu!ymV}c0MaJw*dSZ5U9Pz7 zV3W~=vuUAOOn|<|ojGEV7JUXQ&I~9$L^oPbB-r=afJ00g?^*t-TaPiqviM)rXo>p0>u zVX~u}$5o61I#j7^A=zC#)>%m$a73qj8U)lKpq`^XP$GDsZ|U<2O5(L`MTmxSRv-IP zQe}n>n>(br@|+>^DukW9&8Jhen&`Dlcnluu@T+)c>0h7xDCdl0Btg@uBsr&i6=|f5 z(Lxqlbr0FOst+kuzw`e{K+9bXMPKizaG5UZ7WnodWR)H!^ye2dde@9Z-S zhl$EE$iFP~{(}E|!IU}Iy5VWTjb!rMba$t#gWHq#?-M&kQ*B>zpB^`lih`Q5Ucnqc zXo%lOV}+RF2`d`q<$ zyHDZu#3L6$OY%>MPx}^!LN09*;Y7O}(dG7bY!dGFM>HvmcIP+Ml9kl-V;cx09%yy8 ztO_@oAH^S2%>p%CilDZXffVXkbU2b$t17fD{?G*CNch6L~!?xGwAVNc4@XFvA@|q*vUA`<#_!6AkK2z0Lv&sq;hFQ{zW1@_|+8WC;zB4zs{VIx96%Ep}yYF_YW?FV^W`) zr9T*IEO1o{Lk{K+S{v!gDWQl@I8&B_t*3+RmBi^KoVv_E8!qG|r@o zf5D_YN6;>}sPQ>ZfZ=F@s9r_px(m^U8~EQtzol%7Ejy2`I7mo-qwOYf#Ri zr#k-nb#csgjsPj6$Q*6C93B9t)`bW3N|;-asn2HuTQS5GE92|?996>yvxkCZIe|Gx zA+%lnj@e*lGxQyUsA3Fl<$XlSL%8C-tS^YH5;- z8(1(vL4p829LgTh2idH?RRQETzU(tEdFXwQo{_9`L~I2Rf*ToSZ&S2J>IZ_~N%L&s z)q??|HD5GfMFb4rH337$w^Vvk7hv7U5&bNik~wxKUB@aY`m^DWE6IVjCC;8XJ~^R? zy$C@I&e=HIA0a~%oi=vD=p)$6k;Hwy1PgTJ`VFp6UMKGaaBJxzE6_zg*gCl#>v>s$ zwwaSZJopWWMSq0L7?N?CNZ3H@>^A(AOX|_i=%sxOP1Ft-T#MrgqDn-kk`HVQ52{19 zJ8Ij7^t7rm-B43>St(Xt<@lCxuJ7;IIEk!zM=lWU8$BD*B>(>JjQiO1^WU|$&C1-| z{900?@Hp+ib@y)&-93F8QkhJb?M^)6Q~sJ`InqPD4^#3OsGOg~=Kjy%JGmO z-%77&8>@(3`ZYEMxy)GV%b?cv3PMh7HR2(R63`jb*9g+ew^8E=H6U(gLELQ>YV886 z^!cEez`O6_M-3bGYeq_kAoQ%=ADQ6ARc8XpB8H^af?u@w9G98o&%YR&xbHO4MZ`ZBgX~=q6mdKGBYS*iEpm-`fc0mHHX{fmov9_8T+1BMFw9| zeranf{u4r8?+DC|BD~9rQNwSO`BG7AQjKQeLB5p6gR*=q{h<0T(Ub906ri3}mW+Rw zr%yDQ4Nzt(+DXzh6D9e(R-G^_Qd;L%ncU>Bz6sq|I<}_hi8li=?_5_~4gjm$U#qcD zc}dV#QxkK?Qa={9>%5X0Q7{i%;-Uh0QCeLc%?b&bTB3Kmr~CV{>#p3|8~oCytq(jL zf_lGli+!<^=|X3y_ggdWpCO=9Rt1MP{&~va1ah`Ap|wyJCFk8=+l7otk=y;Fp757m zp=e)$DJO&~L_Bo4`>Yg-xxFP57m6Un45PEj7c!$~|2QKDW>GbDK}h$kf0-5ONW&d& zB*QTv;^V ziRtDOexEU}ShY4rxvXCZ1S_Dkn#am|Zqi+Dj4C8%sq?bms_gc# z&Mi9{M*G{X8|~BX+8f2U2jRP&Xpv)5SDxOnT%Qxh66XiK#V#v_8GWl1v`i7OMjy?h zv$B!sPzC!EiQSQr6W|`hTDebCy@h3Bp=0fmKNiq{WN&-)`SHdJ)Gt z?B28_YV2TF#Ich#rcev34|d4cgE+M397CECpX_sUk}pz&aE}|KJWmu_2?Ou2pH6&{ zzG*ihM~M9NB#CA?L>H3R?YCKzm}K|WuZ>Y9c{&~L*M7TG23y8%o?bNQLYg5gBV7a? zeYu|d>ZMx9U+0%tKKMzILzj@YTK}ftqB6IqAOavpj#x42K}l!1)fW;i(y5@e_#$~O zQ2`kIm=uE;i?_zYj<`;5^3Z zw^#Byf%TDS{M-s`C_fB=n`fLo`b>UBIG?l$z=j=lkr^H}e)dJSzGG(=Bn5 z1C*w~=jdENj9o@PI&MVGimi%%QhvRJDccdy+KLY)VJf61ZPl?;PT_gSF4td6@lrTw-On96b>sKF7DoA@ ze3rzxHnHnewzQR7NM>dgZLb6@QOvj^y9N_6lvDfQ7V7)G9{r_{h~K`O@uh)<_d_Eo z(Tb7$YdTITSPFfjDC@dYTVvxhrD&Q^q_w|0(k5eLeg|&g3TaFDM_R7hqBbW4qel1g?>Emx*AB>Qpq+Jz6?-8I4LA*HZ*Atx%3Zr9=YI~Oj0Asok~5jt<+u=hmuW51(U z1)_mYzaC&I<_E{lf%QB{!iGR~e>Tv$LYagc5IfsHkop4Sp>&mhCm@>rp06w&ge2&~ zM$1uGg%N2Os3Lv7xa04I`2%GIJ+)71P3MCbbwx-f2!H5d%hl0zR)HR6(b+fkzU};E z_c#?4y+#MtvAx0f#5jGs3d*>hI4gvv>OJ+r#_s%Qrv4s6B|Lz|Taq-38b=ZfaB{F9{R& zQua+~D0DfNp7npmxPH@HW2$Cya{2-vb|d($%=!RJ0ye?#Mb){0%xatQ>V$rZvCiO> zFVZ0U<7B2Y9m0EgT;)Smmj5XW63e$A{nmTv58-|8hB1J*(fcF9qEue`{Y=Ggz0I{2 z@q_!_{&-`GpwXE3b%(!WyF`o|-jWkHJAdnPEwLXO2RR)tMDaNjXW3*nu_g;OiJ)u* zXY=C?oA^||9h@qTFL|GEdcXY%6S;}h8xBdsw+&wKG@}#ikNe_VoHbTQ`n@~T8~Hv{ za5mmzPo3FT?^NERFF;tqw6gE4Sro)2@#G^gCWWL}%kA&)ce{73L+QT8f*T4n#HRRo z>TwI}delrP8^o01-(jy|TcUEU#4M@@yOc?3aZAsYn2#>+UC6p4MWm~6WixPm4_z|h z>R!nG3I3sGlw5eJoFc1!ArKw_Zipj zcia%Qkg2Q=fcVl=IxmB-$`}ZnOWdK?#tXJyMPC;~ee3fm0zD^y0*t=C?D$9~?cpVL z3G{sVDZ8k6|G5MRL8KE`vy>id=qBzg_^}S{3;)@N8(iL^b3PrZ(j`Fr*y|#&6$K)E z_h-kb6rI#>Q6ObpOM%OhOElufWD;$qAjy^BzePc%@7*77P>7J^(`A7)|F&x3aX74o59MD25`OD- z=<_K$&G)K#r4^xEZ8;G+Bz-0`VNlB>S1p27H+@;1_8F&oB;cdxCo!|k`mBP@)+HZ` zZSIm4)lTNS*z8kCCV0jniBndX)r^`lbk;Y__jZlIzu{)sFP&Oq7E||N7I7$FIn5Y~ z;Mgmy%Y1;I&EfT|5OBiN0|TB^84<~xT&8qKg4XWyE-lxeo6n9QOcRtD#?})%LlB?2 zH&SzdyJ~}qEpb$kd}a6L?W2-LbnAn&Ajv1Bjqj8UVW$6~X^nH+F98S_;lshGySNJLhq56(Ns2)owit-MbW&=kf*_5X43wH}xG0(v=Vr?Kv z-HM83=Vg$Po9oH?n1$)^k;SAqZ zTc`45TkHW!;0K}a6=#HR#qX?N)qOs>8c}?D@NA&d{1-nI`Of9Da1904{Uy={t&(7-OK*MZ zB=94IyaM(cJZi_23y;>Zb`{dzd@aIaLJUjg3@4INNPubjP}>`>06HXzoJtMHqsnn_=Z6r~k3;_G8O*L!yY;CE^pclrzgj1=*4#e!&Y%z zf;a2)z2CJ@btpmsnmizwZn-9fZ85a8!GON9qO(Qpc8smM~-V?*2o{ScYvWrCo z#T`~4X))10Jsch{Gd^Hvj^1I?aLr-sNe4>21VaxxxY8CGOL!&MWyD{bP&Z)dRH`^J zWB+V5`#fKqxrj$TfonvRmqRP6%CojqWiTWH(a?a>WI|>d6n}!P`0_}F4@{$Q@oTBj zJr2EPJWFsedd$P^PoUSZgFbp3bXVYjV~jyx;TRX;LTLY^j9%Q`zHMP zlCaY8l9x|qe3y*XHAP;GX#1BW6UbXb{f!ltqqhn5(tl?J_v`d0;6szMfCXa*;Efa5 zlWO}HDdrH^y6z3$F7tc#w=Ec}%Ne(N94?moe#q6VcLRyZN_oBh-#63i@y5()l{|lw z><~%3>T$GGrO~^}Ch)bo#I%0|rkNu6SUaS8kW_hBy;>KX=e8`2+F3)8I%27+GMCsO za(NySLyV8Y&#T=aSCG?{wx(;z~-8Zbc z@-X0rJIS=6j?OH`BX@x0?;!vCBIQ2C=h%I3-Z(_jz3F@>_Ld0n30n8oQv%&cq<1{y zUN`S(aqKNa#D~XO6e4_-8$O@Sznea1CKReio_QDoRK1rQr1ED_Sag;`R4GQ`nC#51 z4na#tIXr%p#y0oQ8*hxv=0eM-4Nz|__7boC)}d*=eIpG{keHDRwQ^p&*5FRAAC(TB zF4g#5;gxmsO05qcn2=hP{;dTDzUwF4b=KaQ7uRv}CQ6;HY-65mmV z+1XIKN;_(evq^BuE0L5!Uon^L5yMk;Z!B7=g!|3XKpF8@43&rznNmz_<#QO`kJDe# z0PgLQm6uYl;#*J3XTJ@W+?FV@n4*I+FS!& zPxbB^S507Msgz_~VuykK#06_!5v>MNmk-rm&I=EKkfDS4Mkvhc^Br1`v)Hk&* z*E%UIUAUImfHI~!IWOrD>uz&k7dC0F4{9kOO`eOr@~r(mDWS!cAzCTwL!i-{XDqMo z8FQ!XCjxBo@bQf2aB@!jA}&a6l|dOd^%O@oH~PsZs+jd#Ed~iK9i3ihqMl*j)Hm~G zmrHKB*8y^`%g<1|XPIoDo;ZbqBc|7hYB6g{lzn*;(nVA?#N`wJA zbhO|FL<;PN`ajxcR0_Feg8M;9aSkXoVL845z#tjB+Gzg2?whah%2x&y!0!Sct6vrr zJM4-AT+_2l7h^XtD?ugJ&F2$VA+|wA?1zbjXRc$|9xq00Y6k}D!o9PCnwqRQ(>TlUZ$9Npi3Ki?uEukX*Mr%83o$h>Ifkq7jA2;1^6-;x2j z#|iHO!c|!@cK7)o$8`{A?HkB_eX2{wJO;*R7jW0mJW}k?Z~sLK9%YwO6$~8>^#xx5XS6@3!FuWsch<=a^jfL^I1_pRlE*{dHBe1=EO? z<)8FsME$0y6EX`i0Vl-3k8tj*3T>l6`CST>Def(_r@Hz|_`w(hHJkmXC<9f+L`mML zT}cXr%Oj)h6^$E$v6iUi2BoIopOou$O*T`Oi!eY+$?Q7v z1g#;lMks|S;{JLebWx})B(M_o#7(S#_WN=c|T-g)BjBegVJD0s7m>sXt& z0xSZZ!uaJR6A24AU-_;Ii@3@q0n)@)0E)a{%KJB8%6!qWJJZ0d_3Rpsd`xnsb*tQc zVj*ngNMg_f5N=}{KVe7f=*bD#b=3O!j~zzB^Xc%E$SD?SQzxSk*}FWtc`LUH9F{jg zwc7cN+1m)2-EU`xAEWJ$V;l3ybdz=bUwR@wXn^W>Q z%!_@N^EI|DKKn6LGqY$0)!Os15iV(bItr|!`yeU$!a_I{c3k6Nq6^xRo@@NvR*JmJ#jk+@$45p zNf+sDA6fFR8b-frEa~oSD&p3S49GJGAn+tOtiZjc4Wy#QW~_Zy+t1faxs2jB#!u9z^Iud zE(jiO-|b)dhhm1bs|7@$0ymW?UYq>Z$7c7hUK0d1?c*$sd7ufHTbvULJkvFzq#DZT zeCv;kju2ljA4BIIjEE zzSKy`{PMuwjK>H&o>rkQ4bPn`M@Kh6u;;ge8>{D$19Vt57Mh0wWJ!h0JTg7K#T zRPD49)@@CNfOJkI52Hjbp{_pY1vPA9_9I3j^X)UdE)^LI7Y0GlgsWt+C(4)#m2s#a zmOC}U?&R}hc9pcFeozDsEWCGiUgj2^%fLH&1LJ`Lme(tahIo0BQBUoL;2aG*E#@}_ zuj(ES{aAJR8A(wwL}CZoxbKIrk1F`VI_fjYElj1;+em4-D+IJEK60-YpS}0U5G`Ck zk$#|48v4ZjKL3&{T5{*;TQ9ofqsV_W2h5Y0zwM9v?QPshooV>7K`kvsEAerqVM;?f z=h{wBhbg;9Gp!TJe#PTnMVEb@&Mq6FV@b^_SiPhA~P}5n8B0{Q~HDe&0Fa>4`$qtMsq>NwK&Ik#=!WM?a z&92E*nZFBIRs!*vFBThC(*;QA;?b)8sU?Xb<9_qP=JQFUZ_Nk6mZBLk92Xnn?J* zG3y-8UPi+aOpVHCmDi?>rRBMHXU4y>pA9R7+x5lms9hKzxh$chnozMFkP+|h^i@*Y zv2BbzpXNWh9v$(lRy7|6E#-};Bu-pCqs|U`3O!j#WaAn=x@eI(9Ztb(Jg{7UF*xXTsWIrUjhekYyK`hWxZYr#j)mObEr{#a)^RO(n|De_W zO9S(L_dGJRX7g-}JNRFGA&$)F8KF>G4Q(#y|4rDHh*$$WL0jR4%8yQ&neA$8A~s@# zkb+8Yu?`DvwUAD9x%4FzBH#*=&U$B3@m;c3Q_KR`ukCw;48eG>2BT9S^G>v_TAXYY z{*&ClWONJYZhg>~?|v{5@_ZvDY;|nVb8)kZDb=vwi;eQ^3MX)8-LLNwk&owV91B@( zOCa#fQGJ>K`Cu_lP;S~A=u2yc z)m*c(*WPl#G$xN&@u&!N)P{)Kel#HKcg#GjO)AU~x8^Ytnhk6@&#b)uIb3Xty4CL( z=|?2xjmoNyfaf`ML7dpc=+UxUa>28$m!Pr|sLPRD4O<{bfJak<9GMMk{s7(rj?*Ze8r^z-QR0}GB}Od}j1T)RDrbU@#Jl*q3~MC; zy{s0V9JVfpulOZIvv{|Ci_p_FCA0-_B57uOUsz~rzRCX#xXzcut?j0mJyDx~;Xv3~S55ywLPZAJjn2Po(o)AsA9haMJ5 zUfW~|_i`?k`s=N-_OaQUKX*lCqoJ0F+KjY}u@6QNf2mdOAlk=R>#F97`7GjbYMISgN?ta>tcvKr6^Ci#9h_a{3n3a{~{JByQL!d5di$f@P53f*y z(=UTs6?ZaJc(E*{&Kf>RahFivCCZ$u-rg8(KD4Dv(l1y`5?&9j;BY>ZUl}??C6B1z z->4C2%X@k=e{i?NVHE4-2%3z!x$}d0p2%|iwh?iQj%t?rfB*~3EOJM{A9UX1-#0R6f)72{WpBQuF(qGAzJk$v22&%+6Jih zRN)lhq{x&ek#jZxjaF1{{Gi9G9%Dztt^j^YzIeG(K5$YN^o9g3ljSarJkFz)+kSh@ zwwCD>&m~>mfLb@8HpQAgf3p;8W9^OLZ#e1O9|3UL&Ix+H@U33WcEzC)M7ZM+c6m-^ z%r*s9egW!Uy^4A@aeCV#&ipvz%qnk=v&yXZn-DW_QW1ojVR`GUZ{8oY0YaN>*n%WN z-X^6#)4lk5Y~tAh4C&uT|Bi~X;CadXwsELqMm?U` zksuFnY}~VZ(QW_AZ*)RIQ#U#PGJ81SenG&*k$taeYe)MW_JO+sB?lG=|IPxhZJh61 zSTJ*byfH|fg^Vbq&qC@Zrv&Q`O3z9%-{<3h7xYGEp+&$P!VU_GrZRdr-n2z>B`C1X zJ*~o~{r8cFRYPUJvRJn}E$y9m5K$Z*; zQcr-`WWeLQaD^pudzkR{hF|cbJ9kY*m_b{dZ9ixO*s{kp9D%x-}i({3biUq#VnuD+0ONx z+XQkdLa7;LZ2Z374tq$6!np7xTI9n`QnnFtY~nM6gPU8=L&7zf=sq8M%r;UpeT?=D z6EB|WD2mGVE~%(IyqJ)@&?%*RJ%n+QdI(ax(7|Q?xIsd5Z`Yuo-FEi=Pv%dB=@p(i zY7@`!?+)+TvLm`F&*$DT`VtjGunj-ll^pdQ-kAArv3qLYTH%$r-G{y5q}p|Np=kbO z+dLA5=kb_N&H&2f{Sg2pg$8Z+>(htU*FJ`Jl4nbO++aV@P~U5u2>N>QewoT07^Xc7 z7+U9SAMd{F361ULz}PPz$4eBoT}=Qvi@b_M%PcZwLae`@KQK1u!L^EYO)gqJFjqYOv{ zK3mMP^T9gs(NLtC?>%J@ZL$A(5s15<$8gB?j2#UvT?nDbv8` z7d>%>J4=7wi}kpvUqUwv*CBV%^IZLzEr^f%GPDQ1~P< zHKW7VOvquVL$>zqb5_jX0`&u}zLKpvT@xDE1!F=V1)fV>s?d-Yp{=5W{}wU~IMv#I zxvY8n)WB>(%UX;on(nXICDuQ(wUGemuUxnL)P3N1Q2ydSHC#TISskN~NCfYi=l@tG zNMadLroZ3mCfh@ZFaCfUU_iH1D~7ifR~Rik`mJ2D?DQuiYg`gFjm~wHPvUB&47puA zfTs_v{j-KJtAd|u8;&mF?W9j{Oi9JBvQ`dbC1!ieI^>{UK{f=(Zx?yy)av!PE@e4D zwd*w=J)*=)&jeL-j6zllsPe;k&toox>oXn z@wRBzutCvCk7>xWo&+jWcsJP`y;uS`jDJ%wO`iTeE}!JEAAHi+3gd~R@wFPTp%~xK zG=v+Tk#+p7LvE>@1}HAxYvPh{nG3LJ%pAO?^adu_O*&yTG`kE1p+-_#W%G%aWiKiI8fCMhGn77= zZQ-T3B9imA&UHOJKbP)_mq1T9$1Z@U2$OsSEZV-l>ZvRJ@u2Pq-#tA~%f)(H!<_21 zv6FykdU9zy^o%^awc5h_qC9~UJi=eA%h4wzYk#>q>CX%VDAGrKq_&&rgadn zLU$JlZzbQ5+A*NJ3hsWo`?ggz-C8!8@I!llx5DAVXYcvP03Sn0w3fAhFxKfxs%yZv zlK)jD5fZW|jZW#TDh+@xxX}df1Ok^jgJnnuG98H5QFY3L79VWk+-2lF+VG9&N)i+&UVsYY0%N^ zRpqdVZu-^3`Ve=jo*8;y)9>h~U7cGiFDewE_Y?bqjAcZZ54Fx z1&r_|(UxcoGGQ)A#ld&DFLAi97q`xXS6u4n8adnbiMh5+W%h|%V@1~~4E{)mGg|NnwA|K0l|Kt9I|LF9u$i}kB`QO8!nj2N%kq#NQ?zH3+o zP@R5*vS1O;A5ff0NA<~Dbuc&|(K4f8>Sh&(@I+5w!2Kj`$0DQUL^nxT6^kkW18e>$ zedB~WYc*R)C-IFilWaXzfu2GjeV-D#t;|V*qO94OXG!`bhyY!V%J)NCx^>p)FQ~EH zkC(r!Eu<(`w%T_xy@B_h!=brqcN1vmSWwv)wbitLPao8w>{`A9J0VqFCI}@aV>i;=QlkkHist=Osj9Au~s;8eZEWB|z4g%Ki(5`E!yLCM;t)VR$wi$hmPnamW4 z5sSVZkIMFmBuNU(t@3nyC-Sl-kC+1gc79qVXWv(Z_6Huyx-S}!Zh}B8rVMG1lUw2r z$*;hmmn6Qlli$zSZhScLlB8-n={K&^00x-LbsQ%_?9E){#rMS!z_D+4(JQ6f+3$9Lmc)+O1hn-o4Nb>%E4{v4>bb8cJ?3y!?-n5^0*Ps_|)=Sj373veK*S*LjM0FzS?PPCeFR^&mV*Yt<9y}M0V z`vXPGHj?5g35^u}jJl=EVCifrz3G_5e8VD}F(Y$PY;Hj^S+`&~T1Z##`>R^uE@zL) zbRs036tBAf0yi;N?bFv_Ze;x9G4@P^v4waKqO4JwT+Q&26CA|PL1Oi#n?QCuPt9j> z*(j@I>h~Qvy%t{fA$PCV{P*_qmlGiT=UNWrQL^= z-oL_mqdnBaIWiUG>~ncTZlVdSTw#&!ld-jY2-dC39r>|L5WXtycOG{$y2mZlLhBR_ zo#Tk|!!|i{(~aeyeFD&g$BYHt*&@hsD`O;5=*Ygj8!7tK{$Ev&R{R$mJ*B`AE&PAO zYLRo*M~Tyc+|?UcnBb$hlZ*vTE>e2q90s1U7$Hi$P-;h^h#6~CxU>Fh z&R9RM3?|0!x-jX=4nG5oA@L2S64dsfxzF;(-q&%!EFFPksODH&l9$(w7e|ZT0@pa& zCu~YPIlta-Xo7-@WAb#|JSGSR+4-!7L>xC5`3_EktNOWSIEZ1@ioSqu&0aTF+O4%{ zZWZA2H^|(gCDH>FaX7Bjd?(3wl6K*KeiI@46sP}A^qp(;Np#_YjGd=~gR_3N(8 z=kvSk7qV$ew%-DyKm5*(Um_@e)a1ruJHzWk=bveBnHQ~4g_eeGaJBsO!Re{O9bL)J z?A^vl_3sOF%T{``I#xl~jza^Det2%|@t0Y5Wsda$HGNBPtXBbVw0y=rWFDujKf$Tu zF~4|n#82-x>WNx{jZ~EE)tSfV4Ucb<{nntVw8i#EZ@IgI*SAwfD`A5hZaNihul}n% z(TYLN#s8vI{?*{WS2Rpm$8tqoiQbS&wR>OhrG$BdR`!u_05xp@h_0wL{){HYkscUs z@?8BHN*;4#8owcFbe1D4z>J&YueevxtE!++piN~Afu98Qip6Ut$7rjngJn+7A|gAL zre@0ez-eIbCM!$yMxwPm2Z?mBHwRI-FZejAC3|VHSw$t^+lvA90!e4XsV!z9ks|`R*Ba{ zal)9`13&3$7r;orbRfnhTbYh(c3yhHMk&P+dc>Es9{8-X>6^F*%ELnU@6(KSE~Y?N zaj?RW2V_$xY9dG7g=qAd`MLKrw9StGx{<1i-j2gQX^puoG~5Yf72q<`TrG93z(dS- zI0*Py*5~*7GGq>Ep_VlkZJS0fs(;iZD4Rm=v)P*2uj~`{XU3xN{s6hu3>B#2XCi#O z_mB9g9jJBm^YNdVDC!3iP$wLZy;-Q(m0MO=NUECCVqXW%8W~66;OJ znw)Ov9ol?UEx9H81M{V-y}Fq#xvwtYGbXZYWv#GF>ubV<6MW7a(TeWSUwRz` z7&}5i9b|Wf56k6^e#S5HP^<`LN)`Fu4P>uSc~|pvJrBti-EZgReqM>q*C&%((Z7VY zDEtx@-UHv2(j-+lywVSkBq{_6TB^F@@aUh(?exnUioL)LC$*HLE$24(?-L4QO^~Ph+R`co43u;CecSx{>c|?9w6-+~1tLjZrcPMz z8DN=rb@XV3O!|la!L4ueN0a_*mjC_! zukxC9UDtc!yGy!+)Mh^OsQ8C)w;$XYp8!d4XViUG{jd9<;qdRSoj%W6Kq1MZr=r=# z--W&6NFswKNv9XnwAY=Y$-_E$y>|aV4N2yd^FZiYsKUp)Ch^j(SbDs9{nGD8KtLX{ zhXcf~j%_u>>DS68MPl$$`riC2YM5D9cODgiMiH!oq4B9qi7rU$CVnib8m|f)itU?S z+~wE_b3+F+Mj#^|S4-F_nV+1Zu|6oT^}b{mvwfmfNfwn0ha}?~-t~kC0os7J21<8KtdI?mYpJPH zy&T$l!$LOj*Agq_%3QPIOYipci60kHpbRM?TR7L3(kJa2vV{{swxmUF>pJ2BE!V*} z!QXbL=)^kytj-QSMpTA-NhIq!%gBJ)EgZqywlG0i?z?E?;-vb;MT*1cMeF>>E8LVt zht~f-X?wP8{{kBSU$;ay%}7-O@$1;f$|J}(xAuAO%2h!S%hQHWh=w6r{yJ(PKp|)# zNHPr|H{yko9ESP&d23?D+y=wfF2c+yb<+TIP@X1U_-`X$i!HPcWvUP+blo>3B3`!J zKo^8Dnw7NV7w%(mT-<8K+81n2D9?evDiy39EJ{$kma%3*Ko9j`4QJzy+1gW$lO#KYxM3&1Tuy}q=|wKcE4b!iNPxEQovn`#4G5a?at$(jYsclP zzH~8SqC>pRKZc?P8G=UNsG{6kAN`%fw-{A0=-1}_B3c+cDhRC%XT1DaH#S25x^uE_ z%gfL-KauSX<2Al|e>vL=VCZF%$OtNUo>}HIXF7MpIyV{jC6QAQ@d+wy@c^G&L` zxqg-8M*D1VeLtWz2E&mJoEp5KP2b*OF}6VGMJb@>pqE2 z#`1z+Qgr-zy>%$n?LaRUyH7B`C>pWF6d6h2$1ETXE4g=<$l%l*zJWB$%mro;tD9v4 zxt_c=EgKEY2ckuY(5w0gErZIt##*lLo3U7z>+3mg7CkGRXuZ0MlATEu*xiyz+Ni3M z+WqY4R)K?ZtUiQ9)Z(ita-O!s{BbgT4?Q{U0wfDzw(#X%mvVs^MWi+TGt1e(zn@0~ zDp1?EJZq^@yP4Vit0_#6U+9lzy_uK%K0mq;olhBv|EVkQ{diy0xtv4mk>##eGA{6M z{N%F0oU5Rj=LZc;W5q^_+c>(<+n}8=z{_4CLbCLpd-?>*75FZf+w?O)iK?n;GU`z9 z&t}T&6MSYz?_>TOEQ_qZ)ik3@u|w^HM6354^O}j@X)@iG(igjuiCT0}iOno-Kf!?9 z89tujqEc=z?dR*`~>CO#Lr#H*|wI5LS0D{Zz>-}}t|&LP+_0iFjxF%o+RRLmycaP&fStgG#VW3p*Nh4vSshEUKuL}VJORMUy)T; zM3szrUlOI&`P-axM+(sEuI*v`Y5Ow?UOC0^K-e6GB1wJhG?LEpLlrQWKE>87(l^H6 zzQ#3dMExJK-YP7vh1nMEZrt77CAhmg1PBn^-QA^W9D)Y|B)9|!+PG`50Kql51b25X zYwff5`R_h2Jzx5pFEz_XRgIxO=#KUdA>wTy>%<+?>2s^^ikdy>3R)_!U)8p~MKXlm z6V64!3S&ukovpY41zN~QnkoXT!?3<>xx)J_5|i&9OhAQGBfVKA^z`z=@}8T_NENTz zOqRE3(*1yPI)Dnt-Ekt-f;5t#+7Ap3ed(I>vb!0P%AQroIKarxz1mMiQDyVNG`cpWjX|cfLn-Q7WU(hi<(FV@e>Dw9Aq@tPhbCui8J?e z%>RSC{8v3G^Cq?P1KP^Iw7$V-%V_C#m*M$+tk}L)ug&eLq$ts?as6f%+J;by+!tu+=6oPo_MS~cqf>EjtGamh8x%S!TwY9euaR}_gohlO0imTg-iEIxl;&|?6tqmA{k7XR?h6afqLScdkh+h}$Gu=s7>BuiJCr-RWT!akyak6hf62Y&}420L{CssTXb$ z#LC~?q?-QK`(2|Gd=TQx0s4t>teN>HUr@6cBF=BPD=41$?5(^4lZZ4@l=&7#e}8pZCULj78^OmWbZj`olG-1Z%HqVcno>sJphuG~h^f zt}BUv$kS-i1Js?Mk)iU0bJkhZ^wyidb?L@$=ez$IB4=d3BalCpC3C|$qcI9Ar~}}9 zQN6I;vG#ZyGGWBUkSD@mB^CB+=Pl7NSM$QbSdbB{ZyFQIPLI-}WEIr?!Vn-4z6oBp z7GkZW$Z6Ch+R3kGK+hEM({!`~b$5n4%OH@6wHs@kkdJf&cabE>6e&uBFS==ntw zWBNruz}fbC*jf`+&tM&@iQS9(Ui>&^ea~)CdHFcPCXQSk{By;1mRBdT_rPfYZglou z(Kw}+*sHRqi+1L?Dxz($c=`!955909k*o)H)W6uo?3(j%&ODLmj@i)#QuW2eTt~Vx z*M(&19@rp`^FC26`lG`!;6r?P{+fHeN6Beas`Cklz@Z~a@40aFYFYS{iBR2=tX`Yt zIx_NU`3L^}ae-{Z61(9pK8$Fe_E|ShIol=I%E?B``PK_C5Eq^YzTEQV8_53>3%m8@ z$eV}h$KC5dO?64P!Cy{)2U6neZP<;r-uaIJf!2P6Z`bv}?uc%KYWv8eJ;IsoU{c4L1Y|F<^q3RFbrHVRy26sI#Xrbz)wsV>9tbv>!l5UC>=I+A}SZ3%=`4{O_~_`*FmSZ^VQf~yY)&-|;7{zqF~|Duqc zHxE=yWICQta|l<8$TGou^3Ymig@EUv`O}$p-W*_VRRyR{C4^W0_~Hi4wMDA#dim%& zJFAnnbR(XdxG@aRbGbjkn&8Uf=pBO8{8EBKtp0{_A?|RSP_$49i{3fowD3jpRgLde z(YPPN!K%w|x51&~tnN~O>5(*QX@zLl3#w3>b_hrbWr@ib%J=%sQMnTtzOtb(d`dJp zTQ;P;REFC$TA45@#}7^_ug>*=ov?qsO(Hw=ZoIYH77V`si@EuC?6)|$2_n$#gid+P zUE3{T!%=%Yhc!u0w{NSBI-aaGNPr&ZDhH0ZF*2IIvJ%(>Nem zm|%otjO?^GqZfX#@)C^sS=3;Q*V5ygaP>Xk2L%S$PJsBn#f}LSyc;OSnqKS-dY2@% zF#sjZ>pJ*Y4Kl#z{5@uaOYMxsupe0i?bg)`M^?bmO2q&<&OHG|u4r7BEG;U=1<-$w zH|&dnI`KkSx*Lp5L71aj0xa|RV%Z};K=Apf?Gg2rdfQ=UnY;3rG}P75dMd%6^_d3( zSHS>sa(2TXn=m6oKX@%ll zN&s%jv0Y+g?55TIA+TvC9L2u0EbQ)nv0noF!s6V(CZnWFAPb(BIb~oc9^;3r9S+dS zZ%UN~!1@4h?nuIh*g#RI{Dgz2l@@Y4s(;mxnvXGKV9G(f(S_66eJ<_>!=1C!GASQyP?)(AA}x%J{V z-A>^2yNFV>GqYuGkr_OZz;82nEJ`0tI01?gpRy4cK*~(bazVp>ruC8;wX#qtI^d$U zxKz+;Yql~fB|S+hac)d541I-yvCeu~@16$3%AXwDI6f-%Xacj01!}8;2hWY?nR^AT z`QDGybF2{u!deqLX7ixKY?P5lk~cY1L+^X5yyRU|J5wd0K_MSHCnm$OkhE4=Y^CWZ zMtltzedJf)JS1c}hXVSbyq+u8uVF!z$0bV!qrx9K1Vm6Q`mjPcyKReSYhf^QgI16N zU&*RlJ5|(WMU;`xW8*c&4M}nU2EJk3x0Se7m0a|6Ut;Ys&iLYdnpnctQf5)hIAc3S zY<(mz=3~v~*60w%EI#ZQasColOj&j?S+sF0a(TxAF(T0u( ztNC1HcbVk4n6O~~(-!AJj4qZ&?hjgPuemo6DYCsj!Ioo1nZUs|_zR6(nZGTW((7E0 zGM^LWSfUNnc#yM-UfuYAB{#l*j*9=If18ml?DAiy(j{ytcQu}rU}k(F7MBRO1MhVw ziSU_%>~~PtA>S~q4ya{5AZkvr)9<0hUnl(~a{O|oYm@|Q{}nF|Q~mPn6I<)50p919 zL-Nmzo&+2`F`g{El?$BONy9FZPRW1aizola_glBj7ce7B{AvU@+M07f3mY+F1`j?< zs(ES$l-kEK4E6Bp$X^hYdGug0`=Y?9{0R-KX@%`13!-%ZEI+kM2>364Xuc>L*(fWo znhD@-ZqO))r{d&g)5^Gdcg&2n9#MHFTa`11#JGGjH?yKc!7fHJ>}lbxEMfc=#F35i zbd5*gR`skprGC}aKJNz5`nx}V8)+XHP`aO!&Z!kh?xRH5WH%TyKY{m&W9227l)vbP znC0f#@58~~qp)_RZ<5|M z5dX{oBVT|;YNKqWu=wM*{6leCr@uP{=k+X>r3mpP%6||h8nfqL!fK8k-J(x5osdW< zhFxLc8-jH+<9{bmb;-^)#WoGojPVisWKrr6*x7iNdk2a-lsCNY%fLS{AMXwZit?H5 zTrM~K3s`1I2_W>IEXS0M99^I;DCm%7 z@;CS*T=M5I2d04eFYpr z{vZ)k#%h&+`J+9rDQ2_;o0W*rRk85H(k9L+O+!z&0jJfb!HGM{JeH>@N)n|-Rnj3dEdu;}gE%ZLZ@YaT z7n?MGcocf@%^_|UtQax=?}l9}QT&Bg4$ON5ar z9ur{PgYx<_o!hvuxS)7jI3>jR=<`+0F%`%f!L}b^j4)^~&A>VG?cPxTkjV+18)-Cbo0b{i_=_@^!Z;Zc1YY;cwUjl&N@|CJjoMz0k?SuMqqZa}f4Rg_%Ge~)${%#!;kwa}smXUs&w0547~l`{D2`yKr* z*{`p*&QBvAvp#*$DHWyKMt8N4BUBFZFCi%pzg1*EvhJR;2e5tl6Z4cI`NqhzD@E`} zSNToJ@&D(i6X#J~ND1%0q)VmWAp{{z>x-}3UUBro>dQ!=BiBoYq~a0tDfz$?2>?4x z3VCC-6ZgC2d6|bO4!6H1HNDG={3OJ9ne6$Ir)`m;lj{4--bRvKYcH;9{yo4U>Mp?6 zbt;_#jUCgwR9L&8kdhw(0&*xlqzRHForB2dcWe_eVr_wXMCzq3f$)ZVj_+PbbUD1n zj;q!t@b`vlq$$Sl%MPm}9I9G~18D_6Chu%J+JQXATbVP;)H6j4Ne?#&1X5{RZNuA- z<2R+mwFnW{*>Mz>q@uI3mj*iErhYcFd(Xxah^Wxo6v`H~v7U^4ftwkzernDK#E5Qs zMw8HfTOyu|$79UTHEcDwzUX4H1?W(N`<} zZJ@bD4Y^0@k3=r=6OpS~#*+Dh=n-*D8zEt)jXAy$2!XT5g0&5M$$!A>z8?q7 zBF>nLp95B1vPHpZU|C?`JD1M^y6bPsJFEut5fdSv8ny|V+@zx#%H`XEC--@js+a* zp{IUYRP_1-M493wT}UrezE9*UiBv~@$^LV*RrB|W+r1+~;Yf6D3O7~fp4hL3BIPeB zQ_qX@o#1UUxNA(^)Jv9`UVFA{UXSllOp>c?-SI1DsF9wCn1M0}g>ElUIDBWZ(jAng z5Ey0yw4BRVui0jJ9ku)1UaxtrK&Ryc(r)(8=hLiugFb)N)}pQ~tOjcInAIts*AL%$ zs1a^iB_j+VOCCqfWn_>@V-Cm1VpMc#Gb|kz0H%Z@{7SxvtF)RPVB?;wpPEnf8#ZYT zA4;7r{kvZAe<3v^T>tGmepY=|aC^0cF|4oYJSN(X39fTlvVs{Yl|)!*D++BX|l9;bqY^mnYtt)1)-5`{R|KvSt)t z-a=QNM0pJFSX{!lE&=z+ScRkY*}xaS#ZIHbap~MkIxVappYf^cSF*MjBMidxBJHjM zD$)TiKR$c=a46`>cl?&iaCr}OAqGim zZfq-+TX(L-zm`%=2+g?CH;+^subJK}dY}Y0=md{-Tw!4>1oiw0sNrS%qrfGzniEW%+8{=s5U$$$-7&b* z;J=SDWE8@C9P@1CU{)amrgwE3pQbg#e z=8%f3(>ftbMq!-fUw}VI#}xp2n1{?=t)DLKe*HAzD8i>HK}*7O=Q762)4jOHDzR>Y z=?e`wc+`NWlIaG)n{=P=efxxxA?4GPNfp;8Wr0Q;a+zHcgiEf)vX$XmS^@#1?yEOd z^BYY5-R~w9pWrQcA4A=jkKf2il`#1r)-j`IM$m%zTf*ocIghIl2`Evoei4abcHuzI`9J8J$($4 zDEB!Rs1^^Tv7ciB*Z3#v!{1~W+ip8^&8|^jz4EhdGe{g$rFq6ejN3MYAXL0U7;y%7 z!qG;L%SM|o$A!Pi418irj^8k1@77s9Cd%7t4HG}QT?7p4!^*QI6iJ0chclaRN@eQf zEy(MNfJ#4;o<^-UeGW-LE7YpHy_qpKoWOYIuT1K&#rPnZmFI1?1 z<(RxoAadVkda&8~lX0Aa2eW$MIw zop7(L&kf@1JP6t}JhbEFsDWC^5pd$fL#~ul1Ta8}_){WV-(X#tlBQI84lDD}PGUo8 z8_fu7N=gOZs6P^z1=UO}k(4$x5e!f^q@aMQ?LV*;QsHi^6kfdg2A0#_t{DE>iYIm% z^&L64s%+SQfEua+*StEtA9YN4nP}PvG`i=#kS9ww)G@fTgYtvf?tj&Tl2)lJrr>*};t_agyL?kKh+J1QQkG~rD2o*XLrDo`4~i>JPrsV$ zS_eMeHD2t7M0w1v&;W;(^11Yy;TVNfdxyWlTV4;qRzr$shg=k6tfN4IXPArW>P}|l z-TvoEaU{@}V;_^V$=ZFJe zOb%eg3F`3+!`Wms604MK0?=S3T+k3a3I+oBk?lP+cNLraO%9&kEirgudUD>j{cp6! zSM+TQU(_g?fAT!nU6F*8bX!qR7& zag11jkNsW!{)yLR3f?Kky3}Y3+S3r!x)t&tnUR1@v>|BJ8(3D~?%;wN*TIQ+is;<( zmn9%CV#4tA$O#?EloY8XN{s<`H|}Bw)#AI)`tKV!runZfa^j+0WCjGg9s^E4&Yphk zZ`z$bUG=z7v$V7{9=o^P0S;qR5n~b?Gj9S&dYw-f1w@AlDO{-XKFGH2UYBy5 zz{~Lq*K`%+{k<`&LPW`LKzJ$wAMqDDk9^K}&`2fk)xmsYLHVrPBl(%S@6+f#? z)o%7Z(Yh5~)ZQ6_j_jz!yJqJ-pRk_M9~=#mQr6Z&D{cuNEW4AXYT!dWShjr%w#37m zKJm^&xtH8Vaj>GWy0UoD z#0>k5`wM+~R(ubI>L}J$M}Yz$dT&^PLZLgDKVI^v>V6i{M|eXdIDoeEcElu98dwtIjse;p=0Zm{#HnN zu6AQnL?O>(C6u)r3~Htb1nhs3MZOnCHwbnDhR63B-qf`3T0F*XWzxz$H8{XJPY`|=3|y`VK~dH_~8Vle7$$4PV8w-LfnlUe&n;fw)iZ2f~w;`}%I9%NNzN2ZVN_)ndqQQ-F^Dvd@2+X->J)XZ4<> z_Bjt)7q|g6OV2jSS_T1UCZ(w&RIox}*ZIwK$4a2mm!(*sw#>msrwIGF{WPvciTV(M zU-E8sv&on!M2@|*sfp)b)JtfQsa<7r9%CDoN>gg`S{{jga;0vE)ZC0f`qKrV z^{b2Y%MlfR={_MehH})R(|hKjXn>~y(!mfGoa%d{H$m5Hc5W@_FeodyI|9}31=KWl z=r+}(ySBn=x6Fl`f1dB!l2f<&1KpnH_r3Hk5AyVnzG~+rn_{O+vb9k&MFiGlST_nb z%?8TQUc#R%2ZpI1bQNH^Ewb1bUdL80%qEFH+_k4I3E`}rSI_!S9_TuJd?@Xgg1P!{ zpZeEk>{2&_sbreLsZzXF56ehKc_17EP)F?4FQ4~6whZh zi5*J0ue}Cl2>yVba=ZS8q@>d2aAqXmn4kMl0mzD6yu7HuiuW}0uwa+!|rjeI){)Q+p1}Jjo8l7o!8rFP=U;;XMs>+nS^l3 z;!q5BfUqA9MqlitY}MPQSPbGE!sagEl&v^BcD0XRZqejb$7ft#2V_}~)gvF!j%-S1 zGDzGO^zF7rSX@shbs6PcyNWVux--~q!Nl40I9XMJj2}%`MHF=#hTxwaNWTmIs>wKz z4qoQVbiwfAaK33x_@guu3Ji($HV-jO6PO0tz40}ST_vJ$t1Vqp;r(kZ#sk9Vy@SGq zakL48|A~Qb_Uf2~r^2n{yD|w2x5SFyM&rlV5M&9(f!tD{2@S}2HPi1lJcxFxl+e>7M7++fuCrQ4h799vH$d?z$^@OUsc zNabxVCDd_q;Na!AKsP^r6!T1ScER%lOoDjQ7$hg*@guPQ&OavC^Otm z*a2;vG?Z$}C0IY!60 z_zfw66?>lR7BM~TcdG80k$Dt+H!G{&EKS5x6R%9g9beXEKD~VAxJw)e3STYEd4C+a z0F@O{PsrZtwzFwahxFf7c^D8%9k?(B9UFyS(%zIxogVwg33?nY?MX-1Xhp5C!}s%! z|E;|$#H%CoKz3Ppay~Ciggm5T*O)HV#l&B4?O{JU( z{FG{jNV4cgAq&AYqE88n!!;ye(N$?K%g_c@j;*hBG0?4T-U`kXwY2 zswmsLRLvho_k>QUEzdCCn6As6+RvCZod9|~{lqnrKWM0W{OZ+zG{Q45DG zL_Q}U*Ar|G$8JQD;21SJf)1wc-FkpQE#`H+_=ZE`0f^QlG#Vto;S6KVI$(f&(#2ql zbc5Ud8stB|gCCJyck_IWSgT5i6j~P1OkyC}#%5dtC-;YrpyrI-LhiI zJfxuiO;-_Mj8jp%216E`5=d2&39B5Z;r@FCGqO%vpL3>oagmY`)VeGdSt8e*iCr^z z=Z&?-NiIP{LkZ(CnB0j|fi%OIk|bZ zpZ9nv2`*i(>beah|3=Efa0~o2G^%HR+hV%Dgs(a9FuVCVRrNg(-41HpAh1m9ZUZtc{3mVpO>MnQ5N}bjTTw_%_*)`~w`?t4~9)K5T{~xP$J^kw9 zPzX^E6r9S$loL=u#oS{aZ;-IKWB(lpnveH-f49{pPKHK_Z>~y#JM>QLBPETqfEuE7 zk*VBpiQyQxK!aE#ycrr+0k%>bo{px4{jDN2%r%{B=lj{VR*@|vgf%=JeO*I3hDq`b z{?Gpy=>*$oVFIhmxSnWR&~>Ss&egY4@Y#Y{z`o1)cp2S!oiI`VW>D;gSQPxU=N~Ri z&fk&Fod4~6yf$U%U~GD_bpPjZvJPAyt^lh5x$WN7Srt5vEbAm%iHa?r)G$dz7$iPg zg9lP_#I0lElteu@#InCmMe^weH7Q2iU(&p2%y1CAY|YCiQ5* zX!)=*KD#z=ilqBc!PmKbvew5Z_vf|^_AIM#v1wUl&rIfAM6&yX4xF_MjGa8~^6Nk$ z5{JrLwd325)f)e&#{cgcvMl%Y$pv`z2`24L>bLe0CJ24ryPZnTn)+-ukQ!M}W05;^ zt{g!qiYybCLd9qYuKf5R1dS8})zhrW;-Umn!OD&u8JMpkvrY>u2?zo1$RlhLpa-`< zpD+aGLjQ(d<%lj00z5ErCyjR&s9HD;>#{5AB}nvyNS+wRf?yAJPzS>+#JD3F8;&8x z+b0qNZ=w!iiKLOIcJO%*0da#!tm1FpR|R;U)iLR4e5NLV`O@hiK&Hc5{^dGg;%mYm z>;!|Zo1Vr*w6u(mDV%ucyfsHEBkI)>m~NlU45yP4nRRjnpQJO%P)#n4Hc!mR{Q1IV zrstiI!BBtRPyNW6rHty~MKybCgEn)fe6H_5u1TQM^vMdlqT|FouP=J#6a?wqHYnwq z<$V(z?7ycu63IE22-i#)Z=ex#4f$mZKM2eRceEyL%~%EHqx~uU^dbI!B#{5k83Tt6 zzSTJMoEsA074G*vRsm`58D&fsHkNq7yk`@#<07f6l8mg}%GNl^iN;jMb%y9~uugNh zK2%dPrwCODwFuw|nX{FX4D6-GCP7eNWX+KeUYXPUfwu4S{cgd&fgD;^!`u(|6bmn zpypzZC<~A`WaN+`~f=muUDV1a(%cE1Ya3ez!pf!yiQWx;9){9fEBA5)lx z4ie-@%dm)k>|V-Z90_Da4i5P$wPb`m!snD?=8Sx%c}fB^vkVW06UnqaWsyHz2@Ph# zri9(Lj~PISn)+gnMYYX2(Oj}bYwj-R|J_tO|EoV~5B;4QR2=RR2grD2L;;Qn)E^`0 zx-z)hJKs9IMUnDVg(w~PWNqOo8rU6!m23wMG|5S1-ij{qrGnHXn0Et-Z(1bgklB*< z1;_RFQmJYt*K{5=mPQU%i4TdtZ7%ZRi!mErM3u5SSVz@sQoS@md7uB(4oV6M<=6pt z^K~OTzgivP2RtRG4Z@nHnH#`*w~$b-I9bJtQb+CVWygD}Ug}$QRauY_P?@%K?EL9M zkQi(4Yfmdg5z$t3%;ZIS{4iDD8wFjon0Uay*B74!~F%%NJ5T&>)=|3RGBq+gk?(e*G}y*K{)G(HmG z(s^(FfBTL@n!MbOOMXk?3*2H$4l@q8JoH+Y9{D@$jEsd8|E?2^uk?Lfr7?-QH=|kP z-EadESkXj=zY!rch)eHP6CVJkjznj$#awGPm<5Iua3ZQK%m0%3sJU1xCqH$ZW~s-b)I|= zCip%h1{0R6B(f|z{K>%aq)9Yb2PXC@+5JfJW_DZ?u6;K>@RJ(f$6o!Ez!9 zH5REpF_1qHQRf{yKF3yq6zCI4o*8Xzueu}qcL(f2GFcdbYd`DEtdS;-hM*c%m~W`) z*rSz#ehKm>aopZRCQf8w_nX2AK|OGA>J$%|E4jc1)kn~}%_ldDORPqtK_1B;=9dYf zv#}q)5B_qo9whf6;2!fHbHsiX&*z%GoRSx0z72Wm>#g_aDKY z$ItzVT>Rr<`EjvIh~5^ve!s*we<5dnF^%o(g@x_JMnXYW2=$BVbyM8Vt?RmJ<3_uJ zdrW;#jM;ejOg)RszZ7On*Q-Z~GWZ8R_*(xc|1DsDNPRtpt8y7O@)LZH_gUjV=Uxp+ z^ZeG%Fs{if;S#jR<4u>i^6PdMQnj^~-g!m$u+1Q@_#bt!|APN+c9%C|k=oyC4gciz ziT21r=;M1~-xW4VMJ>_danpRIumHV_%eGNnV?_C%1w>XLIaaR^ zQaJUgHu}pf3L+d(^}~YGXj*EwII_uP)WSfL^mmeF=V~3( z$5U=7!;Fq0`o{+?@ycrf%(4QIkF$v+)}_b_L_zKDkiD_|Jf0m2w<@`%Wd)OoNW%Nh96(V|8yqQNSlav(GQ!B5+Tc}NK|xa5|3r1 zlIIa8LF(#?JolbgVqT)r4LdPi$G57Ba~@87lxZ$7@Ti0?ymy6RRI5RtQ=?l=T2Lva z%Y$f{6g=hK+m!tl?VQW(lFC_bt}eP9DbqymU+*!3G^$M-pb$W{Auym-PbJe z!*uS{r7h%&J@|g)s-Ze4zVqTswfcYLYVsVg5I{&QMxHP(T`~W6LfDz;-asG|^?N;c z;ZaV)yff79YM6XS820bl@b1|}wic_4W6oWn6t>Y69_Yg6F`&MI1Fp~5fSkqvU00nV z?d_NAzL2?yPlPEM4jFHkaXa_C%Rn@zA3%aAk^7ZJhmHDyDt8j`R1FIc2ZN*1m;8p z5XbSG((vs#7OW=W?xsg^zq1}we{Pc zUQHw!gN5e?u|GV+sQY)e*ppi4Er~L6pvVV0U?^= z6<+0afWK3+>#?m%`9EEb@S*?hfc^pf3XWQ90s`{k;J{Hs)%K;8bynsS7lby4vIW@P zgu{iNO6$~b+nG*RExkw5&Ob&h2W4+Reniy*Kc$Ji)5xr=S1Q5OnftQ+MmPQKgxgw9^XVnriT5=5_abXHrYJF##ArSZ3zeP zqkO%gWck!&akDF#u3GizHA9RRUAw31f1JTQ#@z@4Ij&fehIv%*-fm5o;BZvj0!>is?0r`14VCMCtZ@`5#z1Rf|45mvL@Qb1-;Z)S7hBq8B)r zEIm);?Y~!za{wkkCmteX8Dcne7BUJ&oxEy+I0y>W_oD3bh{zT*W;_Y}%e+ow-vLFr zFE&S@dCR-SBcV@fwZ+)sZp~uD)2CMc{4}BdmocyNX078ZO4rku3h-d0! z=3G%-upR?n1#YVqz7+<#;j$Q=ea^3D8T=kCuMZ9h9Xt7V)Nn0X3iL1cDjcXegDDU{ zJwN+TUjjeRs=fSukT90qw^T<~!n%X)bpMUx6DOpZ2H4?(O7F?FsI*Z+4b(32C8U?V zCtH7>C`U0srhoZJDTN!FhJwh1KV=JKDtH3)aG~anh-ZBUh;0&BY)kVI39eP6RWyNI z97xZfxmaAw%j`l-j!v_03g~D*D^^W@GYt!&ry4%{G{t5K5)(QmSpIyHzLBW=7&+j4 zGv0Y0z3O|l_dxD>h;!)y+OMD#mQtvs>i!LMXn_);t;0|b{%lkZO(;Bi?;Dn}i4U@d<0BZETViiiYfF7R%Cc(-81JDo}0A)3LE z5{HUCY9SUA|Ik!9^NWwz{Goavsz(k?_tEp3Tu*obDaEXq@IsXjRQhwa_E_VC&aP~D z=f^hB`Su12DWCAuEOPZ8^fc+aX z35MeM4^cZHZ28wY+&ylitX?g)3anFx0;r?qj`KfOI{d5tR!Sa{6AMou$WX|)z15ok z?Ma7W)551uyi}Anw1P5N_E@aYnU>jbcpO6}9QCB2-_=iXn5jn*6(R&DM2%aJ2_|>_ z$MyA4i)18A+h0U7wq>!-dTDU?4B@`2$M2&D-(pNN* zWKhQ?DsYVDuf9rjPxbZ6U&}Uj4`UP9?j0el9FY6LgUya6RA7{BW`e$k>OV=7& zp+cF<$r|MZTrR~?!l%$MLQS^}k9;ES(F?)n>m4rD*Bp9Y{&^}t=de`yIggAtSuKH| zxmq8^hjIr9hG51mcC*f zr~iZ1_+36$bw82)Nfm8tEv2m7^J#Gyi z;wgXB)yt|^15uf3zXqgVEv0u1oZQ=lND-5k{e@_iDtg|%hN0%S{uiV4BMMf8)t~PX z8)H@Vl^mrbTrDQk?GLqbpugG{(0^e9kum-V&t{5{oiesK+q9?HMVFKEZZ%nG8 zgOU|kRIM3mx+J6E$cQ>~s31~TN75X|QO(5WC8 zt25HwhZVK8g;(yU;=y&3Qzu7;cct;8cBrL?)-9lUui@$9yj<9-2y(OKlw%Kg@^t6@ z>8yfNocVF0QhDGvihf6xu^KqyWH83?7R)lki*FD+AbY@pB`)n1*b;wB?Na}3U^7HJRj(&ISpJSc=snh1>Z#lE8NcJzU=3cuaf*- zF`usnU%zwM)y;#vkbS9UIo6XetCExpy*S(5t76coCqtqxWQU4z-nRY*Ae#oMTkyu$`H+Z|ME?~<{K@h z4XXVrKe;3vRLQiLC97M|HDRK-ukJ|hBINifL1pya7j^ntTv&N$`zyt(J!C_WM4NHW zDS>t4g@80)DYXP!N8WAdPiuD94URnm{CZwIL{U3lu?C-`n-#y@!on3^bY3#+`wu5` zaB-Z_Q?`y#ALQVdOP6Vq#8t#I{=s~hfcP(n3uW0iG`}O*_B-dWro_Y4d&E9}jZ7EJC8BZKLEKsk3oxSZ z(PA^Ny&`rn?aF&?U%Td3WyNpOwfh#}iW;TE@5}M%RjNsV__2M3hG|iiBN2=Ja&K9V zqKo0O{M7xd>A!+Y!9Va(K9B*yl?2mIVpIuc25rHILO^ut^*;C25Ae1=zqJMk6@S{m zsBT<_tLVD=&ORyrT=IH#_A=k~avcC%YlA!)ods@F9E${)Je~D4i@!Ygn>_V5jJgDF zkzBRCmCILPrTk;)MuiD{7TK$uNZ{+^TGtN~^+L78z_M8WlUi9dCBj!Zy}}dmmo0Jd zP6}q^dzyjMgA&8tpa;8c@mRWuKNdYo&bMD(T=tuG8~%G3e(idl9(>PE>K6SrRXBT* zvMX7?UVK%R3QG5n#J~axO5h+@K)CX}N+pnL1$;UDttC?PpR#PCNC0UZXn=RKaFVzS zLwAcV3{fFCHRwAT@)JtzgZ%0+u3UiAQ;*$x5^j8)uG73Y{5!UMcFTjJhPq-45l+>#>jxR0(4+=Agy{ofRVTBItBcSKo>BC_XW;Dd zN_0Z)RgF;`dTnGBT2r7TFGE($X>#Mg-_))2Kl4-=v~`j7?FBn9>?A^a8=UGIh&hp` zd+m;hZ}!8N0q3oa^hf(UTgd+8ocKebcq@^Lcq05B zh1aT=W$<^i-Lupi)1cFU+ghul=M$f<0Adn(;xj*%iRSA1+yPKbjqsD-qoSHe z^Z0@Md|}cAGMmgp_{YUltsrBpg9CkB3x9qOhEca zHVw1>(6xX-r5#-cLd_N>mf?tU$O@TeKTf95Lu+r`aa^|sHhCDIMfFSWe*(9mmvy;8GKs6cG-;eKr=VC|Tt<3VAJ#84fSD)T-9_Q$1{_pV zdoe`9mA{S%B;oCsqMK4o#<)dW3o;^K%vR7Ah#ISi6|EK?@zDNAjfs zL^=2l?w!JiVFL5pg-5Y$V-sZ4>K6mx3ehS&NrWZqy+tk~-_06DSzR?mbTsRY1vl^5 zpC%4vaG30iMY&N!|)i&Fmh-6}SNUh@f%M_y-u>9I|pTZyAbx)aW(-XQEQF<3N1h z1Y)p1zJR|;JlVL#{LAG`p@etpwTQnqWd(7K8wJS#b(BrWE@Q+kjGTDlNgH(AFNl}N z{K}E#-|pk>3ngy^-;AxP_uu0CmV2%bqmW`JpVapo6;j6#3SzFPm1K7(K-j_`=w{h% ze^vC_QYc2gA8wvGLAsf7grS-D1Y}2d#L$70bP;4Z%w^4I1H(o7){C0HR)+s#AmH4^ z7#pWfQnte*?Jh$qTW4a{%6OKovz9YepVnF}vlIF7!^}A13hY>5l zu`$nSw65pxYX$sk;95&PN>Z3o6i%Nb_PB9>groLkU8WPmrn@AGXBPL(}jk zd8twJRP&C2HglEFiGHX4Bp_>(*>ohxaE1J<9@nR3t=&RQ=~<56t0E}B(Y#$5>9{Uw z6rs|tb5h9OqM5SjK2EXO*_}{I4eMuU1XYq64np}+o9-jw?$n}jE;#T*Xozt|6qBkZ z_Qt&-{ANwkW7w~e`MJm#%xCq)`vWbsO9H@&71fAi;#e>rZGEGaEph}_w_A?cT^FWB zZI=((v{3u}se|a9bZHPh0+vU%JUc<}%1xti4nca<)Vcq^2p7i3e^h@qh-#cV5}{>8BtYh+y7(vj=+DwQFz8sN*e{h zK{SjFgAID>0x(31q)_zRa?Xh`qq{`u+h)jX>>%m8QLLqK(ys|&vf`?`R4JoI#fatM zS4W$oXpWp}(V#<2WrmHM@LKk|qvzA1u+yKbR0*SENwx&a%mEJpme*ob;Qwa8=6z(DmdsA`a&w7EAE$C@M9EAZLARmE=(^$B z+KfNHJsua$pBI1LcOPUD;D4H>Sw;IqFGYZF6AjaHzUmdekP`x|=a$g#>d5F*N8lui zX1F5L6TTIZPh_Eq{Mo1%>-)R6jvMb~>hEU%kBv>55Wj0@XoEt@bkutWqzetDlKCQM zq7OrC-oF#q6I`cH4iS@dcLsc)?mndAXI$EuaNLVv;bT|AC3S{S8&0#Ju3{te*>KB< z6c**vIn-%-XIQx^T-aYsnnyI>K}LA|CQ*NS8Tr<*m3=^AVu9x{`2Dhsfi=W#w{sW2 z6&+Ujqj`aXmMTY7Hp zySqcWyBmfcU>G>)eLwFx=l#fs`SIa@UHe*l?X}jvdzJE(BdT^Ln>;dOpE?qr`nR$4 zO4(;!)GwwJSq_t3b;WSS5@C=lMIAIxKA<_A$ep1{AdEl-ro@PJ)m~6p9t+h+*yPb5MPgi9OEb5yuX5o(i3l21qCU1F zA1QW8pn4}2QucqMu4MI%Yj;$pV=N+A?7G`dHd@j}xKUrsD`S%cnIo`uP(2!c8C?^U zbXd)UUW5{(X><_tFjU0^i>^J%8D*upQ0mL;w&n{7D~x8sL+Zm0@LGkTi&`I6{ z3&81sSXBHO+4M+x>V-k0SOuv7S(CCAv&&b9C&;}R3rU*%(YJB06n7>1zOYe^;fn0| zhnWr%H+oBAgI*RcY>z!Cp3D&m6C1n(NJY3E3iFUMhwaZ&x>Kil$W~$Nv8aaiwz1)~ zn1pLza+kw*o_#cb-yr0HakmXY!e@qAtbuX?Jkv-_<o(IU z!NcU+RXUTV#rvlzS3O7O@F)XMz|Nr^gZ6yBM$(5*{?=hz+Cj!!28bj~^6F4ieEdZRn<1y6G?{xH*-*LilH~gvCc}S=jr^ZtLnq?D=)bFS;?Sfj6;y}9 zJ<_(}Kew?oHC1w|IWqTV0fna(dF06dxb_l+I%l2_;{_mFV4zmK7eq`_%i@qk@Sy?d zmx}?TtWUg#*I|n6M1gI(MBD*=4Zi+J7Hl`!5ptj(#(}b!6A!+a(7_Lg6vFIdkQy2R zoQ;;9Vp~ElAAitPvRVLrF3m6{b8Fp&@FvK`A_k3zmxHc@K-e=qDZrXoaFMpk?}Nav zR5Zr_<6YoduoeXPq7r(4iJnj1K72V6BIH>45X^xHH3SkeeNd_^(8X?tb_O9USvi9} z8-ldsyF%_Vni}ZRg}GGi)S`*m#uNxCG;5S6z>gVT>?mnw7`~gQ1GN~qCmF~4S~#Jo z=`=@*2(D?~a|QH)w`h*1;0H{X5@O<8=#S_ZT*(!jpO^rxG~zEmgXv}0s!v`^^ZmF9 z@v$ldTui(nO@rYvLOpU9%ReCO>3km#lh z&ByAJSzUI-oRExWR!xL6?7#xa=i0O8nH5CY^QHuwuAKd&JEsS`Ta01f;e!i=?kwKD zm6suD=<=bNOA;VWhD^U_2a(PX zxn~dyed)=xNUuSpxNXA9zgW?(!h%scn0e(OZY=-x32mD(p?q2^b=()Pq)Vh z$Sy@?>;5XKrxC@E4b^n?v-v5h_wrN1I+B1R|D8vS>MGZqyHVa-jjOXhyv8HbgTz11 z1g^-Me5fAuIo8a`Z7T2dky~Ls0ks`f9y*kW__$-XjoeyP`Q1rLl|T|@ znBa5q4_37I)b_=9(ms*^xc>nfHe7zRWEd~Gm5UXtKOvJ0A!!%NoCUkkb77mg;XFwI4rv&xmTUr!bKl0vn<7K&%6)|w znLq8I*<#Eq%wDO0^M-RVhQeqVyl3f<UStzbg_MueBncwrO$7>0q&Gs8f;Dv)0oAu^9@neU_WMHA0*8Yp8V`@SX4qIEPzb0n4rRM zA(}AR9hwD=TK5H=(tf3~DXV@=yu1J@`F_e#$8vU#Akrj+R+BDR$i6#>WS<06f}T0F z>tNi7C0PyKzOg$qyv2%3kM#Z;+u?AgyIs@n_=<0vNh`WyWCb2! z%A$T&1UH}G=*BpL^f?9Ews;%Mdym&xAC`BJN8mj>_?1qTlWJ>}2xkH&f!L(qPZu`w;EAkV$lJ z2=;Qox3H@;sA)x9>ayqM>(+iPyo?$t9rCJ9PYt#7zWUVuywYM}a0Zd)p44po?WV+n z&0D-wzqK{Tvv#*qW<>00`0AIs<+r(o;Rz~l!v!~vjiiHFrlSHFMXjIp#aJEXe%d{R z%|IP#-;xujKJl@6p$Knb4Y_gTXL0VAU77{URTqo>ns0Gb$I$I9>}=p6glaIhU!@Aek-TeJ@;qH8GOVd)VnMN*AA2Y*QjD1X*PO?bCf;0=u=Hiy!${hw zm+Kwaylm|T2i#n#1#|o#oM~sIyJXkUtmsj7&uj0OIxc}G6MCUnL_>RlfXwEFkHPAg z+mZ;}y9l||__LhX`_QdtWT&L7?Q)C={l3NpKIU%^8{{zp?!0#g4L6+B?XiM`&JP)% z&;81m^q+EX1;t4LKVtDdO7|X#{Qpf`ju##`T$92orF5BBG=UT%(hC?q?$U@k2u7T) zmDKb($tHLY{|*XVf)rlV9lt_bU(Pqie6*BP3+(@l!E05`z1K&IGTqV~jvyu0Hw%tf zTaG8xt$b+V=H<~(OkZ_UR70=@3Ql;Hn8TVeU9_byBQwgUaS3zvuxzInwj%A40Q7wz6a5AmWsj)GdLn*KM zegD!LOM5H+N471^2YW^+zZ`!exed)MX0@R|(Da6?4DB%04=h38PJGqgyiIa+I%@g`+AZWa4h8vARTg6g1LdEYGLWR{anur$kT%+d2`O96t# zz{b``*(b-vE|;|5(bP1|X0 zXv{bLRCzk}rpYqiH=CZ9!6-2l=&JU;&pKQLJS4rmgHXaAXT0A?(lBR15dY^ohau&} zL)gdyCm@vowSjVD8#Kw%-xjs)sRnzE_L|VSLHKH8s$??3QR4b-i>H2IE9651auxpo z#8S1i=-Lc}5m_nh+FccTCp=W~NClvDQppM3Mz?`bk9xbQS1(S)k9m?ct~jSCXX;1@ zhu_^dM~dT;ph`8JUIZ@o&Qd0Jo?qUQK1`H;sK%y!-qH~2_K_tpiDWDFSv~a8grai& z_uE0r{>;9Y3J^^*xA<8r@VZ?D0}#ZtF~_%-o6%q;a97auhjMn!JC(gc>~cTS$!pD4 zDC4>t1;?yFpt@fk3Eos7>J&u&tN>xB?ftzHJ{RlT<=awt1RqO<9xteO#==o%jc>=3 z31QK|tBtQ%8!{IosAvCE;u9IS-dsBFQh^@W+Rc4-Sk=l<{uxK}5u1}f4+W73Ty?ImzTnc2Q&N$QJt+CKjyC%jPFn(`xDSleLppl?@EF7d{tMx z75qgp5y$E#3v7cbRf3{aX3)U_kA4=mluK8HOttgrSySkS2D3<5jk6u5Fh-dT?0{X* zANC1dY|=cbk8oYFiX16Vp3zEVQaHZ-Ycb3;Gh2dY-hd<9;UX!(lwKO&U-pI*q06lt zlitgzZRmikG+wBgCAuo{gwntL9my*F=2CW+p;AE-$>e=2F|PC8$(85!@l;ec1$lRk_kpW)%&*lJ+_qcCLL1+(*Zl*x zheMDh975^Uo>f+N?;fJc1t_f+tpb$()5IK@?(cve77kXhqt}|-HiW-G6rJ{^^tu_Z z7drj8YyxW&x6gR4iV^-^Unh=ua8OA^f$xv* zDXVtbYp_JJZlXdwk~>;3Qgr!bM)AmUcJr`cr2OyKmtfCe>_=VxU#4E9bzO7j`J0V{{K0?LO#;?jd0JrgmXwnP;!@>dx7We2v zqb{k@kpYQ?IiEaXCU0YJD8}kaZz#MFdR%A~Fzw2JN@nj`tasLKddm8WC6s9@KCjh6`2KQrBh9fIo zM2ElN^%qY;UmCu(3ru{{99=MdE@d{^{#pkf^9eA&xe*^Cd+*Q`fU1=l!@v#}&&f)7!HKi(PZzsLYv{)cpPW;v;e+~X z`rYqcBQ~@;C8zRf{~n8oTWq-2!SjrOo-oW!%u!Ha#gyQ&73`>Gq_Lf`!U#QBMaJ_i z*yz0>+*1ay&vSh2V%CB6-HJw>b;JXF0|6h!Uf-_~`Mp@V83vc+vsV2FT8(6*;n0QC z@^^$^xuolfPSE_QfEgOS$kG>cX&gMYH2`zR-mx_UBbSG?ROE=A1 zc7End3+S!4+J^qnBghoPQ_HZP^41AjyUi2_AG*fDQWZyIaFFVWDbE+Gm9`gzahYG% znxKiCOwh3Q!2aNOi?+9&*DfIY38;6Yxc-HptYezi;D>ZPk5jAw;IV!+WAEn$7bLI0 zuadsSFdTQnUT}0AYagqq&CC8a9y_e{0sY#5cds@zxBlY) z$c+LslvNOZ8>P;zF%XH0%S9ae52fvso0#!|qV(yA%GL`1XKJ8?CM0>*!NbFwfTF;S zM#>KY*KH0rXoD&Nxq$ZkqIxDK#E=6hF?Hs4Y&wKtQAV!gnOpPOGL(knVjGam+ z&%g0Icvs&~CB-{rqo1Ab(HdQ^i!fy@!i}L>%(h|CV0W{-z~RvoY&+}%j(h44sWjDh zt4f)9rK)@_L}d!iSe7h}IXbn%gQWFf-brMwyb6Gpw0K$IIr-Qt@(9oSzWnLDBdN8A zhk54F6X6kb`eM)OM2TSf4_><*ol>cLtm)Q=qq1nbH0#m8ZWX6vWz;=kC(yoR1uNr* z?*$)Bv*!^zR%T3?W8GCA7Y)A>paa4E+HLRF+dZVw3!#_~j1R6p zF(FJFFkYmj4?O5m;exyN|3X6$UE|2tBrXjU01d;jdKSC;kVF%!R$O=6v0Mmk+QS}n zkY_4(jR96OEo4~3N&-^pQKZ2VYUkTFky6ZTZg#H{p#1f7cH$>5rtg>_*^3IO4MQQp z0tTx!zJwBUbswt4*9TVOiQI4HF+NRIV%%s{RX_EfWFNgP_;Pxzi^zd)>hxB!hc%!zG(?_Ouo!_K?%sDWih23^(JwA= z{@_RO3qg7G&I7UWB>dJ3=!N(~9;>N8?9IUSTG;!*jvKppC#=6^%# z{$#@jcaSqTQRaI)LY7JZFXfT=3YJJeDI58RXEw%DR|4Nx+EBi?I*Iw2)6m0vb%s?? zEzi=-gj$v3Boyb>PKe|bALMDF)rr)5<#NX4@^1r%l>H(KqpHllJ+wMGG`SZAk zVsO~lb)Wr!&?cv7`eC`11WN*c_)ikzZdCpq2Pgl_ySln>p2O~jVLUUKMa8Q>j?*En zBCG3ZZ4G9T%tf=at~^2MP(Y7TJIQqt?ON0l(iFKZ*c*n+o9~`Hy3h zx2G`avpF0>Nfx)0JteA?D0XP@m+z<=Ew)J*E8PSZiW%6H=9+Sj|KLtb)QH;ev$qL_ zIdxFaUX})de5jt~p_{C)&;VF0Nkzny*4-VkA*>3U`;c9HHZ&2#@kh0O;)0}?kK2=;+(NWshd^5NMU2Up4KwsmW%N{Tp>A-G{zK);ia9R9V(-2ds%+rZ=V(vN zvXADm<)_$RxvGv{%q$H|TonRQ?K=>S6Hcq&%C#EW?6Ts>eZP7> z02rcQK`?{@Tn?W?N^iCyUUgE2gCvrlIZz7W9xXMhy~7NBd10M7kTg7Bu{*0^lk{IJ zsmUSCYsdq!=^6pB_7!ZVW=ShUzxO42^5}~LR%<<;ofsIL;_9EjcpjGg_thtCJ|C6} zld1}PdhLO}i8&;N=Ebk~r@b6J@Q6Z;ogSf;aK}lH&&6z@d}mA;wv!23Q=xUbdI4V& z1nsw$5`gYcV~N0eL|IXd10(bIMJM;nwo$E)zUSXAjvjS$4JKQ5&Rr+w|7#)E4w751 zA6p1~+@vttoVfC*%J{h9mEvd)!J`IW=g9db285gjzA(EmF`>iwr~vY)HF`l;O)Wum zh4EX^qZl3=#b66*h*?b*+EWhH_wa`ww88jF`jKHH{HsKd8`~=;%M%CGL~zMO;#m53eOM1Z-})Tq2>=3h2Td*Gc}(WDOj$uCpvf8JTGl7 zbGc{qi)SVm(U*)p# zNy;61d*~9+zbx=jA!_nj_01QKu#GjY8$6$&7EVgM;Lz;Sov}S?Z|vdfW@gZo#^TZD z7Ht~k_Q;&2;mP`5HgJ|okJz0!N?UygW;nv}d@}#Nb^KHyGrkT^3-!vOwFgnu2?T_~ zl4fhqC2Ot;|N8H+AJ*!H^{4^PL7{q>10k%!;8+DktBU}SsbN?)%3;j1y3v#$dQPv@ z=<&Ry)N!mIMf%iItx6=C!(4oEub(y(xawirJw_SBJi8;lN5Owb#`11R3uCtSSm}N& z*4MR;*lhBYM=GtC3#&Hsjlezw>{Rw`iC@>=wf3C!t>48&@x2V%FnvltsiVr_wune}G$(q4TA#^KZ%lKw zK@GP7_8dP@u9jP)A}`>0G?0KieB{&DVuS7YNo-m2r~^Xda?G7)SFP4HbG$CSyH&io zWZX6#@Ix!1WP=hZ^6&G6gi=k;SZoXyB`48<<##BTsF7+@24LxkR9b-Bt5+>Merc5c zTM^^*RW>peRngmo_UNgz+S^z84|7kBF?(g1d&~SemeN*k*Qs{<_0^k}aEC03Ud?L8 z9>qvaTq2g)PA5??A4mYAXp3dvD8SkLmx6Nj9Sr*KO&hh%Q z8P)+4lAZnBcab;9KKF;x8@(WHFdvrFutPxf$R?USH-mE4`M}+f5*zuYGLv0nr!acA zFKsd(6*4OKh24x~($AUC>n}8zc!)oN< zR=v+bnrYB%&>39ek|p5T?@x!VkmbU+(0yz|gEVQ%OR3+I#J$pdeZoImT6uhkqKjbR3ty8}U+7+cUya7^DJVePtpev-dXx#?-$q z6HY z`+|K>1b-JDC~!Z)1w{3&{ytPv6`VgjgKyfkWaQVG*ym6ch!9QJF1y8f=(6c4R z&@aw573|jg(LRJzJH~|I6EwLpZ6{qtE0c?r)!owGWctxHMnYnPO-zgqT6 z0ox#ThHF2a)c=c4lp(?1g&2=6N?$jOoj<+fZrG#Rk;?#aJJaf0ci`r~g<{Li1&~>| z@uHGuY;a3HFFWsx$ptqO&3f40sPuLb5tR8}-Ct)5d&s&T@LlPD1|yfS+!Fe`V3Vo&}_|fl)r82(h*GVpo!!VCaz^ zWM0G|b64JS3d!3^?1RNLNfTCa)bR7j`0YioErt@-D)kr_$`9Rn+K4n)zZsQ?M*X%* z|B0)-nkS9fUeutDqA7hpSFd+fZXhi`3;f;GK_77SVzGEwhtE4h`zoa^XW?ZTA`vyp zz(zAdH-?^ZLuu|Vx7TshO7@(_3wb$XE=Y|v<8Evseu5Ik`s$SDXH&XWOiFQh(5LT! zO$^ZS0h?IGm3a|~66-Z@$3KLpWmRFLMm*M(?1`O3(U*jablc|v6!C5K;Mpc#=HgB} z_*cSn+e6humJRrojEX&{YzpnVWVpT0&DWdQ%Z0Ss5?V?Sao6#3xmZ#$WpL5pV^Bk6 zDF)L4o>VgvuU%OW|AyEVo^SG|U1o2lZHut6)x(_h^6-qjH{%W?7 zZY_pR8(e`<YYRdgfn881_DJw>UNt^R7t5 zf7d^$_V_ulvG-vObQhLygIPvzQt{MfQdDktmO|PjzopX4fH4ck3H>NHuip-3;4(t# z%7uHZTpqhja(eSnN<6FZm7787Ydwv2q(%qY(_KZ~jw~Z(#+Q4O8bt=^-01^W*B;6T zJr`$uX=vLXy`9=Vi}}VeB0i$`dt)1lxyz=Vys(!b)a!;Oc75*Q_|5=r{kIsB)8mhnLzWw4w6&$ill$Nuo3sS#1-DwOlt{O$JC8c}l=+Wi z;uSApsJX%CFUxG-PAD|jA!t(LV8LtyA;SJ$xvYJ^57qnuw8v7A{%4uR(WC=Gaajo_ zuT0ylBbiQCf?m8u6k(&~dEZ?902KQ19|*-l7*}di`yd~He$62FM}yP_r$Q^*wWmD_ zsg?_sS$T?huS5(=C1#%vXQZT@aG=guVA0Zg*sk_furQhkw9c{G-ZQ`PSg7_LIuFD7 zI%N(be2`GQtl-LY0H_BAAo;~!io zu0Hxv-&IQnzB3pZ*>ouZKJW|ly*yeh;%(2g4Z%l?Gf9{RjjoKDL<%N|@?rO|4!@>} zg35nt8o{|L-4@VN^=y9Sz|!c=9G{7q;O?%@|Cq!^9$Ly$u)bNcv@^x)^Hrq*4e~R2 z)^DQC$X+DqodVUn3p`E9Zm7}Usr&)+qe1G?@SzXbG^EuykA1j~g{g`AZ@mDcABB-8 zEvw)Lz;aO-U=vpehHjaxE&o!LxVP;W5Vr%V_Q&Y%%Mvm`3?(|fjoc36YB2Sp`4B#~ zyHkmQ1+IovdHe4o_LX_)>y*tk2dMc~oPTWCM9DxxI(Q=){v*uvh_pf8JC3`s`(wW* z-{*0j7*EN3hCzf2?kvsb%-a|m&r~jfD=9N3p`^rltRKVs*Xjc`(bY3?S2M>_v4h&W zG%~aqDY)a5vog2rpRWEW`bju8Lt(Pjxhu-3 zB2Wsp{1z=m+A=~%-Qd@231!)g82B0a#a;`9p%fKNC@zr1_tuGxQ<7J z%ftv|_Q~D92|`m+mKv8D=u{xd^o`%ujGD0ZN&?It!3<=aL%dL1EKX92^4U4DYrQ8v zQ!|RO*XHl>C2N%2I$_O~`3I~@e2fzP*+b7g=;k3)im=kl`pJa9bf91p+ZA^w#Vieg`2tua1ciK~hF23hgcyKkgO#kZ{(PmtGoX04l ztr8S?yOO(4`ycU>juO1M;nDDa72E$WSnX7FA-O19zJp4+t4s~WvSOys^mMRL? zU!b+LV$(T%uBKYL(%gxZW?NNj;N0R{^2+I=9%)AV52qZM9^}LBE*DS5O{0&UzG72e z%(b?2noD3acbSrLTZ64%u8(#GU~6Wf>G6*OWZo``S*cb;jyDcej{>5n7`lF<)|-eI zoPLjbLOd=}7Zn%DlG34%iMhn^62KY6RP}lx^XQ#Nm`V_TUJ}>gMII_G&Nxl5R2(1L z=A1!A2zeCj=Cx?K@nz=)D+3rM}ko*@xDh;IY;EYCrSX zAHQL`Kqao?ut+0C<6nD}bX>pjnN&+v#<{J595_+;vtraP_{$sBvbIv*e%zDOuWqwlS}pKCNGCzQ`O)0DR7rWOj|{pQShER;t6&qn3DGsALgR5E`mPKRBdh`RJ4f-F z2Wt6k8N$avv-uxtc+11kk_4t9Yl=EWZB>aITbgOY>(b+Y55nNDKZ+v)S`AOYdSi@z z>0?BI-}$$dyq&Kd=T<1bXwu8LlCVaE!KL(7c4#qLW^1yBmOX@I)vK%L(Nk2s^ARo~ zhV-P=TkM7N|AK}-H)!oMgx6YM%=z!u@?lGI?;vabhg;qJkcatxidS+_pwKlGdoSuU zUIz{OENMMTq76Kp75xReKfFuWJJ<}B=`CJgFPbe4X7LjRgAbFa5_Ac~6(h}2b50v9 zB%7PS0xe=AN^8bqDEHAnHxBw};6r~g9tP~MU&ttrY7=o|<42H;%MW-?V%xo~3I1=M z%laB-v7`!;yuoQ>7ohPV9c(k-`hx*^x!tGx$-?`jQr= zWQyhCW87p>`S#JotAd;!!%}mWO-+X(BzpE3GfEKtJ#6|;cHk4~U`!8j`Y4=W_c7noQ=&m4^^#}!irD#M>#|8B<&?rMl*r?+zK#`c-%CZM}8 z7wEsWDyG|r8pBZ4&5kW1f{+A=8-W~xxdW)N0Esk|d?XFOks1MZhDv#Gz8T5090#$+ z?%|1WO%%+-$iVH-L_bNdA$s|_ZZFmUk{bM_e|Z$8h9HB-C3Qu#{;o~$yy?$a{;K*YxAeF${;`ifkBPLJ3LhH-cWQ6ExP3Hl z9O_bb{%`WK?1wy~YK;Q81%7tIuV>ft$CQo^M%6iEjkGdjLTPBE4Up1AMVCWAkvKxi za=(tWVf(5G5aZ|^g|9`JSc=s>`5AX$xVlC1=DX0vQX^^m-IV*4$W6F?a2amMb~N%< z8UM|(OtF%XHNztaZT&8e0oh``4(A@X=Ic z>3#e!S=?>Z$O~D|TV(McjkU2~Mu)@snBO5JTSeqx_}1yJqB^8=#i^?H2MH)GgT$n= z(U`>$e%zi?7uU_439!dP1VJz#bywQ9NXm(Z7cA}XUzUgeP*y<*#c03|^@G>-e%A={ zG=-~_d&>sg$#NcL?4rj_#tg^SQ2x-nS0)>}jk~IkI!_tYP2C8@d3*A6&s*;0#GlZ|i&C5yddB~_EB$4kQEx)!O<=Rgj<%aknd#c(m;7yGNE;nd;F>t*{ zJ0PefuvOSvYCLvn)tuuh5-@<~zVDqKE3)skEEaobZgu9Lh&CK^m5H(z?|Xfx%=6xZ zlHj@s7S70oJY3pU?CdG0UQ@n)YTLEQ>DScjJ^N`>Tt?Gm_EcJSq9#^{UeI&e{V0E| zbfmIxUHN6~?^ZYIpCh-kSO1NAl2uyox>v?qec`Y}`Bqfi1t9kt$%D^sDd{+sKP#~n zdJb-GI6l)Z-Dvl~Xa%=U*Ol?h)dXT!x)kRR6w6#O0@Hxxcin)-px?MX-Fs1E1adSL z0<;RY3QJKns=+QwWgB!^__M`vnsIsP`}_CXL-Fa7dJF8!r}w?SaUM(QGBD;{LAh7g zgg3f3Nw>#()7^5+I&1e~EuAIOF=Q&Qu6VTzMNbJwSA5R8%q+h3ra7Kx3MnMvHs_@8*pQ@YVrgg4(5^(-mY>RfyiZ za~y`0*|-F3S{HOHMVU1unf}v`nxAVvk$j4W`!0VH{>cda;JW47Ab(yPxDeyMwN!9aNx^gbijqXs1f@GlaY(}Bd9l@M1#6Lv*z&fXO zp{a+=7Trq8n(W#~j9HakyazA+3tg2Xpr~Q@M>f^6OavyWD^o>TXPxLb&*?51KUSS9 z)92o^h~6q7Fup_1ibj3pmSKJmh^=P7yVwV3Pgh?GM%ed}<-(d)adNoa%qtjlfsT-YlS!7 zRZ^mjSjBzt9H0xhDC@GE9u(bn9+kk)62PWQ8%~GMLsXdxpac?c5ig#%+|CzXFg|oX z2qTw4*D_v5)iZa}}`L$a`g4T^~mIwP%s^Kj6UWm&7P%-por&4?@;}8KQmbvm&^ZEW_Ics50Z%)5$+&<4S!cGkWL zPNKXP;RT#G-L_?!puaffbi}Nrwu=&@YZ43{GJ>E8K)_|x zcZ(BjJm&XpaVLaLnThxq^9dNmSW-B0MGU#aX&zcavNU~);?WDYuS_G*ljguJiZNaL zlR=H8j3D12S>)}(#e89@rYs5*&l`_hPj3s~2X9wP>}%T$w7b(Gs}uS!);AR`d~N1R z<_4Vxpw14QE5rUPZILcwJ0bMHPX zwZuj^SC7EeyV(I!1Dp zjT2M0e1XocQKE|L^S5WJ1bkuVF|<7$Bok0?dbqfCgq-53GvBiQqUPRirF2d$BN(BS0p|xvdmT(ZVoVcD6FslY-$6Ue;PVL z_e&x>bN08xb%uk?(Ixf!s3ado+6jV-;pV!M_6L>B&Y{%*NztO~b1?-J3M4ABduLRze0Rd&% zsA0wcb&T^?;i?W!HKv06MA}yK(N_63)u=i76xdq!yiuqx;zmu1$vD zcwn@(@{rg25C4`r*r;7W6D-cT_@=>5@Lwoy zWs*T^W4^1{#V4HBwe5(3vktyJxydTsgyp@GJdQX~X<6EpIUuecQn_W?COMNWu_V4GI+-A{GD2nHG7Aftz&gXPC892xEFk#!aQSp5bvLp(xF-8QkM zmkwOtuL`MB*VDNIc4+Wyr2FKHTzEdZ&mGbjNXpCZcf7F*7w78X?QoBx0Y*0ImCZ(i zua>r``oi!)X1bOvrPYbTxcRx`JJoE_h9}Pa$%FS9B=jmabJ!_`Ra1g%4iT}uAWI-+ z8TpMgf4d$^O$cS3Z`<^hiCwU-A|2|RXsZC4BCb@ez7mZXu0VwxHx8(F zKDu&5MYDmjYqmj%R{#++@tO`+dyL~-VuBX=17h}fD8fQpoPFW)=IDa^-p(&v?4b-$ z{3kre-LBXa;}~UJmJv1Ti5f3?dK=#^YU`wyXV>HXQzhd-CrCv+2xL(;E%(XBE-xFd zO99ADVtCo~ocZrOO2w|=P&$(?o%rwfHXdchL!f`cN}P+O8fhLA$7`(yHHVT)BfdEs zu08U<&bJ`79TTk%9i2lBk6%(9qL{b~)fRbp6lJlWXzd@`bKeHXikca$t$i}K&s*}P zt3H?TI1qlCPyB`d`Dz6pCLJ(g{AbN(Eg=5r6%U^MrQknY{3Rwq^F}cbcn`fFgv-05 zLptU;1G*`6YDPqbK|D&M*V!~dH{>LhwA&(0?AhP1W6q~oJyc&<9u>KR&<_ZK}(hpGNw;p;LIkgMM#m`-~qgQpd;D^%!v-ImXS zr5ex@B91=cn-E9l#MvohE0D$-t6LOy6B4qmxYnUi8xKw&eWA)%oaPI5uw0|*Czc>* z*i#?wA}p|*u?Q`}hXv+ezgg0u?SKUA&kpIl<&WlUJAG5~G9X>y3{V!G?992aOdu1~ zd-fUC5wnvzBSDWXSo&RFOol;%GM(J7mD_QuOoa;-!eAT}QLI-#0IxSJ=Z;<-U*ZlE zltmNschO1C4oWo;RJ}t%M(|A--r+tqKSLky50Kh=CJMYWMerMgDY!j|%-@4e$U@4g z7NusXfVl8!kGc@WgAx6c>CnSI?M=}lr5x+3C2Ao*Po=bygg|` z*>J)*y5L{utjLHT%e1i_;|xl|TL`j`I@}5dVJ58At>-M)nJ1NhivWJ}-E0U)s~AF% z@4d8^+EPkfQpXL9?sG<6CPXO8@{sMDi#mvfibe+tHV^C78s!D=fA~r8dNOeXxnqv? zjI^L^(8v^o=9~1y5kpaI^Fp zTUR^&X*`o?|pIEcAa2KL2kPi@}8GpW#r@?8-hu05ZEi8wei-+< zP^VHkPVq@gXMEi}Hl3WMlPjlZ&hg3e3QOt~As%YkQMdDs*@>#K;)+QDHp@n2H}>&# zj3wvw1`FpLOo(6dc?R_Mf@3fGQPdR6Ad@BuFx#?h8#azL)!Y4E(S)oCj?DHM0@Or{ z;P%^FNyJNzta$||q&!!hFk*XYLPGhLiN5(bjw3i9=UI|mqJmOdY}KKJ2+G@i=M(bw zr{?qIVe9VQ82IF8v_(XvJmEO1P&V)KN8i&nh&eEX_^=yiHtsvz1M6hMX4#T^_I1U# zj>!ICb_?UR#U7`OCVm$+2c3o@&tKQrGdR8V>_e10i4yvFu1)+u8`8?U?^i#`EB^{8 z)K;d~$yGF-uGcjoA<$!>*kMdqe-nX&ndLB;{AsDmb%j*Vrx*VBJ{VCxhOqt%l>d7& zRxe<_TYkRCgAo{5Z%yuyiB)#VYDsWcMU!rpK>Y!t{ZSfs<{`3;h2EYJW6ybYjJ`%X zCjAMDb0}rQYbD&SCvU?sq{l7@Pz|t5W|K5DOk@ob2n9I}^VGYh-=Jkt+;;icBIDZh zfRL7}`eJSqyL{R&^8$mNhPjp^o2LYgYAp+NrtUxH&`-PGGdi!TxN@fusoaB_h1{X7 zkD5bbbZqxI|BpuLW$&vG9oVp%D_@_=N=}rB>hEbogyQra6 z{eunC?us2E`Z?yBXOT%wB^J{u-+NRi*3NlFxUSTE>1_mdR+T(GRxu(ziYsvUMWPAPfDI^!3|Dw zQJPxo9u+9}+OBt%3XkZ}JJe4D%IxAkOKUz4euZ#w4F2jIMRV6`NqM$3qJfpoYv*eL zPFb)qPt85jOBC(yw^OLM%>G&t<;LSR-zcdu($c8#F=urKN!uu6ef*KI+kDAfTzHXR zq0>7E0!Io>_EVu99;el(K-$}ztggCnbACT@X2vjW4Gb$kI>dW5yKnw&yfvn@_JvCi#1~x!kyu4oa!x03z*ZnLh8{J(;U9ey0)h|B&_8aZQKa`#1;+ z0y>nI7+5Gs3DPhG6_rv+=@7|DH`{1bVuXa$Km;VDy9N?N8j+3xqX&$RZEU|i@%g@< z-}Aio$9wzw=C*SRi|xeD(@(7=9ne0@;3T&$Azg9Jq=z-L`s)-j6GH|&lT zzzJHdmx(LiHeZu_<{Dce`z6i?)L{O=oNZNpHvIVgM}~uNRd8tj<({HM@yvF|-2teQ zh-t-5-SdM+ob;tg2hU2aig__bF#P@W2yR|4J@|ykJxMQ~(QdcHQ7v=!acMTRkd~v# z(xh&n8_+Rp=MgM-yGH*Y!Z&9bb!2=;GZOc*OmF+u(8}^e#IolE?o0QT(|zMhL|?~` zhNw>93-za4g{Cw9EkbM3|2NXLuK&-xA5bc&lQlfidR)^H@c%ZG(-r8J>KHZSe(%8Au|F!vfuO4;b`pd5AUUo`NT?~%2ko5VP zK3~MIL5~_s&yd=f1Z3yzO1q}6OD%GSo@v|OHH!E9_f5KL_$O^D zu4`Q7tg|h}E0!R~t!teOY+hD!UzYA$XfQ+3BuNdr{oid$TSC)d1Sr$$n7xyy-@9B=Hc@LcYdimrD4V2OujvV_w{N$BZj zA^cr5NBX#GLV8(wa&Kh8;68Gmuj{^nj*%v)ofleW_?e%8#{wz*9P zq5O|Usn(mqqq=VYM#YkUqT-SAdY=Vp|H$J1m2{0}*R=)qiE1!@CfV?Cpq{zd)|Lk&A0X0di1;dT3|>!gMR8N-F1IYE%lk`_U(f3+YrMXs1*!Z{eP_5Hj{*}@r z);rNDn=7-X7=1MP&@?ml_U1T~*lVgUw?RCvJ)7$vex|h8Iipsym>6`wIq|#JnzxHa zhEat=B4uqrJXE@%tJ4}CS(D{-v=20y1IbJfv9O=t2Y3S?t@OrE4Lb=%-V>z_vSpIQ z&A1@FAmoNF?U7cE3&{a<>Fs*74daGO)S<1vp*Mvr4XF~$BWoC!B6Y2p&dL-vinmLK zwY7uZz~9(u(fJ+kFW?_Ps5i5+y#B1K_71n@)`x@jJ&_~}U`$JjU&Hfz=-v#nAl1P^ z8qLl8BYKyYUIesnVABxD7%}+5N}Tzr!UM7DTPq`S_t9wIDqI3y8pn!yc-Y$g{L=2k zUKhbSUTIYt{`MMBr~G;79|(4odiFQ!%cB8pcGm)1X7j>E!);j*p2O!6$ ze_M8)nQj}G{q$ER38fve2;h&mOkA*)k))D1$|NDoJN(@YtMLM?83bAa056LB8y&?F zc+XDW8nSo(NCibxYC+%vR?kz6ezwF#VjPn;NzkA``h7~y^WixKTy00Fp zQ%+E-?Py|epo1Khrt3w&%R*qhM%jzAUXKle-CgPhxzWG*f~ zVEh@fI_0Z1wJ@&cc&(jR56n^9!HT90r zxT2nlgsMH*Yp62row0=Wo39d4$n;c2rDoBQTfOR2BF3EfNTRlzS@AUl^KtCENuIBW?MrVv<$5L?P~4KoYSy|&cu zw)~Cxx~^mwMHu1wZmN-1mKb%1WgMFrL6sxy)M&iiPfbPhYM51us0&pZSI#$l78U!; z-PeP;kmZSQ+)U!1L!XN?S_dHO!1Am22B|%mJZ>;?X5p!A1{3|Ksg%BgbLc~>*otOU zuVjG!r0$n4?cXS<$c+*`Hd_#X-@m4e+w$%go@kw6U(d+U$^-jmCIYQAi|Bgy1)hPa zLp#5=ts0a*Zb}!5f>3{;;e-ces;1p&RR^y4wwQje?&_m4Sp|H9h3&a?SQyx6&HQwG zUi^pEkTighgRCn2`6pN4DDJ-v!9vGzuyf#W3Ymi(OH)ksfI4-c?Ayc?E{a6QZ{nLK zMv@3>!9LBoQ4R+fvC}s0n-}?B#A?EpX(znusQ4$oSwNv$~x-QjM)RQ=!{k?e_4ykw5xTvb`K!!%%O< z=?lXny%Eb-wFEu;!v!b%B5B^=<*5E`^YZc5Fx5wf#>@tPn6OHxc1+w{IwyCO-~Bcx z-o&=n#0{#=(fY+ux9YYRd%4GTm(x}nRU*`kW9P1@7$IGhyZ88p0wy`Az$egf{~kh{ za@8}ow{~a5u0k{AA~)ZSM<%yBoHWIkN9(P(4=0JQ3WCgx%#*yO6CVzvhGu4y%m*O; zWeM{bs%@El-`QVENuuuU7lE>OmoB6}_-L~2;>+89Gedb2JN)p_hkDe#M99``$Xr7ck1OcM1|hzvrr0=eV(JD^7Q2s(Ss}%z8u3#?hHq!`C7Ec+bfQ5 z1LlU=?-^nz@2yr;U+)_Za4Z`G5^D*Jqd#=)@jEZej_`+cwPcm|3R}lkr2fmUmN~1#CJaX*Qx1e0a5|t{uIUyyLDg-drmidau$ZYwAzo zC@xNg2NwLa?q`TSQ@u_DpO!NB8OL8>lverhMfiKyxYoy>bg|FO zvRR5IokzLPXb&=>IR9X8LlzVLf*Ig*yU!wmseDa~&>w1#cMLA>X{MAeItqN_%yShXj%99G zGH`6TN`xccJcg>aKfr1(8XeO%w%oXC^OQqM&p~O(V0=;J6Qdx-%AqD#Xrk}Ixy4ih zo)>Zn3sszxr@gtNtQ&z{`<)=OwDzy=#ijr0UL38aBOnYTP==!jZn~2$!5!z*IRhUo}SrS%(FAlui+7vd>lT@z{C~wk>4~inu-x2P~y?!bN*f` z>URaM*!IZNthZde~TKk}u*I{aocYn9tt3>l26T`0|RmR&-*M+lQ ztY27hyAi57l&AMBD_ON!hg*t7|L3wP00YunQ6OA&_Y zan2t+sQHD?wLwQ}El0guePRWB+Iw^jTPS>8aA-HcxIc+i%nc7c9(|?%c*Fc(HN@-x z%26$>_>)#V@*5dTJ||nNXU@dFrnoj;)(aCn)P8n_N!>tOm~WDiqTtzjm3BtAbcMbv z2Fl_~<#WaJ@#|#C_dh~6b|*a|gC91?1xyvby;iTF2(P`jqf8|fH8dHVIe$6s%Zp@H z#mvqGYwD`GOQEv7{Qk#wYFyBsYnl@x5EQq?pzyu+GiT`9bbw)JiI z8Wc8DUrv{~UCumO{!2BqnA1b}$=}3_bMIKRpS7~dYsaY{)_rVwbJG?t9;@3RZ)emeJ6O){B`{xG zUj@qSTv&aQ8mnI8)W0Nr^U#O?(Pu^F5;oT>n7SK270P0X2K4~5c%4dm)aDE>m-OK^ zk1^&3VXJlBIfqtv54#Teh)A5uqwW3Y^cOa#kYZ8spJjN;GbH(lOmmJVC6Z6^Q)rg- zMOrGBWn~75Q-5)(izID-#=U47;jiIOp-U^5zuP_WVky~S(lg-H(2Qq(D!QG2cIB#P z5>IMeC`%QuPrh~gE76d*LT!k4lo}~fD3#fSb)4#S?{GM13eFXMwoU(OEQKxgGXI$7 zry$R~Vt>SyKV{149PP64W6w0=ru3F`CKxfN$0$7Mz|B@J!8ik=jffb?q3W){(eB(j zjcKwUie|}9q`w5%+pgx_tdMGM>zJdhnA|lVgU&NO_uu-?S$}PM=@Xq>kLfY_CGDcM zYsSZyB`5)i*NMFhzQ&9b!Qi*CaO!>YbCjX$x1Mn;F3HS67W&eT&+J<147wIhiZ@^B zI3y3*-g4CzFriAcaro5Fg>)_h@XJq2l!^yNF4R9)^ZA65VCHb^PkHwdm9zlAaHj3y za-FY_4|5%(5K&0uC2W^oao@e1{t~-QIXP=9?<_D%VR%Gv(UWOieZ0QD7&pr-T#zvI zbH&9$-4DRgdeGwXMjp#dw^^>ne@b))yh zY7@uvjpSJLUTU*jtz(9i{qZs|uXos&Q9w$4s%7A8YA#qj;@T$er1mYz+&4UL z3jegk)b`KV-X7PEFmZO(ZArd+mwfyuT=pChYw^N+Y!N{*Z?^&NXw5aVxRt)Ps3Irz zbrJK`zlp_h@Om8TSPTDB<)movCG{f%`YoEFpGiIl9K2r4u_}hGVsgZ$jXXytp#?*Oj}d0Ai`rHVvRXAyvIKLVx83ff zPL_>^HyK!+ATB(1vjn5CLUC*=m29^3D7xbC4N4kxs9C&Z!vB+(hS%GriH7M7%_QTU zKF5N`K+pTXeDf`F-=tfu=gc;Wwk-S2KKZ(z=Z^rQ%3T(dMITs#pt>L` zQCUH_gJSP$>0xKlA)}pu0WlP73X{XrJsTR+Xl4%&V3*DJxr&`yrl7ASC#lrCcW2~& zd5V~XjmxHZ1x|%uF0G-@B8~A)mfSp%v$>reQ$bg9vo5jS_u-HGVVKSw!MA6ldf$3{ zYA_{$kFF_Y6S&%iW@}ed)G^Or`Xb0)C#a}V~qabRt6f~q@!DvK`C(5py~+{>12BrD3W#Fd_TPikcyi&{H=bi9sO<{t6>`cITGOwY z)0%$^2rMi5_v}g0er2* z2(wh{;l2+vz4-K}DL&rV@r*%RdJbG<5D#NUURSxCmw%fzE9dCy0ngw1fo1+Vl?o2l zYl1Yxp~tk(H=b==8{lfb*9)R! zx#7Xn3(W~}4+G-C;cYVrn0xqISu0-X)YHJ|SMl2mZ5>pXX*Op;V3z*RbmsSTk|QWY zm!qFJAs_LzqhJVC4x~K-7+)ssL=@XWFjoXv$-nF6S=v7;#OjT4QN$h1!w!g z%Oc%bP#Ec}O>B$O#1GD04t5^jhN_``w{=!bQ36gDO(m`Nb=f99r!4UNdiTkedTICH z50R=TV4Kf2Iwhh?`%0pvACCz;o+o#bB|RH@{>)Qmez*m5HPD zJhNaU_cqe2jZVHGN<2K2~P^?sB#Z`zKZ!EIr3$`^nK< zKfSG7?Xa%^YHqKAuf$3&AuXtsMPT>y->${)P>vtz@N^nxcr)(#)xJ9~`{N|MW#hjM zzlJ_d?zi&%*UT+FFfyHb0Y-)yz&(;a0SVuxe7sx$UDz~!#loS&hmK?Ue-G@RvR zl=a*Aj~+Dk@sie|&02*bfBVw|=7=??E;RFj6Gc6LJ?88rV<@fJ(%zgCW zm@&2H{=)=o84e^&bSb9Dis=9tvQp*e5IoO^a^^SYR&T$0pBRl%KUl>V`xoc1$AXcl z-HCWBx3o~DzYZY24f&*_2nPZ`*B9fVk$<+$TWJ6Log-JxE8Trj=%#&>@*-oC)tcl=YK z<)TYU_|6K0dOA55M3g@#O^`dV3d7qUcQPk0WLTq_HJ23(gF_{{^*2h{c6mSD7foX> z$hkDVgr&8f&zrMESVTOJyWw8?3R1&LU^u^C)Ly+B!l|+Lk|ghmu(mE?w~?S;k7HY- zSC00fEE2m!Hs#1pKbq0x*Hn8jC5mBh&Te9!O2F~ux%SUSJD;RnWPe+k*PZGdE!qXr zory?@-XEv!esO79n0_cqvuCrvcCFbs<%2iSBcn?JrL26T(hJ$Bgc9w6T)4c_T|s5b z*YExm*NLn9_lR81KRm?#vp@sGNGaE_K4?k=Hf1hFfBXgY zRP}aB*nEssvkj#eFbkZ$sY+drs$?y1`*5Nu%z9nosU<5@pZc3ys@gmfHF*hCeSNl8 zX{NxAC90Ov?W_8iVkHGKPMiD<%ZI2}<)0+c2i9EpZ7*nS%!_GRliQ`!msp6p;a*$b z$Eq1{RAabt0ww!w6qD1-1~b>3S;0J52dV@HWaB$w!$-;nI>c_#e+?AvWG3vz7cCMyax2AI(VgoauXF`^I= zy3wNZ$vSV(voSFax*96O^SP~Q!SpGx0x3sKN9T^E5N7_*;H}w|`ZVcvRVt+`3)6SM z4a@i&{}P@N4k+pOt$BFFyZB1y*!B=G!)c_w7vvC9201-p)mDBEPTZ*L)tNLW1YTT) z7SVMl9bq2DY+=am;-q{fqXP3Lyj!u3;MDc4y6)uX>G#f!{7xnMm+y09>EdfTL-)!A zvle_g0P}}5%LkC?r_a-I!E*_Hqs>OZFD$)xjd6y43?>v&4(+%V{2%iNVg*X|$nHmo zx-;jjp$&ID%S;IJNFECM(Xsz{dbCx;A*FFp8CY}v9jAT%YAPA4bp3nb(#c=;FiPZG;NjH!Z+v7WlEAha7x}*qWRQ1k{DNJPCZ{TnFyKz@_Yo|c z^B>q*JEgh%Cj(?LWQ*MI6*jE@9#rTb^wBm`Df_3liS?ZNv77&Jy-I@W*m)7~Wsu?D zP=~$N8?Vo|}dfKfi2O>dx*_pX;G6_e{B5fnj>m~>cj#tJn438dLJKOsi z$JRQ`c1TTTy^c+e@$0tZrJH=OWfBwl8ihQQA+O>&9-r9jXs1K6Ace<8=k}raXWIiO z`>CA||4JX`jps>60fvzds5-e)<8}Jy8z_4|-^@0h7qXL!3ZABIYI?k6_yS$y^NWcBh=d zb~kjadUAeCqo#0Qc)kw(-n>*sz?gPlymOskR649|;=`Wz&m>v1!S zuNiekmZjc3vAx3sWMHd=zw&F33V98V3|SyrTJ&*G{N)&%92;7Dl1_+8~%@(-oAvZM+eoET8;tBUO_-|mSVQ-nJdojnvYPzm_JMLy*^5A#|^*KZZ% zy1SCP6ek7QW}lF+EUG5xws+}+}?QLq7Nsp!?qA9Uc~<=U;b|vPW;$Z z$79XJQ9}S-aiprBp>}DLkQivaqq>2ZE2Vzso(>QEX1h$6rM|5wj2(>B4ZM2nvH^TR z;}f_1P#mnUQ+sQz52`k^PcxcvXL@SLFOqkDDEo2Q8XdYJb3Gue*2n<*s>FenR0O|6eW|%rc|by@t?|P9 zz|=BC4QR}eUQSYRuxYzoi)(2ax^yA?-8!Q0nSHEx5l#Xq`o70T0+jL0)uZne72p?L zysIFp_`@1!f5JZgLbF>@XlK!wUeICxI){!fl1-#pU(@x{Ts1Fh!jT=sJz6K z{FbIhq2IJ z^$OFOS{rjQdqigk;|VUw(1wH@znf!A)F%`*oKy*pNZAyq99Aq}Zn*wBM24n_tv&M*T-b-ko@xRTQ+gT z1RxZj0P$(i7QM?D2UUN(L(aq(p zcTynS2VN=bRWW;1dcS$xzd9o~Q{QhkXRg7*eNJ5>t375qoFcMi&I20*sAGVHy>)6O z(XF=T23%!z=BX?1c}Oqv+B#h|8@T5H)V)1I%zSKgvAbw53x_=+62cT@+=8{ton2`; zgw|6yDlA(i(fSx+)Y9v7BOmR=gEfNwjp{PvHjiWOe0h^EZiXe6S*Ec<=nnq_hpS`t zWz*1Q4xSEm0UK)0&8#GUWM%#|pXg!Gh7mLgUSVxgj z!=v{IFCxZTHUqGGg6VfjDjQ;FT0Yh%!RGg1hci&UXSE_IgV?i8vP&Bsd1k@Bv>&>$ zM|O`T|JS&Ia)^9@>=$6rN~XF$vKMx^tA})&^96wvb(uX5nWI_O+af*Aa;_=U7xM|_ z>;@;0`c#g4*!y*r-j(tttX2-YoKc$&hC)lHO={?{KltkT3isb0SrSU=Qig7pn4m*r zCXR6RkpQ-Xj^3QWKw(wwz~?_#Hqgz94?83w!=C`Uk1UigDbc(Q3^IFsF$^*tK^$hs zD1f%QohBl4W(;aMY%Xqdy%~VtB*8 zl5SA#WAGb=$}%Yt(zE4@j~j-n%7kIL2skCS8nMMity}3l*ak%&VZWVX>(@yHS}-gg zV*yKi=sSq3e1=>gX2Edf1MAom528~VkH^^w5ZgoQ-R_o}Tn&5|7<>PL7=eK-qYfvh zco0vn{-3AKzxW0~IRT~~K&M2^<`(t6of6Joz-jEh{?Q6u%$XI-xFG};`Qg;{N995C zu`P^ur4LXlgj}krqRZ0HG65HDKH;sABoKQz>;S>V)poTRd7y+}PXaB|`cw$}q3_P4 znT6D(qAliH^1Xm#p%tG2k?`&*=8*Hi@As5B4YNy*EnCJ2>K;7MEgN9dPUFzAUQ_md ztWzLW25{1vPek47qVhduf7cj5W(9bC#_>cBe`O}e&rMmyVllPjI2tyluyUXpVJbZx zdG1xMAWJaEEvf>-R(u;D9|iIBm3qThuzpwjZD{+-*rgnx)o0FERmqF-XH!5{9lbcmlrV z23hWzG7|=^5W2xT0GSp75VxsXZGviqJgarDb{cQh)J~a%9#K^o<8Z^REdgW@|KGo3mtu+ z>7!xd(W2f9IE?+XV7H~Sox5jfe5(o1<6>n` zK0wo6aM84QZ00j6xj$B1juXr~slOgp0^DS>YIFQm5P3~M+^m9?pLa`NNf$;gb~s+_ z_H(9?L%CjB2JBk7T*Bzj{6)wbh>Pyi?8F;FKI1&~fvbBV5+5f#&}(zDF>I) zLST!!VYLDjhYVZ;Lh@ZP)XBrtW@g`7xTWkE5hHgfHjX%lmzDnrnjbkGf*eBOu;^_^ zq9Ig)vH&CsY$^2$Xg`W!#_-&Qrg}{PP9_GVqL8%!%4X*jZ`rgbVqEOuWWdC!%YShm zZwUwfNC2AJ4u=C`q##hsR3PUHooB;N36Y<@%!x0sJ_%@UTdsG1t$kmZu-{QHH1IW+ zPmfoLR zvYrKbWtX|N>X}G752-xI4n)zqBMof=iK9OLYXQb|cu@pX&|aupsO2-l(ho89>CG0D z+zxzI`7q#-1uu0lN=l_kE1=*A1k;ApQ zXPkY7(Dc}?u0{{;Vf7+Kjx3SGHvfmwCDR{|4UlAGV5~apg`3eQ#HMhYJMh;cbO$R9 z95WUoTXNi?`bdn0Rw9QgMXJz(6X8d+o2f#&pN;WkEK1_3Aenu|OAY(LTB~(s42b63 z(R8KO8tA}v%8h@8g6-(^r>uo%C=azvBF21s&c`t14mlDxMPKg!u_TMf@Xv)nZNDOw z##(ZSR8nh7{y{~4d+jr?&FlasBM~`F_YP>p`wlbDQlU5*wG`ga0Bpy-Yv%C24s z&5dk6qXt8>qZ|%%&?1n5{*{)^#}e~uz}3iz>4=O=GpX28KI_%U@AYbd-%-3x^`jiX zXlu<(rFY%fNxIwzN(@SM`j{J|j$CJ)?nhi9fm=EQa7dK$U(cyBytw{(Vmo+V$?S+b zCb?glSW`WIdzzA5y0C<1D~K zxZ-Jck4d|NzjU7?6qmZj`^u5AOQddF% zhrxJiq~U=YDGL=g4i~54a9xo7M}1O(HyP7E&)3KK7?}NueKQal#d!!lRvI5_=36u! zz$KxD>SMrV(5gx;-|c%AV{q9^u93En)K~Z7P$1GkYbpD0{@D^@A_jor=^M16Cj7V% zFl8t!XaFfiR3M6_zg?Mx$(a{lw4A(3JO^=;*Q;h_QjtXk`+)qBi_+_nis&4%q3+wN z&w0r8arfcmUicJZa^gpd8*vT#ORlO?3H9FVC;m#$akiH4uil>+*@R>|JEg9Llqe6_*i{Q#7z%vpJIZcxo)g?z%~@b)v(pc^+b-QK z#3 zmr4>O3D{|we~-2QUw6^i8@V3(mBvrOE5Z~3hgo>y6ZtpDNsb$*D$!5W8DfpRJlUdKjNKAnF;aYIU;{m z;^dZF6&JZ+JNq^1JORVjr%M%55sW*2qEhOx7u;%Ym>Qx`HHNSQd#t!pG(T& z!@mHdGTYYGw2GT5t`$YY=rL^fiYb;$aLAU86`c_qW;!d7cP1`aYIO|nwx-Y;^#~O7 z>__t2cgK=%=ZcU!zOnNhrN|H?G+Cyw>h}6la%dBUy>YN3Bf=4Eb6i!c4mRY> z_PZ9C11RPkF=}(uJJaZUMsU}(Os@dCD_Y}o<<7_V5Nl%27O@%+%8a){Fd(2UV*3}C z(`Hh7OPI*}OB&-MidU)wf(Ot;tJX*Ar8;0W^qN}=ih4ZYkXv^Qemv)uKznTQNVLdk zq*BNhX=kCI&49T<-kkj9+g3l(Sk7~JaXh9X4P%OZ3|tGB;Uvos>a)=+-f-beH~v5g zvDnTH@>u;-gyPUCs^RAipCq!!*RfMnh5undm+ z1|L#f~t7JNy zkHK2$EQeotvil+P&1Iro*1p=i@D$(bI`fW)`=AHHARfLVZ#SEC;q_nue$Qy;gLM{1jyyL%Q-!t34X-`3G(=!{I<)3PvLCc&lxvDOjsk$Mox1y zTro0uR9a2k0=;0~q&L-`gWBF*9rGR z*B#A&Hd)-|>fk}0B7c?-W%&?u!41)~bodiWx)!VV`-lM*puDZQr9_VP`LGSh zDtKj)L?o%V_jq;BVx`H8xaRKKzv3w?vj8%E9*^zY?yGQnhkK2-{fOY0dsiJzTEVi$z5zfaxKjD+A zvt3_vUiba6ebiaGcC=jBFZ#Pepv< zXD}N5bG;)M^H*Wu->rUJC{XN~NjL0KlA;b5|e7;{ny_mJ-=K;h&J@{g9f>Vr~w zcT?V&v0io_mL#}&=jo7*Op1va$jL6Lt}^#CsCvV`WH#yKfzC&*{~R5n6kH#LK$;^% z`i+$Rbkt@6++3!UIn9;<^>hsR`52WFp3{HbwX#0qXC|+De;csZIMzAZE%v96+V1(K zc!qyHy)~2Tov9R9Lelpe;*;V#l9^W+eVdhQ)DQS6p}bE+n&qJ9awo((%lUsa4yM;C zYswXm@SKoHj=`b%dKDU7*AVlgJ_w4Du-}@@uj8!_A!zIp3%Gc}AmW<+$%xvA44Ppm z+s>sD?@|f@kNYpqPu)2S7TXQmQRgAkpSsaC;PcbO+|%9DizoXeOb5*TGA!rhR*Rd* ze9OXC^gUc3k*-;1$8d`IU)k=gK9#|}`I&tLL4oEc0+L$vn_RfaY_Ga}+tH5?kvr?k zAp`zmGwG0z;9l?uVN5a2i`8yQH0G$esxhRUa`0c185_aD#*mZ8P2Hf?;%OqKsy!CS zr)XE;7)6`gv15v_#>`^KissAQ=W@citX*LZO1>ECMuL)OG)TI(iqDDvEAUY)e@6cvj+v! zKLZS)lnfBi476|E^f}mqmCf4`ZCciI6({t(c+YMU_%N7tu~onS}MC7e=; zfP9PjnDqfA`yDSIh^_TW8`>HI0!HSEuO7?kn<0| z)VZVKv(icz5#bs4n-J}IXAJq_m~ zzC*`KF9Zw@t;&f2*V2pN?!KKEEpBBmn57X9c_wM(^21yhN~bC}M)Y!CSHibS9WP`|Y;KwkmArF<~<_N`p4 z`&r#2CBpEnzFMBMg%Tz8gW^E}pDAByk_5E40sA9HHe%;d^o!kCn8Yk$6^|IcXOqv0p#> zaO7k%*@XCg#Zg`p0dbWwaBs2K{lGXKahxF{F1JsS0=zf?_mo1cN=*(5@geMp#V!%9 z?L3sWbZjl9bUBnsHp{%3BX8pRx@&y|2g0AO%j7yvybW;KTYIg!ycgl%fnIv#+(+)5 zZ@MR!aO*`a*P|9Pxk2Qi{u{rtq0*xa`NB&<(dr3Iy79~jJ3%d$41gQ-CkZx6&r(e0 z9@(N`gP`OZV_C0^#)?Nn=sws?r^o&L`_B|egp7vrj?d(AM19u&pu~=K*HFJOmYW0< zBMn`^TZ(fsT?%dg*TW?$aVc&l@1!vME5p7yk51HWj>f0KjAl7MK7&LnU$f8T|1uPM zQp%8481!{%Lv`DsU4)JCGDn!t)0Xd}jC1$3FBht`>Fix=)G#zQdKZl7>Q`k;G2_``n0Meg-AuiWmdi@ESd*1rO*_L$ zH|MpiT||m;*Rw=7cruckc;|{6ME06vM@fe^m-qj=Z`>ltP9(&f?1H9D>Qaw0uyP79 z1#5t{bpzqfgFqth7L(nnBgsxx_f_~^g7(e+Ki+3D!j|l*@sAO zNX2H-Ih1;5-SH%fWscj*BIYLCITNMIUgv`-uMwytVcojJuIJ+>w7bJ#Moef~c3Ptw zxVP~2z@*Ss>MN> z)dCD{B#C4`BI4rVzhC*k9_R~&DhZ#RB4+A2^>%-?6@9D`DlK*Pyw>aO8Qv#!V?=xN za4pm2!sq}Tq=bKz;wy6h_5u61wQ2~W5THx$gw4e7qcSuP21WcZ zm}0U;0{Vr;rq3VcE{U`B)x5!Hl=}zysg2{z<_{&Kr(XVsvo@d;EliJhfuA@LCh|XP zJf*92y{4mdeTFjkXNv)xMZJR_nN_3EhYs#y<$Dlny#aeuDz{so~SgJF*1PIz$3P{%ynmYcUH)v z$i`E@9cenIx)*B-=ZeUEFdKZZcFfD|4id9aWRc+Fmjn_d>R_y93=}OElbg9oNKrER zRN_CNqTO=$n-QCEvG`hTAX3OkAI47G1btBMztM6NRsfL-%rvIzA*7mTSp+QqQ9w3S=|U#M zNpu~m%Yzfs3sf$L-9XfpGq*_>5DUmWPN>rEG&!tv_=ow26Cx>Ku-g9p7)eyT+p^#E zy4#w_0=k3zjs;`Yq=++xLGQ}PLtS6FpLWn&tZAR3r_#DJ6!$V5Nj~m|Zo*Aqf+Gr& zU_0{%zIz>&C=xEURi6@>+ z;!e@$<%1IjggEzhc?V3m)JavQjdcSwPt0sqxAm=yKl1a@XYvb|eLFgo?^mrl%VB>O6LVyjWxf+9Axae!Wm7+ z1li1-Oh<1T^y;FLG1KR9p-^8Lj~j+4l=N6J2mha)MLpM}!I?iv`?1I7xbtSb|B#9P zLF|QS8k-La=V`J}TO52~OMS41_@M z1b!}|rR?ota6-d;ytq~wwcR+GY}OhvB~5rdXPb`sP0WU(X5|x0_dlI034Zn27?W79 zPg}J@=(w$)rgwjq8~bg+dq7Ox$8K*Ql#+SLI{P!;@~AhUnRn>Kb66Pf?kAlwvGb1~ z{YU>lw%$B0$@Kdlo@$(?oT+I_v2vL<%?&dv7gWlovNS384K2ycQWH^eXIh*}6f#XM z7t%B{Q`|RHN<(s`-1h|%QbYnmL6G~oKi}W$d4Avd%=4cw{{X$N`#$Hqmvc@-q;$A< zA(zz2PS;UzqjHxJQQC@$;yK`NK=jK$6E1lhgxqBFQsy1{c@W==6ntKH+5xT2&nY$g zpmbsp>&u_DuZ!jw`Hzp>#e2F<=p{wx)8M~{ruLqxa?oOUl=BLLS77-A3sYUl9;XeT zZE5d3)sQNIl&m4yU`BmnLY#HiUz5S}!z{X$=fJ>$(c*s{R!*feV3z4fUk1RTI1*}gIa?f4V*(pY; zd?5@vHJrs8P`5Rok`JMaMda!fV}$w@A1Bq|*ICiO#PzxhNah`AJ7r!juGHO(;bd>I zEmnQNUDmK}kFjJRXL*akKoX!4DK}cqx)tZEaQaC$@v4tb04Q8I=O>Pvcy1Zj#da@5 zpI;gF#^hJ`uBDOL7n!~~;JUSTTz4a9ZKgL^cU!{X-Qe(KqsMNF_ggUS0z339Cp_Ue zjvo}c+(_oJ0yxM$rku5#K6WEi2W;_-dMJrtL;DT7Nc)GuyheN*-d6iM0p=M{$o%NHg)um1ApV}NY& zcqismmH65LmHLqNPK4{W~$%uCyFG(m}?VGIZfsrO%_%epL<`P_Z6lX zGo!HhyF(9PjlBT$)l^823czia;#!7@M;(`^!`87qQo42Wj^KQ2f*a)aTCX{2O8v#uY5%N{{A~n|~Gwtsq>JBLMoe>=S(uj30B2Pc(r7lT7A-&T*`m%LOY!Z@r z!vX<&P5G`vGN8u~Z2u{$%ofGXdQ}M>Ti9F`QcqD(*1rLrQaJ3>=Kq~*n)SRbjlJW- zP8rpnKkAXQ7)kPk%3c+CRq3d>BClLf{;TtP_hM3`uIh5y*2@Nx&y1SiZXyjrhd4FL zH#pnz=pk*D$d*ePK?S_QP9+GT1>a@qN_VR)ZcWb=n;Tvi%Eeff5OQwMw7GNT)%@DE zp=yGg)Q5M0(CEz3;3t_Y&saLl^zUC|T*|_R4CVfQ7)H}hNtp;gk%bx|-5y%bSvJdf z%+{0zXTua;>@qn*ZCQ@ zo})s8Yc2&greWog#l(YgRr}^3^qF>Gop#eiiKVFsz|(D{mHdqAw_ltegE?&CkK~%EcGr=Qk6xH;c!l z9P>NI7)#ya>DbhlEZiNb%lb!7)%^IcboJ25tXmnUsZ(@JG0FwElB*=%)t(OTYbOBk zT3c3>ikZ&QVRaM2p?FrM9f6+1Z;54KwlJdm4k4TrzE@f;6n(gQw728*bFTG@D*Ig5 zq6A@;E5GJs;W`2lkyu&f0lqX`m(?7VDBY}{xC~@6&vxo7s<*S8d1>lvysW~>Ye8L# z@eMr~eMRi4+=$)uFQTCZ0Z)3!Z8=lD0ipZS;bwHuNrs#F>_eI zcVFD3GTH6#=+Tr7WS~!JJYaeoKq3Lve_8+U!gzLmuFYHT=$e^qxDUg^UpGha_+ zXhI&Q`OxzcOkP2{%D-UhPrCEW%cr-vDqryqdXcBs@H|uAL;IaACY<(peQoYpv=drD z{KaBgbX+CNe435(v=5!w7O4I^uzNe^o_hHTG?{vwhFhy*!g0rJ)}bFoPe-=YN0c8W zaxqPLS@(iSs@LLjg&XU5RlZZ+Z4G9C#;vdx;c>&Da1elpWG`i#f4G(QIprC>OL5e# z$^5?hH8|loZMIS&p3!C2;(n$M04E770%` zsq1vqE$JyJ!AvR#CnV9`MsP-K$CV_?q3oEbR*C{5k)-xt&D9yfG5p&B$Sg3~7XQCl zjrXN(N{1nM#~ngLgM)=93_ezW8dIUX(NKOk$g)A{754u$PVM*Nl%&xPkDrxxYC@9j zGI&h%nqzQNqDmJ67K{9VT!2?H8sF2FoDUW@*GyQ|UPQ5&g_t{nuX3j3o3v|i-V%k* zV5N2ppuYWW1CBCFtG8W^5=07e`38|yFG40RoWOQFozsh{GEyF2pzqYkBGx<#>j6S~ z-XJ{fjp^L#`66j4s}OZXAp@_heIzD>jCtEpc+KOL?`{(apXK2fgok zU9Y(;DYkR7CMJ~}bWuVd7W4 z4o^7mc)-BjJF-`dL*4j(WMvD!`~0-=-#$OuDzbp(nfYzXD+EqR->cg}bhLw9hqDvN z<+5?64=mt|>cL^^hz@PqAM>g*l^`cNuFG(*d23+nLdSayYwIJRuew}of_yC|Z$dC5 za-;P&I<7lN7)mkYg912>G1>Y6SoH?*+v~rPVl?XephEckhwUj~pvANUT0q59)ceU& z)FC{IhxRaR8`lPY&`$C1a*?&{;Xt9tNwev*O$y5GJ*#uTEdefM?w`SA;+~SKV#vG> z16O@0_k3Xw-58S(Q@J6{Q__U|V0S|KX;7?2sZA=+)6jw9exo9a?Pnkp3>k;@1mana z@g6_eo$=&;UGje$m3K5w-%<6a?&5>oyUMr>-u^>$W7-MBl@Y_?-P@-lpG68W_4g>( zoRgnndk&~x(m*Xn_AFM*RHBp_&OeLY3%$R|mQC<)*tn`0>HL17lCblrRbAlQF(RvH z6!ZkT2&$92QorE(=g{*Fr%jf~iJBys0#oHJbQYHNksbZ`43r@R3R zurQC6Fyab~ZZoO;Pw(aX0tTA9vIa~UEsub|$+rjn6F%K01Tu>zB-M?!u}{<)x>Ltt zy{3-<70NN6($QTGQvR7T&@CSSqOWR%fwZ2-Vb=o;dVy=1QU>ZNrB9juv9fuVk`+2_ zIPvjZ9fmpwI!WuzTMeTlDgkf)m`^bHLpv&UG*Npoe8b35l=PZeBcr%}bptR>y- zV3f|i`rPjh(AHI=a@-_sx}VclN+(k8%NPBQ!1qF(V=O6ZMK&QxyGi>Pplp~s<#Qy| zKx1=Pg%7vhfv6Q9knQ{$L8%D}NV?5T^)H;dp_xrMSChGJF$$FXc0oY;X$d5c>{&O< z9anUL-Yv`QCAM=|p|B}L%Zna3lh|~zjK0<)H)te2S~Dya>(5_uli{C2#pPNO&c=1I<=t9|xa_IyKyD*K0QY})^~$9LJXq z+!XDQBXaClFwIZw>&jM#8>=6ove;WX4hl%m zW6;7FopjXW5MF14)Vr&cJA~hN=pHO@=gdw(<6IYRJK%IRM^Hoc2`|hmCyM(6I_??2 zshivo0tSF|%35W6;&{q4W}CF{gxV^Y_20xZsnR9mG8UVPNwEMg#w^TWpfYVWj~@q) zIBNb@`m6FJkPwlPHBOd4aF)e)6(J83P zCAX^RIF({8yxE}fvQ1Sha_(~&Wi_`K>fZEQ?ovcv!_N*H(3MExBwewy78UfAnyZoM zX~x|6JFjGA#N;?Rz^PchINs;S+1NElV>S`~yQOMPuQ4~_!#gF911VRlOa(?NG1xP{ zU3T!%^GAbNH?8fyN^tweNPW?9Fv?Z}Lip(QU90)nUoKpKLSmk!h-b!W+v&z^_4riIWCt%tk)q6H^)F;e~pG*JSg zh2N(Wt-D-vM+)i;#-7p}4sl{JDf$Lb79auCW?zcTr>4@nxRcWsTz4@&;ZOd@?JwHDny>`yUbG}?9< z2P`e}JuRuBD*X!-d@0n~)jM!As;8}-^*P0BjGq(faFkS{BbZ4PEh2n$6vfhx6IuA2 zv^N_5qr^4La#W8Y=ROc&=eCw3eDTGE>K4}|{2=g4wg~Zv6qhljPsu*bSG;$dOt=uq zp_aQ*Y?rFaYoUE)2BaajiiLYF%Zk-kh!_;>G3#DKf(ef|ey}wr#7=RrPiVqoTKiWA zud#^m{lq7}IT(=ql=hl6-WFnMIO0x@+Ju8cWOL2bdEZ=--|bFTlyEJx+|=9bOY`z% zt0GA!kH3g{Ug}z@=hgDHOU(k|lLF+8SUU7=#vE8EVZ7qPF8w*}J9H6eP1 zEV2r&)Y}v291eabIMPyD`H-Cv#-&BG-uN*ZR3MuHALm5F7}5@`%J8dW9`%z zF;%ev57sZB51SX^S73C<9n|rGWiENb<7w1fRADai`v@hr2}v`^(I%^jz{_vv6hV_$R!5}|1LVImUq2JSEpBbrKLNTe&{`Zm&;$Rs!nQJix)Ak zcnyg_1|qulK-I+6D1A_I4CT+k=^t|ASJ$9)&WYrSZ5JERQC z`?uu)n2)bpFrtgbO)`3bV@Bb|-U9f(UZse2qsF=iz}~on09Q@)9yKBcfso{k5ld?D zZ;~1B{BdDxa>-*BQ+GlbUoZ1_Il?rDn8vq$iNG%gZYUu5njt@YFZh|U1G%HZ>&lg@ zNk?6)JPK=qASay+;>-1yJ|mX><~B}Vcpz*1tFsPy)u{6V8eK__bgX>G<6taYk$2+e zQR1>F4_CK89Z1yRDe74b!x$l_2E9JBp{~fXgRuVb z45#6?QZ74r^&7BDcbf+MHDI%PU{BX^qt}^Lj(h7T48tYvbXXTpt_SarI6`|N5|v73 za$$4SU|Z3&9;BqZRR!BP`c+!Eca@22ikysDUnN3)5`jZ>d2#vu4|B_&naufCHgFUA z0=cj@lkYWJxQ!@^B?IDniQ((yx)pkK<=V_uG2kyuU3bbRvvFNxNp?&e641&8Xhpt~ z{}x?*wirw{-l)=_E%y87u>5AUllgl@!{fBASt|=Ro;l(9M^wHB0z1S*K30gDD~$}k8sKxGMUS$PRMw_ibhoLu91TFXe(CKh={>NR-Ee(djL$eNm9@-a zSa94>xqV~Xh)B?`ptXu|C|jzb=1n+i4w^-IBP592FQHvy4p>vS{!ER`H@uJy7#g4j z7v5coEe94hA6xx~Q-O$Tx)0E~t_sW!;F*+Ee!2b|l@P0r9l_P5?f4p{qSbAmc(tQu%?+km-5V&FV$Ey7>N;24L-f=|&DfbE z4uj{+4KiRI=QAS0mE6~|@=o;@=wiQC9JWV#r$_F~uuex74G79HJt!kH5fT3sdIRQW zmQhC{A-{&lbql;bf|V6+ zK`OoG+Ca!k8RH8)7@>T2!IP7~#w`e<1l447bsbUwj9zUG`&-}ZhAH_}-_v>}V64@v z=A~6ed*y*l1MYo03Kx{!2?u1qS>T|l^5+O#-Ff9r5O>Md4Tr^cXKEdM_3l@F3crI-fz2Ey zR#w2FKM!*T30G3H);+#rERi{NQ%b5`7hWl+Knoj3uV)W1U!#^M55qj1{ZpS)uB)Tg zm~97m1<9WF1|AW1!5y6mpn?hO^@y5R`)o=t?Iu6r+>KmETG(l`P7;=c1Bus(FY)BF zOgMcwxWRp?AefGWBp`n%Usn*ibudu{qkR*1T)c&VUB=j zy03t$8uaz$d507^j%#aU}gU-uW4ex0jAfQ2tC=j=ndY5GjsKfg9={khW2zoGA z?ljLC({olLm9N#zRZI9>9ePIHP+V*m4r*N#C5!K}Gtzb?f%Hl8YMGo9@#>3?0)|+0 zuMNN%MQSS`*r>c0q?u>H_m=RZT3N7&WQI>bLJT@P;iwPWb&tL;Y+(Cq%|xKJ6}%}C zS^`Y|yDBoTcxO{sa8Oo(bgS@-)e6|qO}n6a%R7#n|-RE*^j0L6w&((q2cD#7|W5W*2$qX-XK5m&0E)aL`R z83zd|ZeH+|nw-M=v$4)-0ilkt1~r^<82dc7GggMf>-oM1LXs`5K^2e;Ol?PWk(ZxW zfh_{}=Az}Uiem4QN{ODrgqMoX zGaIi?sP*4Q~8U;*MwnOGuA_@fC2fm^APbl^K0yADjr>n(}02j6g!Fa8Mz zlnU=Uy{9)73~oh!zFrh?h`!SFdLehm5?3*po#dTczFdtDOPG;1B~{1!N(VcUDR-1V zWHhcV-Tfo@iZL0_RZ=|}cv{8S<6WWVc-vjfnzwM_TxT(|_T|G9POtFy4Km7wf7SnG zH1m}b9I?S_KAW}JfNgwd?ef8pDm7SIY`3|cL|VTd)MOLcMOSgNP-rV;4jT>y94AEN z2q=j_Uj+N6spfY)xEaof9aVn8LOPve7sC}5mHG|$9xB!Nt0$MBGZj+XmH)gxI-y=a zweGTF3($BnHH<6|o3wPD%Hf+6;-#$YJ^X7g>H9RW31#w7u@PIcj?*1A^K(9(X&ONDRQq6nST(`ZFi`ADK zQ%3r6a?YEm~@VqaDaCgxS?hpX(Ww4JT+Zy&#dKUew1v{V-`A3z?6qei zq&`b|aH(BTbQ{wALwXXG4M(|D+QZtj2A~cm4&Dzz0PQO{4A_-NWbagBz*X8oDQrG^ z+#Rj!rEWAXdJs7>BpP^zOL#?&o)O$_?N>YrY>iG}=3Jrn;@D7n1B(jzArQAGJ6z+u zD3)1Gf8Eg_d|+;a3{?0x2m97u^(9hKZ8R-{IX&qJBNrcdrwgC_{SHPmUM&8jcW1Io ziU$+7Fk3)mF&hu=6Hu>x(ptN!h}A4rq-Qeo%CV2|t=F5%;#YDm$%_#^L#y9r(1L;- zp4|ul)y&xo3MM`n?gNw@-bZ>CKmb3AhCktm&5v@dUxk8e%AZQsqK!|NdQ~BvPnS()i$y9!dD6Z76RNw&;|ZrrlXJnfDm+g zh~;hgu{;0dub;kadyHR)YQMtd8fe;a94DT}XRzG3n95|@xOUN!uquCsR@Ilv6*?;?8~ak^yE9N3}Mc!TA_^rc55TaKkSsQN}kicEIE3~?)v*^ zzPen%IydV5C49D)m}L-_1M{>%*1}-fbndU=d#NW*wj9B zgrGcW%;jKX*V67$X z;hA0wSJ-B!xFFn^Gb>M3J(;VF(M^*dYE7!huRMz~?S5*`z z&Q%={3^sa2KGk49NL|YYaQCMYi;8`)@&NCz0Zg2QPjsiG&^mBm((8b-Vy%!Uh4HG# z_f;lX(nU~7Xw7r%Hf*82}A3pDS|7n=@;u<*FbT;m}sxkHdT*wZ& z4q5;Dywg}$>jKVD_FO?e+!B#Y>DNjDK;9K|RRYNWf9?cY5uT_EY4o-|Px^Jmjsr7a zqHFvy9r3>H)`FLcEk$E*UHy3VU)}Ce#RTPCpM&`h+|c|%j(75k`{h>UziR67b0Kjz zOq6ezT={DDc{|}*{A)7|{jGRS{^szrtpY-4t$X*G^BrkNe>ct9>AkDMns{07{wvl( zWAFF0`uk=3_3;JXH3d-OuUM0(Gc_&W%T!IxTURLE;tzc2a*v_4%u+Cex)AG%{i%ZC zk5a))-LnFYDd`ygPTD9&BV8~B>(Up%pjG054h^&Y7CL8Pguruz3! zf4~{3M~3T+bW#^3{9s>aNB_q>@z~T2=^G z$sPS$>3r9<9s0CaYgH#RJ01uD1#ITRXdRaJ$vK&FMXKwwLT7!$R&x*29@nj>D7BOy z&I%iCg5vq2|v5%D|klUSXnM*oVpM25MRu{dn+? zSh{4&`2h0f=Hp`xOsc=j+Y6?21H&h;CK7@5)tSqhs73Srw9ZL3u>y3$S}w*K0SmFu zZ>z~P0ITx!a~_~uSU9k*2Isy>$P2hZ67?&NSZ`t9BLmHUhhscf;WuyIBBe~(M0AF} z?FwO#U<#8C@E@K}2mb7u0*m|^@k_}}=c@ZsIY0>Blj-$u-eg>{UCUXw8JAqBm9)oTjA9nr&bV(1@uNAc>BRzxcmA*o! zeU|c*Lr&dEyrOFQD9y(ICf7{cOAR7>*HE#2qRQPpnBx7V4G`y%S|qnA+#$+e3)uA` z=0<{-v&rlZ%l`_ao&^S>sQ!kvs6t44@sx?LX z7Q&%mkri$R2aR?beZcqjEkryK<~oHIkwED4Wea9KRdPG~_8hL?&g%HzeSxd1M8D~7 zKzZ_gcDVMk>sx9P;B)xxneP5zira{_V)h}b)7VZ*@;g1Dm-!JG62oac5N;;$=co~J zKLWdn=~z(XNJuaO(o)ow$19mYCjhK|Be5P!a9jY;mnk@FrvK#__SsVM2YaJqt;kpt zL8jCpcf6_oOn2Oeb{VYFu;wsdDL>048aPHIb~pe;EqFoBm-_gNmA2MJZTo^Tmfk%t z!M^ZlgW*?gxAu6|*IJJUlGLi7F4b`LRFuf9)+y}!`sr5&vU6TLpKn=HP0*{MobsE!aPN} zgkhdoH)Kxq@|1jKSB0m%SRX_xXP;Mvgk{Mr!4yBC$uQ0k*EJ|Gifihwas+V* zj8?^VKvIVntVPnJIb>Fw%pjz0a-nr{kFMCpht(iuBf9yOPP8_H9U01wnO zNDET(43gfC_Ro<&qcwm&)oi=cfbWP1Rmfew;bT#2=H=Zfznz@|i8nQvudr9$e)Gh2}jCA};6) zXI7p7?9s9jU=Cmj|D7~k6ECWsee)O7<`-E**6;$iuad0nBThJ!mRMPS*qt7<_SU_qyNYr#3)fj+M<@Kh57B>qgJDh2|n){Swpz&rqxu z=xhtGMSY&Y|EhwRcF1n(Qp8I5i4UC=Bkm?=gBb2AM!&;Bo_jEJHphXZ{FH9VQH!$v z7WLVh2uj9%$G@jtQH*Q(K6rzh*AZXBH7T(2Rc2niV51ik&bcET5$e%37+{|g-kHM1 zEwIfLgTT(7fG#GtMQ*wsET?GYEGp+ytOVf;0s#UFq}T3YRr8yPv$#D6e5Pmcr{p|49^9T@i3>^g{W45#X6i8Z2fyUoQ7u@6NYW6*$6GpZx;q ze?x|xdfmP@%DxMk<~~(&gXpHkFS&7?uA0zB>d>a!@i$6dXMP!Ng(CW;{TKJTPe#Uh zr(Zk~j>?r^7l`gct}Z}sdo5464LGR6raJ0kE9-ooZNlA0y8Mq!Jzin!+3I3#fi1~Q zycWjZh<(8iN$G1XIqZN;=NKQyNi2OKWAQx#vpJlhYB8p160)SSL7tLc@@Qg=p>R{H9c#g(s zAKGt64&&Pw36c(tkMn`yOV~g7rz@J`p_hf_qGtc-lzQbFv1ilRjP!i$!djyEiQACL3MGsKiM1Ag2VE1NO))GkH_8n4WE^Qma(E#R2IuMd0k!En= z*wrUM(W*WfINsN)$Oht^&w|iD9j6cQbg-=o2e4v2w%wpKd*IE*&eiQzt($=E2NrzF zw_gBK=D)n1{<8(%ZV$uJ*Im@~8g69udEoSpM9?Y@no2o$FAHnm6=*;P`a`nyj=5y_ zpBjrpc+|`&*%}>vwb9?gmu9rarI|r69%`l5Qw^8T>1{3ESV4z^UKR%fNLS!#Jx|XE zz8=jHmB&@ikwPVd3#Rnl6Z|dMr@|Kx90Hpby4MksT$prOORTdNr+7)g!MLA|b{<2ghYC*F8A?zZkGXvSOv31>>x$~zDbjC% zk_7lK&gjf1m3fbMVS;X@7f9g874)6nM4Q&g6S-^8lcH;Mc_*Z&VXkR>gB*{UL@J=* zlvz3LYe=isi|OyMSXQh2>ObNAiMy3rGZnK`I$!zm*4}3Kk9YUu)4q=-UgrOR3EEwp z33P1H+R z$0SoNgG8X9+-wC7D+*L`zTZ3ZG8UX%4QarqSCUsB0ZSygT_g;$&N^T;YfP9d`ZOWU7$SlCLzC-W{p~_b}B^mA_$XM-;ke zA29eHCXbqq-+k{cHnsX;PErS?!K=JaI!5!}h1$@hs{OkA%((NBfa&yL#oQ_B`!;Ko zBQLsiqN*sU2<&c3HfMuP2XEc>Le@3h*n5Ikd4V1Wi>=hto?Hf7%A&J?a;p(k{k$O zMAW&LN4o@%5%3S?vV3C^QC9;0ytjN+1tp}eRkw&uHurnm#;Q5BQWJr?TRnz<^* z@x5^_cbxLA3srje`jfOJ+Y_UC4w}j?`Z6a=Z*}fcu|lt-@$jM+G|JSjigd<^8-6uC z@>{cVf6u0FlxC$`S8GIH{J?%Z&#$>@>ZBzf{bJhr!?ih4TWxhFe%56P8r%5Wb5%7v zH!&-O-T!p!+vEc*QlE-h$YjKahR+>#d8C&PRJD6IIc6gpo1>YPEXh-{CW&iF+S`}I z-zrt?+luLn(57ifSC-Lav2hm=r04wnYg-Jj!ZqYx-DJKV*%8E_Zo)75tV8f+p zl7+12Mhn#tPjkL|g6AIvvicc|U=%m>>yf zM(jFfK;;7OC1FG>R23r*i;H}%|r> z6YDUV`MhM6U_QI1kA72RATRbI?DNm?roRq)IkoWMsOIKzc0-ZzH*?I2VGod39F-%@ zP`&^4H2Mkp;+k4)$4jQGJYaGGw|?Uu*e6)1RTREerT|6 zwiOVQXDjEtG_z>^g~m zR3KjQYv4a2+nvWrsZfW;*NnUI;PpZ3&Y#ie+9_#iahD2v`hGef7H{lW#Prwqr;S(r z@b&K7czc=+@$?g4O1RSoiRnW7 zWKV>$JKH8@3*=6xN!K6eZfwSrzUX1CDHm19joDe`+KFVe1P*WjdDW%saLcpj;lZ<` z(b#Ox^P6B}Q4g;Q54S&zbosi1@oM?Q4gblf2AYK%k?E$o2Qr??wr?0KDRr^yEZvHM>J1IN%E*J@8z==~N+d+Pk#xQdZ3*1wcU-kP0D)M&E# zw(Wd~Uh?oQw;%1!7>7Wl;!IYK#R;hg^P?Un^hQml}~Terl>DyvhYp9srj`yOIGPTE=oJDL78<+n*$ zlzv`@U~e5yWs-ufSjx=}LmL`$2~G&loU2PsTCs%vWD;2O zj1Na^iO^lk*2Q4DFpZ>R<@}%}38U`MOs_2qadZIL8qrwugkr;l$2&wXn-hX}k`6PB zJzAav=Y9KAnOH8!^B8x&xR|RrrWMhcMcAtoHi~@;G9ks1@=psz_S}mkQX-&>XsXKq zZR?i*ns!k9BmOY-PhO-nT&dY5zbi(Ut3^|7;U^*DW>ikQ(M&-#;9$MosLFur8ETq! zX@Sm!Hr(mXSiIZHl3)COtV{Dn609+|3~G?KD~4ioi1$5qMsxBE!$r<*VPF;JeP0S? zp{4_GY;#qE0{5Da38?zaNI75Cd;RodFA2hY2v`5GzqZlDW$ zSV$Zqbc7h#4JUrkC-MpHTAjd9&Cp=ch@Ib(=Q4RySR?Rjz=Y0zKhKTu}xw1aeXE5+NP8M*#0A72z~HIIAF{~gC0kY& z+SYj!8`jFjyy2Qiso8rS%7J#Eww%ER6jzP@cdO?wKW$Ggk7BO6Tv@v2z74Arsq|ry zV!?JQ=7%Qq14T55!0%A`?bzk|AJj(qp*90>=#UswP5!1 z9F`x)T~xmSW19_oU(+sbiSnUGx&5H}dSF}hqHVP83=B$UGgJWS+d*)^$h1QK401eV z9v=Lqp(sH-E%)tB4b1a5n1mx^9p4Vr7T|jgzm6B1>#Y~5H-YIs1PY(WEv8MA!~C)9 zGx-#Pr!|VrwPiMP?tHj&GXOr-TEW7#XhZpap9IwIAp%gRgPuE9?;2)N?$NQhM(r*c zI^J0q&M_E4mvh57%Cb;J<$8(HL|KDdF!%YFICmuCi6Ns4_+ZYptwX9Q;M)JHot+M- zym1YlvNkMe`1$EpW2ihl(%H+%drygNxW21W+mN9AWM@>-eznVIyjL!UH5DMM^l63q z?4r@-ap_RJ$B*``Y{JCfHBk+E?BQtDf;65cCEbmpUfWB6MTB0>p*-WprQkfT1yHUb zx*DB#v7@QQlV7wZs)1hQm zsM#DtnT3z+9Aau?W5g(V7h~5zANd0XdlJLO77+&IacsL_*SBS{*}7m+OVp>Jk=}H-Agm{w?BVS}yz3v2x21 z+OdT%ji8fIOtr?+LCVFq_B^0-DWOW2_9fjEoF;O?I&#fbDt{|C^<7+F5YHTa0E}&C znf$Bj%2O@*c~Ir=CgxE2ET;|IU#WM}buP%oyN2L0_u%W+i=`NSbC_=zX)v=2`S>M2 z(BSt`1}!MB*qVv}Ii_b2-7-LRDXBSmFRKUnq2x+ajCGwT&}H@_;|Ry_xP}}3UgaCO z%$b~#y=3SyrDm4t{kncKh7=^cd)Dp8WeH*`Fz8m!>ontKv!@-|@vgxZl-~M6lRIY= z#4l9V)WSm2e4uHI$Wnz?LK%K4dojL>l@8=?ukX2S$*HvC z`SR9gc*mxDH~eX;H6&}&)`s0~QS8i_kt{a8Y{=_)AGau(UpY?-#>C03$3%K^qa1G_ znDq^)l)xGPW$sJ2r4^U|)^F9$IMb5m_f&?Z^$tQ+cDN-7+&dS(P;zHM0ETe+I%{0A!k0)T|mvwbZzVx zpO2@QVL7n8Om8iI2j`1>Qm2(|yc@(4dc4AtiW$!bJRKM1)l`K3o_H2Br z8yLg|Fv@34gt!QWrtHE0n?vIECk>Y3+uzKTHTYNg$-HF0{@*TzmwqlEFSx5b><@q> zco$mef?gnI`N>Q`Z~O3nPDxj8eC)!K=~)nFy!Q72J z&Df^5s!xB9jLuEU*DcTV;d^q;X4PJ;9;(*A1ZgU$j=$!$=;u(0q%)wv4McuWamd6} zOMMEZb z$($Kmn$Yg^%UxO%b)uA}XvKZt{EXgahYA+(2q7nfM5(v1^VXX=sY>eIq9{XON^3Yn^(JH1tYM6l*s zOI`;77Fuxz;)#^=ScA@`t-{3g`p$syjBt~BKrUkVE?rPgS@z-sT&jYLi>%6A2f_c? zQHo6oU(Z(gtGt3*)vIm4|s z7o}q|$DauhAd@`j-J2qda?r4C$;YGYj{v!ur8t3)rJGI76S%u_HvTcKEZ!C%77IEK z%AD-LrH6Y{ajXb5djO|G=Ez0+8Mq<{v__%`BBNN*bQCn9firDP03Y2ldP7#OaIzUX ziAE+5;uJ0YVEG1m{=Y{pR-V^VXY`~$6d`KGI~w8&|2d#-y)dPQ=HElMaBUzzf-E3Sf+ zyvUF+mVC9?y=X^z{^33vT;QfU=;PI9w;~yb+**~vTNm59^aTs6?CHA^W|#{5Ix}g{ zY-{bZ>knN{WQ5&{Lb;UUrFRps23f!}L!BSx`;X@-%DGJEvJQV*W{HMNfFbB`3l(YLMMnxf&%)W>bu(#b^HDyhbg?A7De_dcl>S zdV?!k+?D=(WtxDzR@0KjLFa%!s;IdKkvuE_!1-&sr?{s3ndmKWTYP&Js8}QC0%+yV zO@7}=HdP5k@(W(*xQc4|9{csy2Sa=2qB_FAHM{elw4&9a&mO8(;j7YbfY*Vj|+2(FeFE9)JY|byu;xBhbceyT|j`3pesfZGqyT!aYvX>G5 zXv<1DbS}hB;349tN0f7oAQ!?b+=v*PtmQfhj6@LBp_*y1H9>>A#MfThye0GZQ3p46 zs3Fr&#NU7l*|e*oOJU1%ln}WP|L)8nGSdzZ+iT5u*QN`&dT_|;U1JzGSvYkyf9-z1 z{`O%S?-V&ZWzPJ93$%VqteuH(Vh0hq*c+$ zWO8oAWjYNgJx)n3C@}GfaMtb*T3!U!|5rO)_h&9A?U$5cr{m3AzTE+$4cgC%&tIfl z&KH%0%*;=BZzFS$O?Vq@5Y}!_cLqzD#cHgXGHqo}As$&Z`{e^*`@1>f4F^ zI3inUbU}1wUn1xFM2!b5rw(Qfx#E!WCnjy1iSP+9^K&?htda{LYG;RI=i*1*=9kL0 zELW;-UK?+_fZ(7TJW@voN4#`AE%O~q;dTr0hS!L?C}MCD^qhaMRta*acB62H2trQo zMe(pR(H+No55SVW(Y3vBavXlqSP7xrjD*P+mSN0=C(Y^IojlFh8k_qJ+6sZ7+VDd~ z%jux%);{-a0+~QDpy0YI>`(EhOgMjk4j|x!bNG(#|_4T4SS-T2vXJw zU1kSPCl6&Kh{K#_;Y$zmKRqqhj$rMW_7*WZ);suH*41ZWAN#oMfU}l|G67wEhxMT$ z_S_q?sxBb64W@VmkK{!!$A!eTa>A(8ya(H<1VZwLrOso=mdg4cgM`AofFWI1ozn@A zMqf6S6`RK@2^mw>!YAORiM29_RZfFf0bq>w0$mo6WIi|0p8|kV%2na%)IZ-%w7$A; zfqJ&*oAILR{zdz_G^ok0!Az%5?pfN2c=8w1F8tNFx%ae!ybKc%h;p%T|5#)Hq@!UY z4sOWJS65V`lZVy{3JpX{6o{kLCz7@Iwo=f@!jV_mlelCud+-Xj) zAC`?CC=t)gD<~YnT0=@}_*r>hz^UCoP(P#(R7AVlIIT8Mf&3I|9d|1Fg@a2nV}#*` zaV(hvXV#eo5dmQC_9eT_a+J#~r;$qz{Iu3I`C%AT_k|#9vmE>N1koj9ukY!&B)P~< z1M~VD%j;4=!3G-^g&0P+NsAejXkK?@aSj%z^Z-Sg402e3^2)R25D?=xG(C`|{~pj( z?a2f>o6v@;Dskm9auvNmcV7Cs_V-r@#BqmK&kUThPM`aB*24B{{ju6+a#ffXBdWof ze2i0D*0ix>9Ox#D`e{|YK|{~A9M3mjxgs(ydSMZC0hF!DQGlG)wWMq}r;``IEY z+_}V7qBdHPFzphR_MU#O9;Ow5ludH#;03Ro?geS0R@%uLtcD+&xgYVjP=}AlCe(A# z1z7$Lk>gBT=qArMuh4^pI&SIJUXmtg51hj4YyOsi13&AvY<|)`=P7i7<_wcIWFYlZ z;kdBKd2x?0XDcg-EH-4+o+K^^#Zg*C<{cPVg(c`e7u}yu+baDfW7{-FOkSSkY4`z< zbb#;+Oj@i_)d6T3-dHX#o&<&$(O%i>v3E`0C7B>f_H1g~9T)9JKx2z_{yj-0+7d`> zx}lQ0H1}TRGJeK?ZkUm$egXD35TzAFI%D0_ZbgbLYebKN zZ;zO3aS+7$lLeaNslCY+NsH@35=AEh(iG}be?`I-0T?fCXroVko==7^F@f2 zg^t4+f1w)O9tG+fVIxS)N?i1%UmVOZNvLcR<5A_e4n4 z9jaji`VW<%Z0Z!JXA!XcZ!x>|2aAKr2jiX`TA$+l9lUYJ04YT4e_wm*DdR_4eSp-w zzH}HL&ubzqnw^d)0=2jBFT``z{(^t^f

)7N-ZY)jMMwdh-rVpOu?Fnv55QGi^tSr5Z69%J;# zOHehmtQiQrj!TCBBID@)HIgjAwUFN*;q6L+PLQ*eZnl+%tjX-QQfYpFuQSG?5t89L z`2r8bDN6*9ESNW?M-*xiF%sQHwPRqi47s2!#6#W#5gqyoor=NNKZ`rdG98W&%}jx10lbE!^p&&$5QAT=8j7Z z6P&GN5%Jgjv`Er(7X5nmpYpjvjYqI-L&mr+L8a+Ka(eAfJ%dOKskK}K%f)pD(=V4p zbuJ|BO4&}rHw_Ou5_fOZ&bBKWxrc4`ZZ)}jyT(@HnjEw3ZH*97xtu>dAiyL^UaZhm z6`}_3DE%DtgSx=9S)O=qkoz{itRb%0dJ^C(5gLFd*jf3Vy;bBR z6Uk(E!tz6lXS13^m_o2M#3BsGk=4MLL3!~>-K{o;u`4)l#B8`xD^B?|qLIR7E|I5% z0b?>Qmz)l;iu0xxf{L7t3>T&$lR9pV)tKqH<)0NJk&TK4B`%_ol)fvjnto&%n+R<_ zb6Za+2UxPNUAa!6(-WWIP3yBBES!jar~UC;Td-(-I#mmc{QjWCEh4w%1T?;;*t_uZ z?CiV;qF6o;A0+fApjPTKGw>fr8rU*|+%ad z=##h&c1$j*%S8L_nrZl4z_W1;erWdnw&lwV{$ob@KP=Xc)^SfgMc!G(7-jW^j7^yY z72VNK>C#1Pv>SaVA#z19KcB>qjW?K}^eO0oxXO4nl@Cbl?YxY^nG<~YEpcbOA zz^=eZ0sMnQBffgMmr8U5{dU2zZJx&=Rij9v-d_NO{8_@5=P0FOw6>`*dx;?}S=`Cg7D^ zDL%$vWh8Ja*L-BHIk_DP6u{?G?_>L@uTFCA{#6g%1!hK`qNP^?@MUa97o6Xa?o_MT zCBrriPxpas_kZ z7~LG&SAnv4tmET&JtNV)6)-|@te5{*`B(A1mg8EuC@Px0#c}#h^PDsi-Hu)mdw{Dc zcZ8*3B~FRj3fNdpp*!81$9kQDdCp?U5>+_6U+@wftdJKz-mI+T%uYJfjgN)!+@w8EjT*NI>=!3Hq(26 z?J1A6^TD3d_Ur!Sxbp#eC%lK9@~DtidVHt7i7~eMscKi!?td@M^+5W?Q$g2qQt|k! zCv8k0iFMM`%HAhJopuq-9`iH30He{X(WY8rB}2`v+ZP3i2Jok^P=D^*68t{>neGMD za}xtYlJBqF5N#CfCtR|$E=l`8c1+Cm|XT*MO?Vo{GcogWv(wa6n1AaeQ>Yi;&zV3fZ#*~f!Jf*_SR@`J64xHiasU?cA;e@TD3Il{Ir zT}|R0!aMoo9z$A(2M8cty{oZIl$FB!iF^-m@xpb(gK7(EA2h4bQ7S`J1)?)@KV=`I zol9>AavsNs+noWxKZ0Q)JER2iK>3tv^ZAX7k2PipZ-M_DnuKZ!t}c=$G^#AdlOUx2 zZ%|3P6SV#{(As>Od&0%|dFj3jd)FXj<0nLKiii`H?zE0Mu0`>Eb4G0_s2l$ee_xKG zlr!*pv9QgenRSMZUwj-p-(e0CqIB4S$erx$TBB5Bx_n6pBC8lz0@_@MT0ls z+2}VLQ$TQ(-uaKlGT&?d5jM7}!$>x-@}0s#S_a=}48ru{hjWAR9mAj-g_w{+zbT5J zwJw#VQ?9N^y=~g2jxuA$JejozC|4=yAtR)+DzL|eYRbQbAF=8VwD->jXckn1);^qk zjKZq%<}-Bd)Fep*62MEftOKbExM861s@35Q`quP4jv1<*Pmy6`!LbS7XW9ezVvk{W zJ=^GIzJrpk^hh3gIrzMs$xe5kg4nd{T&AqO008~37>Ji^3t!6;_K$fVvubbn%^v*T zqa)?ri}#ucTlA7hE_O`ke|yiV&lT(^PCv7~hyrYyyUF712;;t{x6^mtr2k<$^(M`2 zFgcE#UfXfWSUop}7{aM<8;UwfoN^W4D*5#q3C}{h zY+xvxv(RRuB9Y@(<%B08xfZYzTw|)#4*<6e1LQs2pmb*COij@6Z5ft!87p*AdRR}B zCE#En_UoroU+kCy41`23h_Bu|inG@M1V^}DVxjAC|2N@oJh0KqUpW9;7r=L3|Ap zh_nkAi9f9r1uZrtEsi~$>RSP)1}kYmr{kQl&3(WHdhY{z`6_ioBUdqrrlT8=0YYZi z`sL_B-sM#?H#F^b4nzqgs>o{!HZWcnvUv1rj)O7LKpO3@vp$8Lkvk?7ul~qVi~cr@ zdQ)Tkvgy0d6~gwpF)P&8R{>ekVb5@xb&y~r#Xwr~W}t)edJy^K;y=u1{g1<|prSt= zYYb(5{KcieBa=wcqcYk4k)j>zJ=9ZSH19t!ygH+PnV=@{ZbJX`&bVrk1ZkG0YE7U8 zck-J~Dk|KjH$=pTrA^eor;J^ka!YUjLatMQR;MW3ev0Ar4}tBD_u2V1PZS8H$I2-6 zL$m@Eko33r83DSAspEk+REGZG@ibia$JKS?ZnD>AQzLR(F_6y8NBiyUE;zoie(Q)~ zeWjSNiXSTZwBZ_E0Ila21qJO&CVt9d0YKoQwTo`AVn^ra;|)|e`xlvW9t^{;U(Ksu z59D&nMzMO+GzYxI_c`v160Ez7{`OY?5_swASuB*&<^G4U_&?^wH4_ac#LFt$J=kZ_ z&_2F=q+xPKjpZLB`Z;-t8=| z5zueFFmFAL&bi$M916ijfzfu6(jg z{h(dxI^7zR)#h`vfg4HdXs`9zBJ~uObdI%epbNL4NEF{^XWtOHX9glK%*SnlHpU;P z8)r5yCyH1MUE;d^8i^+83+9RQwwDcM1*)XT<3oDvIV!UnSMy5LDoK2&!5WrMYJ^kU zV_9+qk1lBs(@x0|Hl3T9V=yG+1UqoIUt7nmh1ku|g5h@)eM!|(_XXgss`Um67W|=p zN1}AoZ+7d)jdi25-1;7i4JI$I`pb!M`zVGURPiLKo>t1_^%s93;Xzf&u}Nx{bfF_`6(C}^3DLT5Pk+eqvN-r?^K2&fM`2YSZLnWlwAqxzF zDHhr7%4!FKUZ7l8N|TeoR}{y>QoxcLy>CEGlBeBwHs+x8>f)x;&2qoC9nuiXZx3`; z%ly?~%^i*7aSzr!KOfLKfJ`l4NWeYf2bQl6XtiE|$Un(AJImVh$SI)zjiUSlYva@y z*V}ZM=frXOfkUmY53D8`=OdawtixmTT5B_~&8vbom~g+YD8^dGZ>fH;aJj(uI~>MW z$uCL0$$VwPAa7}K02Hb zW%P%A8z^zu`s;p587Eo;SPNgdz3Lwbipu+6{A788!v@0{R_W6G#8lYf z&FkrZ4?3;v4}x2w{+Fepv>@J@NUi7oqBS~p{nB?aMHkNn?LpHe0U3&&re1Lr?8RF? zTJ4C`gFxB7D-8r)d~kIH^wSjYXlBKoFyrFNw3`*2puXNfSoA|%Plz_QykDcKb9@l_ z7Mwu7{K>tjHT_8E|KX`D7yWc-Lk{`${$pBb9 z+kA1E;=FoXKY_MDYx7k3cqO(j?ivP3{kd7J;%2c)gUvLWGYZmA*sV$=^8*?U=KLWp z;Dh^Da>2idUKY$yKw2XAM}UUUuIqExNze%Z>Id8dz&RgyF3*+TUmnapxN_q7=Pm2A z*7=)4bH&bcEot8kFV9{7|BffwdW~GDmWN**)I!g}jq5MZxJOBv$EzZp`A#%^VZOSj zDXp?C3fJywY}`IItc%Rbd z;K+0(J`4WYX3BCd=5VJ0(cV><1iR&*r40&#fX3#bk@YKrru-)5S*2+4u@YxNvUI6& zSJk!(M%Fae0YH;xCf!8*p9a!n{Ti42kgMAC*=FJziw^rs$f4~+kS91_0;Qk z6X)Ne5lNFubzfznPs=y11|*;+mnzt)VXX9b)C&ETTI;!Frp0;HkGQnW+@WAhtq%V& zki0YN$|Kh`-Fw@+OS5cm5aJ4w72yuB=rF0SiPl!n&omW$jM%OltinCK%lZJbjJZ@S z1wDHiC5Zv!GmYF%N`q0)R8XgrG)U%T?I6+(fP2Dn_zNN{Qs?I97EU>@1yAk ztFTYoLIRG(ufO&4Oik5~K=Zc|z27dicKCd%+lmO9A$#g0Zn$2 zJzwG;M{upZZw?Vsok17b+dw1dzLE3hS;IB1kf>p@__27FZfpgMG|OGnS#-d&t!(6_w*d+C%SU1#ia`pBVN7nxBw+K^!4%bg>^rt_hmg>&8TO?50`uL( zwolW1=*%3YfJjlypZT}qZaKV)$!6C<0d(EO1$12c>^;)xgh$co&_j7&JSTN?aaBH%K_qS}hg+TEh$)(K>QCz(xZnQQ1byGRer&{E|mlrC)cnJK=8} zaA4SOQm_;Gv;}61Sz}FKjLZ z#MC|0hv*dmokQC-fu)v+XwoELxCAnD(7MF?q1Dc3hnR}6T#)>0DzjBE5C^dEIR;0I2Mx(WTsqb!5m+zy?|2QQZ z+vYKFf~-A7f}M3?rvWgBtCVe6UY2GOzMIugyxhlRT(iLu`|Ur%S*(r4t{8_IAdMdC z=O!!it2{D|7=BsjzzFj3vi*5s8VF^_vR2jK;L#N;+K7atbbV6vSsNiD*xwL&On>~Q z$ZVw7v!c;tm-dVta9AaGJ!4509TKW<0;iR1MqOADM|OUvDx_!27mK&YzN=#@9T)Y3 zRWR?h9~^foBUiE5!PHbCx!v5+%V~V?@j|LzGln z^IG#c01{Mwv|PP_qx(j~Uj%_qo{-5;ADG<@tbjKA@u!+^hc)pyoB6PIXfN7B7| zm-?%gK9tmqm>u=;xMJ;2iLtOM=p7rpM523czE=ZI_^&r|GiO{O!k`B`U6W^MLGqK> z<{!+a&+jgX&E(mE1pc3$N5(aP88F@G-qC`Dg4-ORtE#VP#$6C?N8dY>$!!s{5C`>h zB53a}PWdlgC%87m8tln!aRzY>c9LNCs+rg>NlhLq)G;pE7CSe1EQmQK`^n2oBliXx&I11N7@+kF#F)*g7WI(4e#j?`3BBZyL{Ix8K2mykOU{iANzl)3Gr5? zCtRfaKeO(*-z3S+pQxXz0G3JXKpAY%OAbHsT6gUn>MLC9Ku(fAlI*#wkypP{(0&D) zEz_BP0ogYvif zJ06G8Iu}}bug$3u3J0Y>SbmDX%kO zHSgn}S%XHOPCj50s&Yjjl;q$ZYj(+0N|i9*L*Jf?S6=2bWkaa8JYZgm_yJ%=;Q{~m zKx|KQ5(hV}STd!51RtoCmh$~?a~>$LAff}!sfrEU9erDApWOaVjSW8(f3(y>T|21; zz%+#yGD-hlEq=M6 zM^3v;dflnPe$qO1kZo*8IoAZ9 z8lCCM`3<$f(;=-EHo5=d%lKy<9oK6@6{K&Lq(3rh`ufC#Ngj^d7ck){krNzgza^?SjU-Y z_ZT}x4!t74A8HRIoEvED86b?7@{q^`s-uykw(p-3_h_E>c|sV0)l!)t;oeE)T-6or zILWf=-Sy!2u9`%D1a=V!%8XvJVSL zVk&X^>h^X3DpEU8?*+u@crkK;`E1V-`rZm_?~u9S>5m(augQd&0yNT|a;*39{IG0N zIl9D7u3Yt}t|fp%Z?xd@(osfCJGxQGk$zON`KN0gs``c}0je0hGRT@nt0{EnG}+v9 z%boT=C%sDyTHF!xZThf(uhz7eQ~Sm6QLU?9YOjNw<$lDvI+NA1WgI(Iw3ZwWd-UGv zQ*2v$-n3zLb+buKnWd}M*v*2qfNZObcadXu3cFU!8mz5UIX~{%$nIx@`hp)=miXs4 zM==+L#(t-WC~L_DJ@)PI0eJ;$a)HT8JCflqG1=7!k;Q2M{X)KI5{OhX@O8*zgv-vg z)2&L;lwmAk0asbFr^(Y%cxo);nl|?XaFZ=tJfjrNpG{tk-%SYWrnMOyU$ahucb{<{ zzD~);j0F+Cc89sThC+}9Kmk-RdehobC&%QaF1~_^&CzHidWrRB5l8ju- zuSfSimbdN(jM&MW0LVR{?uRvZ-*-j2JpUi4*4e2+dp7B94i$q)^sHjSusxL27t;1` zMQH!C7sX0Xkamj?_~;2r?4G3EHGfpLf+@Lpm8-y4Gh{{8#@`{>%`70leLMGIM+(}{ zzRs^(T8N<3;p2J)2TUe2s-4%phstlapmefTw#A+{j;M6P;Q$5T#49 z1iwJA;xH+K|7Gj`H^-MUxFcpIRbcl#2rAz%0l$5)ta$@Qxvp4H1lv}l^m9$+Z>6wJ zUWiNKB#=U3r`OqdG)ox%Ur%DNM;|wOKIVhtf$?3iqP#XxuGac;sZan^#gO*{vSy~N zW%qGvV1Ws}0}VHy4wLtAH@*j$Uv=EapWd<4;Q6O(UGAg2EcykU5~}%^_Ct)bGP^r2 zpZ>Qpv^VxW2hW}={m4796S4;ueGuaTB1q@XQWzKQ8!TYo^G`YRJZ!N_m%xVs^P=A> z?s!4JxXJqkuQ#&|8J%}M$->*l#9FdI2L`%0EFIFiYnYS{om-~fi(l~3)Tdwit>(nf zrCIvqOz_Q<*=Sv8{s~$&?v!LU(q~BUL3wys9`(O4E=oGP1b^dIY+kA>{Zh$AzxLd2 zJzgQJ=0d1V;nzyU8@AQ&o%T9zA#>Is>3AdsC50-C0FBV(+Xq!7x2|{FySJYtUs*6O z7@@(lQKgx*gNi`M$AHNmyW1$oy-Sejeic$SXEg(yaeh){TT(_}2;8H?{jjy94gwm>1e{M9n_(E6;u z2B&Ox+V8&k^MdMo@3p!wKQ*l$)A+V3aQ@9$-1O;@O62bJM218@-mdqxXs2X2qh0_Os__`*4a`A;t$%i{}g zo`dbJT|SUe7cs}FO=BEG3?qLpVWO~ZYA}m5e^J=ABFEu~ljS(hd#7tmpNPj{gDXTQ zR7e!`R3%(zzu*YA&;DeBe=l0~@XtojEv0|pkcEd#G$t;LRn}&)ygzMV&I}LQ=YpI= zgOR)LLmLgx++CBgl>Qh}P$}j)A0=^95&-RZ+)rJuvYBQZ{(QKi2LujBA7D1aM7dSk z%ATupB?2G|J@Vfl-yF20g(Wm*3wziDJUehWfwO+8^y}S)DGuS1vns74F!S8T_dwP( zVEWYJtxMQq)1sP@+f#7s@|5&bVxLEZ-o}EAhKI@GtsnmtJ1>6r*77kgPAU+kNy=A) z93f+L_;^lL9{oPvqiZW^Z#IX?8<D0lHSXqfZbW z5ZaUE8sA|OjpKf=&C_IiaX$n;_#WFE@fh~|V>#%1gc1*|fyyZ`>Lkk{_;BOOfx+oF zhS4u84uGnnP#wN&K^1v>uVp@F&4_B+Z{>IxFr&xJhos?_*=;qTYa~+P41%y>XrRH_WduG6@fz;TnnDjdGV)gQf^1$w(4dSGe2^$x_gMG|?GUVoOl+zIQwPE3 zn%vd;wL;W8=MsCO@!jw<(xHS4;=k>{n}&$CvbQ1izIZ;<{lC{;8CksjNqn);_s7^J zW33aU6U^7uQ^1-0f(IR=JLI}aX&+~rIK7Q@eFQr?$PE$@R9tOCf4B1ko z(})%x!HRfxdDT~I(Ko(+GfV2I0EV_df;t*DyCA3;1~>$Yp8DHvjEwgxlO(C^E3Z^IJR;e;KPpt zWt_y?8rqSUG@xLIw35G%+&D8Ko%s9ck-I4&@8<4!kH8-4 zZ5vKK$Vv|Rcj2;XyoeU!XJ;DAtKVD2jfsi-246Sbd`w!d;9Qlv*O(kCTgTe6a)d#p zSBx~l`WlQ2Yu)Y{e?lZY4B&AM6YA66-^Y}THX@Q&*Un^R`4eo&0n~lZktxGV#^1rS z6B=A?&62fS1jMP~fIV0jOgOGB?5}aUmPaC{B9eOtAuE`FwubX{BNgu&27P{TqDOpd zSN8`|7TBJ2J0*!%UaX4jiQvjPxxpp6I?Kd*A5e@{);5GLOfN7SlsU z+SqJhfWe4M@43XzT}c&v1V@d4r3R1wfc2x}PW!`sPSfoUfW5=M>wCYIigxdS^5$E8 z4ROytA9hc-hArKYKvbdI4r^^iW%6=;11|l<)S_JY-IS5+dLERbc`3T27(Z!4=B2;- zh&l6fgxm%b9ei3nsODNRM1yn?xFLOn#9yA43{qg0V7n`t_;eq)ZUEuX|%dU>MBgA}RKE zf?RS*>CsqLQ{NLZL#954*q%noY?cy3x+BNknmL1Q017T)8ZJ+>=SE4p$)FN$ z=KAP3<5pT;rGF=&1vNq&hOM%h@S6mi?0`WS8hlz9OlXT|5@@7cX~^_cp#^GR_DLpW zHAUOO^~<}36W${Kjdc(IWq+>fo_5ODDF08Pyi)xdF4btq0lTJ&L9<58b~;g7{_z9r zu?v7-j0^icTU-v2xCGYA%`c%45oUlx!e{1V2_xb6tFV_uYQ z=-FJnt(Wy+-e~cRz9hD7At2_RWw8ML2eq=lMKE=Mq--0l1EmK?#AK3Ych_A|d{4v2 zMoJtpq(e#wD2#9ZlXhxn%X<6f#1p^towDAUw8I^+DR0#7gFxt+aeiBJ^SAR-spFQ&j^gq6`QLrhS2r7M^HywM}BfZ41HYeO-0*^3Z6fA7m zYBwf^Et#BegK2cW!It@?)`6}KeBh}xO&JF>Wkk279bkk~cfm{d`17*;W#jCKUcjfu zxD>m%@HdlWRlz~YE#L8d+Y9l@4?lGV6_r+T(Gs6tHOY(n@@s0#FN%&s6L;2Wk-;xM zjm)w~(&OT&b(+maU_vD3BU1wWvjRiwlRh!9eidtG3CD(kW|bzn2mlefd%7o=>UXjk z)wN(g1NnW(OxGgt0ASxd@IrN7@gPV~=~sIH?;iv9_>QPB(D26&_`Y>Vk%KJ-3-@1(;fB-3sU7Z;ZkJ_0Dz}|!+pY-3L(y*CTF4*P$87XiCI3wW6J(|JeNbvRa zzYo}rBM)nUB^(!UwRk%G_oJU2;>`*N;@<3UP;6RH*5qR~vHsKIBOEdJ$|-E>x9GS1 zzi4F;0ndJ5-aNJ@!@vB!XtVath$!PoB8-QdX6nh$r5+jf9vh~-myelkGSFw;O{LK8 zUEHu}gTDSfv$5!~)wiF@~yY8@=o=>{~Ij_Xs=9U${9Cg(lgT`8O^-0ybh$N!a9b=WJg?us%dC zIk*~KVCVl1OJbt{-n+fHfmw8|+mgmV_^lrdM7Nt}&EQXpf!LeBno{k%Y z#F=KCzsZ#v@p5_=Km(NR_2&CW7VJP#9CD3-#r6WZq{pkf;aB6y1Yjo~%q z<~cD@z6H3(t#JIIl~lc@ZNuqbJ+Az>1h(GZ2QjL8LXA5wG*|xb(A`OY#8;{Tz_?b= zuSYsv*xw`Ap`J?-mma_v`AXNu`OG-PWpwQelN0!$l2x`=NkU0&)2$|P%^sux_Lthi zkKNv~+C;h&Ogr8Tr~-wU9;CGQYTc*l9iU2+k_1r{M^v;1o+E@KH+k8+)rieSgmb4W z;r0D7d~O<0;mz#WUI*3^yZ3ZB%EZ}9-W@0LUdniz&s{8xC?{YVJDj9%`Ycxf{(a4tG_dwu9t|YTcRh zwaDpVGv#p)BY_>bXxsCeJ-1q^6j@`c(>#V(F0Hbkb$3nz8^plij!!0UQ~uhBILrsn zng&bl%L(K*l+&VD(*GXTdJUV3eg4odR~qb$TFwudIg#DjuV*QaNtv-Y(kB$#PuIg+ zR-&|R2;q?eA9W;XDew=GiQ_BG4a|2|jA`K zLMWE`fQ`Nl?;M@^ygE66-X%RsXLSMc7RBE7uYTCbdp^v#wz$J~`ozX#LoA5_A5>~0 z6TvCp%%lDUPHb@m*B1a+6ql69+bgbIuJnsVMrdcUmx_6u8kP!9nwEfIFC+7i8H5n@ z1?^k6G4G@GPJ8vFzYN?h_Er5ErbkBDl=}33bJk)rjPqevm*(4F&s59NB~+QiAp5f2 zWAp98SOXO7TJ)uhk~(8p>6sPWI)5>S&8mdR3P%r&R855-O&O<1-S|@W8pf{tmo9oz zV^FOH-$$1#Er0Ywx!(nZ_w{Mi@tFl@{k7uQ(La2YEiqkZir-KInHM8mH*hDI^|uZE z7~M{ZL%Rh_fqX?ghaB;;B#}(gDB=p^V_U91=-(2?D-0~=xRM3lUD~53G0K`2>V2!C zz!@)2$U8zBYYCEZUc9_RrTHc5n7;jC0J9A8tw;(G4kNk`D)|Zi{4+YIhdZ5{Ri1bu zV`;ApMCeC=8X-vVcsl?ksnAwHXdpF2P~#9@w2Jux(ExOrn9Nd;4xX%ntgTC2d*7fw zF`>BXv<1s{y9n-i{#-r=J0z38Zkmx){AT(8)fzvh|3SKQ9y%6?*4FnV50DjYbL+-B zrR%iaNuurJx?@_+tInj{j84@c5093Y1Tl#x0@FUf{--DnX+DBLfEfLO3h(pI+JGj+ z4!vq4TzRPj(auS_b-v{AO+pOyeks;6fE*@;^UVh`f0dT2iTYStw`6bT5?jL&*{gk+ zjtA-Ffe6?ahGno1)j{IXbPs4-yLIKptp_Zu2vY(2eVQkE<1bZ1*Zi6n>D&$~0&6r*ctFy!zbkVm5D#r#RboMV}<&W3t-?VI56e$8Of98%9OvjpH1b7Sn6FRx{1vf-& zBa`W=e4Ov_irhW4fy}LXBrU*>JOieu5Lgv9x8pKuH+TNgorF-abJ=`fTo#qI!p;Lc zn*VGoDqNoudDv`mU7>vQ`m8@6W$^=+=bDr)>IWMtz5#MqH^m*0@Us?8ftkii@8UB)XO9 zm!WT6W5yaytS``ARIt;8%N}iF2lVW`+IPGM5kytI;!D`xaY7uyOjV4)RH^q5Q1?X& zP08cK3(NB5rhHls1t!eQ)@FO|0n-fV()%HX@V}#~(Ct8d{}@Rds`LmP5n5G2*|w0* zXC4pEi$kWd%*y!gC3kMSWqk>)1C$6*qp$=weye`jVj%YjI~Op4mFzDrFoGZxxV{H+ zfJfJunt)98x2Eox^lu=U?&}UVq}7!+bm^De#_c)1;Gtu!WKnaIn15jAbMcxO9p+&r zKt2RO+boCOV`w5Q=4-$(hW8$@lK~>I#}Ds7eHXjYdgqwBCfs@D-Gs@cMv$%lYG!jc zllSeLsh@iB)fKH97tSBix} z)?Gam_IpkvUKvzm4)KbpDD$>Dx=!` z&IXy8?u3KL=tt??`J$#_-Q^=gc4U(Mtw_9jYegW;4=W~f%cqm908$M&WA5pFbbPP_ z>^#M|ZXx|uAo%YV^Wt9{9Ga6~7WUBw709GX~LpVBgGfZ?L04 zm&l_%5_AUGYekOz!y0K*2ar@-a0)Nt0-kSv^X;GsM>pticJIjbNpU{mHr`UbC_19z zCm!sHVEw!6#(odzk833<(Z8m{DxN=;7_0)Si?ijB?ou#*aQP_z%xU(?e_+`|YINKD zFR~Wqt-TG)&-P#=TVC~Bx~IAlz*2vmZbT4-m(DD^Lh16*R;#p-J&Zl*Fj%EtsFOZr zhlD3=Ye{=%nuDwf-uy7;*R1rxhIAJDap-a?QP>i#>p^BmECC}qtt8D!0psWIt+^~yjx4er8C$8r zWpt}u^C1hL-4#Nf^vV0wg$TZ>%{ySj%hORS7 z&7k#R5>hn@qlv*PeuV!<1xnV;2|pvpXvClI0*`^MJqr>@ z;#;9 zWEV)B0Sr^@zS6ZtaZ4-$GUQv71P7S2-#49oC6^o8>-G7{Wm32h%c(rfmEd8K!;ok0CtFewv? zTw291schS*apeMZ*#8@Lv+=TYhyz9 zH{7;0#DIP-~WuRh?zpy-}fP zCurb}asv^2ciKQ;2x1{RN%>|hr-rj~v!tQKAVo-i0+K<>v2nv;JUjZ4MwkxNDsH$r z=p+@e4Y`aFmam1t0H|D3=bjc|1}E(=sh zS}M^^y0h+2-%a?v`I%faMS_F1%OA*VVu%xaS6sBc%rM~JGuNb5aUv+O_2KBy?f1a4 zNJSNWDdX(J(pz%T7mDi^`m*P5nR>AUz0}xh%` z;f7!;&XPvb7Ggvt*T^c;S<(DcPhb+P)7^R<3SV-n1+;7tU_OhNGqAKr08i2MRfH+_EKBW|oRtt`r4FE>O|DX)c_Iiil>4 zf`AJgjQ5Z3=W{>b$It(La5$XT+2{E@jrJ#3ppXBl#3Gv?5ZmFtr;xU+ku&)N#_7?(b4Ztf9q0F87?*w7B!5%I4|$s7r>? z*N902caUJyM*T~CX06`7@pF)JlWE}DfHavC_d~ass-csoz8UwLJlX?vTM02)#*8F6 z&Wg7Gl(Fy{LkbD_>{^FCyVC6K>IsqER9(8vE!zT-&C(t)im)zdOBR2(f0hq#C%g`P zVGmn94$xaS>|V7FFp<(FjJLY;YpDAJS`diwyoxpRbpUhLOk@Wi^RafD+yE#d#x!`D zJT|*DL6K79zS`LF^Axtil<_+@mI=);_pox^{zv)5yU|K6lAiwy73#k# zy}0w_%Eiph^0!WmX6_4r7*JJ-u&;H(%NtMx3(;BCBmS5Opn57`3ph zBQz6vLEFvcvCn_&L8hp-OV8r8GD#^lzy)z`dAj`nY)^r{+5!FjSOYS$0~U8S z8e&7(L)d&DvR_*AuOJwhaPw%Z4=z#BY0(W=2hZgY~aSlaf3kN(OY$ZhWZX1+4mXuX)Gp_uvTaTiJN`>dxw; zL{5Tx*Tp&MZmsyf+TMPs)*oz*_3VHIZaGq&RI|Nf5wlr(6UY3!uvW@V2!C;kxyGq< zP=5*VM?(6Csq19(PV@JBQb^eSV|%d9(_)t{zP3d3fXcG-RB*hi`ba^G)e;ao-~Ck) z@Yfb*qt7Sal8~qj9}`he@RjAIXGjwhe|E{BCS_y@X`^0CdY5WawD#lv9{E5lZxc5D zCJeSt(3-)Cpo%3=Zui!&3cGN-sZb#SVfvHmvu zP58}+FmCxv9=xmO4L+uzI=U31GaEUXv+qm_o{|+YOGAmNDDi!wXV43X{K}B`eC_o` zCo{b1NXL}7%O6O6l5`e`HHJOX(Rpfu9rIA0c^1to>#uRX9DYoqY1XJviZjFN8hfKg zkyP?}Bik){7!@Wq1e>ic9D!=2oT7`^F@Dl^Qk{fR%+y|IbmvQ>sZE7+H$uom~L+*^wXaX|Fr_K4~0sctpHH5Ed$M-8vbzeGNJT7y0Z5m|@5 zWG_o$j!a*`|Az5Mk{Tcd^!fQPMg=br!fsqva= zG<=V63Ko-Hvdpj1{$@|Y<-BJm6;02$C>;PCq;n>UOyQh{b->%?QAw?&K+>lmTE>U1^{3zv@efeA#$@ zNcbnjGUUecKB$N^{)l{g!t7+gQB~;fp|6%oX~eDiN(-WNz-se>ac7rr}=q z@vntD3I>r@qb{8GxU;f@seX=0DHhoakJ?NakO!3vpA;Z#MSEIliZZhNO@z$;8^|UYE5;lKJDww6p~Ui3-ke4%-e;MZk)4 zEo7Hm0_@!3jUNjWedQZ+cYEEllKwZ!`=g}sTERzkc~i|E`;yH#ByZdY0-1oTSC1&} zO|iq?A7u^WcEL>g^$wv76GMi-b|Lca95aKKsPwRT(mpQu zEkp5i(ZJWM7O?0vL#)fl$Q7=Aq|OBH;lMgoF-S^G0;i;Op#iLso(|cLHf`Qsh+~`- zSxnArEHUJNp>rw&UroDz?vZW~+J%^`V|C}}%hYQYNCORjG6N0KCUuyG!AbYb1Vr7y zBIC|iQij`Wola+d-6MeLo-92YA82!1-vFM7q(mfjq>3r~HBx1#6jtzF#-wz4-Pw|v zCtZ4z0mtV*l|ruF&O;#t=DO&o#$6?m&{J6lbBkjLYZ-(1qDwQ9KbM zfZhqbhW|coBP}P{ClWV|V9*@&8(-=1yj{l{REiN>>?-6QI zJn51;FYI6g+iHS(qiyFaq$KO4+H(h__E8wEU4IY=Ecf5a%t&4ylMXdIs|Ew~d5*wS z=-b6-BH)cbQo)1S)Uc=Z?!tkf#)yxzI%g7^HR6;q&aT^$CC{`kE&Kg%W}*OneCSZya9C9y8kkWL+xBGO&CR8EVGv=(ScI*}YJo)aPHTPI zctlz|N|Pb(b#x%d&MdX99tTKS&sEx&pN()g_(Lwrs)=Ot z4R6P{w`RG2eoIm$U+JuY#_-lptPg*fLOpYGA9-6kTTIKpOFZ5qKV1IU+%j4EDv187vg&3l9?y&=7 z7kOV(lfRRY7m@B7x*Ej+DV%Cx89eoVAphahi7=KuXJO=W=C|>i9ltOF)T(6y=EHA!X7g`~>m& z|0P|pphc#mOy*ZC^nhqT!*LA01&HY~_mhj*nlijqr+xqS7^Qb9nWuH~L~7f!HbE4q zZqYcGtW1d_#M;YnD-VAOYE?I2K)EUgkrk0XA7cP>H)y!gk|uR#oqdwhf}>ru(d$Z&hQN^rYz)dzRI zr6EQTGzw_RIIO> z8D3fA7o17Gi>h;0x*L*TYzv0@hHMVx&&7LFNTX?5m9#3BUtLEPRf6$HqG!*o7Oy!a z>sST}@ZfwCP>QI^tWZO1d6?tY!<&81#-{Ym#VKQhbskGT`42^8iizy^a1qwV;XwZ| zr5)M~oB$hPX-q}vH`0v@X*%-7j%3;-TzKu=|kS&+L`4EjJ|zqvqV_Vz_mas0kbIstoAfqFugS7UTmQq0*2212<;+E zAvkvn85%9~8`B$&Hv`QI_((xE`P^&$z7e3yf&3Y;Kj0!x&1)%Ar4HGZqf)Eh7KP=1 zj<6npgj&`Wi-~8ey19)htX_8uX}5AT&RlJa3V7EBWSIhhct@al_JP{7r^mJ;;R#&^ zt|S!TWeEPMv-wNRr!*9O9SnbwWJ+1>H||@hEC{pJ?`DqLE>Y?pN#4#tg64g*es>Oe zVeduC9ZO1u*Mb525Rbz0xmIi1Ra-Yh-gVg0noC%_@$0IF8wPVXPx4ybPa_^vMN|6h zqGaz9D<^U3;Ez~JOfh+gk*zix=xu`X=uZTD+2YSO2(BPUlIsZx4V9>qZo(gTs!*B< z%AKRtvhBWN{+Ru`)XbLaCJ|Cp|2|PiM^*n^I1HeN9Tw}wp)(-$SY{s&Rs5u_cWZMj zazgE}S5C`89&iW4XaL!U35nM)F=r1N$(btdyM%8{Tc4krZJcJ7&qr*z*a;ax;ahJ`h{X zO8X*|tvX!;uj@{`>Bdrkhuy*MaZxP`FlE(+os-+a0*kHj@l=K`l1xcAU#aaVh@-rs zawH*O7nzPKK;Nz+O{X;Lxl;MHLjuwGxu70nGdrluKkl=4TNJ5C=LVqHuV@5QJdT zR;iuwgQ7dQGT8bF;>LDeM&f(b+QR1P!=*Xv3{Rk#s2rf;Gor_Fb7SMejH64Yp{ik< z;<*KG<*1XS`+)N3(98S+V)+e6)}r<(3fUd%KGt42%Cyh)JCDYdl3Q7ed5NPv7kt=H z#D#(?+fv4eQw3>o#!)~Tje!A}6YWFLbY*rR7pN&isnWQ$?A!v)_jnJ$R#3#8TFs4vb4gSA7TcC z**Y+j)(h3Ts9;tA}jOk=Yl}mezSPPg93?stXt{UbY zXi^g4dCA+kR)?_5ZOa%zcI&`M%dkJro&Q8k1rPW>#g36B{DWtf=8WCSfe+eT!l2lp zWMF;JwLi>I5;4C`fUmgCQkMU`6BkIvVNJEW{Ce8wmP&^qNZZeuZ;|Wjzh4cVo`ursK_Q7ga6n+ZIW~*c|NAXPgJt){s@M zJxWT!3+vA);LPR$RQ7Jv$%^9I%B6rN^-|@D_j%7V;?-L0dzItOUFMQ51S<5lXwx@I z^*C|jbxWtQ2}b7Xa`B$C#`T}gnV$#Fiv5{`J8keGV8=|{WTSQ!wHPek zVb@a6rnd1dRB7Z+H6cDbrQ0}LP%LJn5zLHW_lHM?y#C@+YBf|DY)(05a=-^;FU!eI zxwSlaHrly$E!*IF9<<4JD0Ii=shGbde7ogZ`1jG?o_5JCi<{95X`t;5E4358Zj}=P z%i~l1F*dE|cvi@2V55!*5F3f*UnBrcQiu=Y{gwGa>8aLVuBK|GT$AyU&h>P2E_Y zg&|!?&M+Dk@&+~WBYRyLe4xs#+l@r5w{5-cRo@D2v&2kpL~w4ScHC#*L7Pt13_%&# z7Rp>|M}EXhKaWA@>3&EEGAuv*;YqfuBVz=`aW1{qsal1i9PqEnx>Y!UBVEZFO!J8|-bQVqWUzo` zbMRVQm&8{MVmsYy>I8u#Vl^=dgADFQfBW|(B0E%z+78aGM0Mw8(}Tr0_lYG!R6DK= zl{~I(BDUjj`>5&CE&yYs@LHP$FiDP);HRJ<`f-|L?VewPwt77thWdfHf6vElA3F3z z;iu+cDKq))uQD<{aPwWi>i0u3U)pA+7s79PV=ylwRlJINw5UGxsp0vW;}Df`JuCWU zJN)yZ5Uz{86`bnoU-&k7D&MmPM5xXcyUr~?=n>nl)7<@H4qDG88 z5jpRcOk64=6#+$K545W=E7Vl1_vk7PXWM8dU`#ug@2n~{6Szq;ANo7A2xk$wVaTrR zkotq3P}mSYea53z5{;s-qR*OR{Hk`Q$9M`M@2f<`j3ZBGsCes*IAj)U+nQO0)EDTc8!u;e z>1i_6ycBLTEqWPD-1;rCHu-NylobK~y?Bg#4~)n`q92Hpg8XaV;@ckUxd}O~A7k*% zBL`zYt+UwQvD?p&zaq(+rl=ibyhLBAP=-*~cC3?w%{B_py|!&V>s1wS(en<4VlPym z%4~g*ET$5C)`RD*g?7^JEst-RJo;oPyTj$HWB?ewRP5&2*VwgUKuPth&}RPVjo}={ zXu@_@H6-Z-rL*idP7}FCuW_OLuqBEqmf513F+#$!9R=BUj2YP>04ZJEgEl_!S_f4u zjh&ZVskRU|2zL($NCs`}o_<$Ot=+`E)X&J3Uhe6=r(bSNPxKg;Bli8{!2DX_!e^Cm z6?Q+kEkiqFrpi`_>d=i3_aUSN3kRC+*a#)AJDn)iEA~0s3hnRRYvH>JBnW9F9n^#U zcy`Lxk$=w*f0N1psdDO|bH!L1bGPXy5-N*a$-3-0Xpa$T4P0iJQyE~qKLwbpnso15 z8A3sh%{9No3xW&eMg`Jj-@pYEIS*)W`JG%17U+n>CPn)b~p3s2O++JN{ z8{G$du8jfZK!bSpdi20b#5_xC!Z1qpYX$G&NH8x_WsC;wj#cyKuC`HjgFF1sJ=jq}jZ$tuXV%)> zuw*up(2?)Xil3wymrOxCL-9*$>-u-N^M{Q;(CdoA2B9kvXqQN>Y~{2(9;*z|rf(#r zes0Wz&u-wtUDRDY0e!dCfz6{aug~9D*Md}_(hB%Kq{ryl`$|ZK{`HcuFizc>D>_KE zfngjvF=j}FvBovv=6!@kc9?Fk@mO%0729d2&Bbc>83SNBuMh*=XTuKP28@hvvU|wa;F%e&c8G%4I*d=aJLxB?IyEO0I3nXU zjeR8nQF|h|HBHMw&vwd{Hlh(Ls2}h=dgJ+4-Iyu<44=;;7lGkuYLqQHK(h|bXlgfD z!W$L927_nk@BYA|mmDP;0#eAyVP8OlVQoQ&?NI2NCk^rTq4MAk%UDWwVlb=+>$5hsyxQD>a z!G%uI*jpi%L*~ZJkW_CWZr$pD4St#ud}kRORfW%Wo74Z%zMe)-5V}s=*?!f6L^Kex z0N%tecus9h65L?CBi}#iVk`LZM!1mHk=*oI_V-L3urbScQ1{kYINtr1upkdK_uyLF zpUg3CJ=-`4k$Z;tb(>ydOa-dyDR{;wFnJh2pxcZ~!v({rlh`(w>`RjJiE{(K;f4;C z^c)|6FCs2tBMPK=p(XAc3PPlqD*3dXqJ!Dt(@f=$N z3n9w4R71oEjf4=wa#3`M_)|qN0PwBMwA?uCLI%L_26D-H&!O}po~MCTzGaJhuA7nVp4;etwkQ*rg+d_b@zT zIrq}@G#k#RDLvyy*sPlB$_8gc$%dWCj^^=v#vnK0tt}t736?bLx5&T*gK+y zW?NeDXWwYnU>Mkitv096`6Q->T#==^a;82N76eXh*b4E?qa&ooGYm>D6Q{Fw-4SCw zb;ti&-7_(AYTg6qp1YK9aLGxG=R`+$%OG*tU@mS4lG9&}X+Td^DHPV&E0}2(;fn&R zTs0G~4J?0{`q43W$HYqjd=&#!IuC$U0Xu4Hi_X)6m>U7o?7^%DAbnK9h*4tkDnruo z@Gwq#lWc#i@C69sfzaFUJ*!ur!Sy1>Wo305WYzbp{?r|=waaZP-WYlyY#Xk+F1^4% zpYi)pg}u(|K~HL;Rgihyo5IF)B7DJK&Li6XVaP!OL6Ftdx_cO23f}(G%pMB6U83Q*%wzXaIBsk^=Ev`TMOaji z_yXV?33c>ewSKKr5XB{qdcu?{m#!GPtdpx%BFWTOXZ@cGEd;zDSHfSPh-8g)V&_TP z7AYrHr`Ab%q{Fd|X|^9gxM!@B;O!7A&3&^x_(N9d}^T;=d-%B#8_NYQ^ zVtr@cL|q^^z&~n)lzyX97QfYZ8y`rN*3c>BIO6n3{ESY|n)y;v2thb(+&@rT%4$2b z)q}Wv#$)_)91A`8m`qf4vTgHnfK}wC2a53M#j`_I)+d=PTlD+^tia7vHQVs!!ttuy z<`?!O4oegf#-*68Pr?q2WX+g-$rX^k^o78JLj7*H30Tb|M$Vy}?)k!@Nt_0ho_k^y zs1jkNVj(F)U>mO*i1Ve<+gPi_5kQM;&K><*l21p<^}=>`%*E}R@Tq;8q{gsJp7iND zwyv==vt=#G@aK;oYxm<8vmU$YIV9w7*xQ*HZ1jO}I<|(CeiycsmX~9@gv|>tZX`h2 z?~L!Ub-VFrlI|vSycx~x2KsB05d9D5?*$(63Ud*BUjF1~W!~eFWz02kYuAt#dC0Pm zM(MNWUGRK3XrSf|lvEF_2T?0D!jcKB)xUH7g8|fzVIX@>xl;I+I7C=U74Yr?_#f^Z z;F(FUT(;4~LU^c>Zs>mQRi{3Fkzor&FD7H>Pmw_ryT^^KXs%O@A7Wk|T(fsjZDu@I z_G@e$LOk#eFU2miU*yzPmq$|}wS@*Z8|H}a2psXEj2_`o1ajWms~K%34SKY>XsWuK5HlH={4lK51o8!wjUOA0YgQc6D*>BTv;}Z=2s6n zv#sOqX~MS=khkkrS&upyoF%vlf22US*c%GUlSlB5CSh2AQ$3VCwA^U3EBBJ?K^=a( zcSI~72vP&`%weJOX&{HX3m~X^5K+!-uL_P_Yt-YwFWZLqmiWhR>cj{kdZ54CnH|=S4>Qtz|;2kGK)(iV=OR+;OQ=m-bxQ7y8$A zV~s;&CtqCVAVTsC9QtoIU}M;hW$JG7rq5v`noWxD<^rK22U2nmD6)1?=su7zv!)QF zwDNKOn6XRQq|a^on8~?E?tbpqcKzc~K-{bJ3oj8n3qv*Ctx$udd6iC2tt$zbuV5iPU?|?l~YCIXga8Igsn98u@Okk}5XZu5oWPJbvJ5D#)x! z%a*!urA4zW#O_m|{MuUF8eI;({Rofd@26vh7%s7cCm+t;dWm<@M1Sss|scO^<~eyPK1c z)~iE$v~ms$+1yMatiFsI7?rR-zPKG&DnGHi|9f_lhwobc1Uj_mu(H)Yn@!tw6fNy` z<_6enHrdav+)&S1eJl6ysCRsI+onxzBZ!a7#Myu32vTwhs*|Wcu&m2)CqQrnuzsoR zJQ3vC!5l^>8#|?98~eqPO9tJ!XyINXhyFXhW|b2oFDN-8jhKYbr$3|^ZY{WF-sWdY zh{087cThJV`_w@yo-WBNcs1Ch?3g0b#zsE<=E2yhGn-b-cE0(;$mQvKbMvK_3JU?n z1NUd@W7|eD^|t(z_JbzSd6*wl#A{d}OybB6iR&255|*srw5%&gwyaCJ7Ht+_^;tR1 zsZH%>P~Ej_ZOMc7)4dammBS5Gym8jPT}RBEyn)$2Ue)meiYBFk`>V!yXgu4u1$?a>KU#{HRITW3EXWbO>YFfRVg5kavgIdL{S z5D=FIB2C|+)1LG!2I2nzG)}>Kvz~`GJ447@-}sJvemK#GnW(gEls71>6ZwD)w^AUU zu0^P!*7uSp6bxVAu8>i=G*`>&x@rc}uJwKFs@|u+wq?cfcWCY=LC_q-QayAh0R%a( z`9i-z{#`C3NU`6;Rx{Z2u0=8@!t!5(jh8)4KNi2((70i?ZbtyB$hWJ(y|)fE$g6bE zG3k!~Q4`7d)H|=vDe0&z8mi3s*6jM&ksp2=*}u-+m<(02kk7n= zj8>g@ye$)?=p|p-|EFnegNu1=mc#2I_dhILUX6ILzU9eGP`Zvq&T^OkTh4p6qCQF_M@@s=J4D<6TJti(MeMv-bd$i4IeXRdEtI0eKm|r|5yX4_BXBctVIJB3}*XAGR zU+hH8=@D|8^?DaW+|y@0IPniFmv4IxoYC(Y4}O0#Y8KJbGkUXO&>e)2oiH9d(14m> z?+M%IPINNBre(Z(mnNmU#O3WPX%g~^j{M43n#qtWm^UU zTz41@k)CCwpd(TOy)L#o*_~weyO??FaF)!jI&DWC>v<>aA)f~`i_lhmUsW|qC8*Dm z6->@C(>+nh1@Dp*mqO%o&Yr5?)Nyk2tTy%vTW0&t13~(P)Y{`^3PBfN!$Gcc|9<(y zV940a$%C~+hF69}8x0al-6vVvz~Mmu0g72iXfuuVPCdH6ny_R){v!t&x2hLkr41J} z@R841*?p~!nZGAAKAQNHSq!hz5uFG!h}<`ygIf4C3MH)R4h@tX!u^7FZuk;?UOk8{ zGizjy-sG~|u(?<%Xm!^P=}d(BDr~2cOJer_gxN+;er53Mg9+ODVkquCB9&T?vDStU zZG?AKt*lk&Hp*L;ZfQ4h^lIj(*GQ-<4d(eefZvBNFLKZ1H*)e>{aJ@l8>Xz#aEDGR z_;a)mIE`zL|ZT$h2Kdefc`|)`EY)>EJ>}g)dkwVFu*?Ky#+l$zltb*m6A6$XgY-ghwh)=F>M+TktzzQ#h+RqbAk$^!g7MEr?&?Yc(H2Izby9EnA)`Ks*ZY+;az^ zkFgVKrw4UE>@k06{;#RhACyT0+u%g5>|vtnG)wP>)x(fC#A<=;V|^$oa1(Fu1!Nd8 zeEF4>evY9gIB_f}LN(Sw6twz zMMUj;Sn4nRP!WH5STSp#+~5R~KUr&BDT{r50?HudtZF-sJZdUrH>T={zTT-SWm zgS!@(soQ`SA!jq`kV-x+jE&3JrrJvb6xCPE?Pu%8HgjZV!<0NCp3K~n!TsH#^#g13 z0`$h#YSL`ih5rOI5+!ejanyIvHHXxl@n{N)|%>7fw9O1ek$W* zde&~AnAm120|kh64^FBrU4K}6cuw*6sry`qlewKiVVT^IHF%iv>Q5L3(m(bJa{W5K zwZR>>Y5|CrtrnuA#xFOkc4H-Pq_+oKpPOXAkiCB^NGo-&^-$-aQzE|rl1%h+LwgbMdd$N7s+ zeLI+y)ZnfEeD1;@l*B$xL`mR;a`W=YVLwQsuQL+I4nU;dT4r-U?>#~_N7q9a+>phE zP^yl9HT<))$LVV(1Pv#pJugfnXGF&zEWT*^s>cp_u89sAikFMk2&JBgC4T2Z<{Is@ zZ!FwvX>HrmOV_%-`qFxroHYO4HxL}U5BDsx+tI1JEn(I7--yb)FK}qsJ2>?DM+>}} zwHUt7&+g1%#6Vz{NgGl2E5>CMEzI(O{z@j$7b|;kF-O-wxn$VB#Xq_zz>wIN%TW0^ z#X3RGh7s1iXEC68t2C@a2d36?C%K_LTgi|l^7-jp*GXJSBjMKxOo=u47xORBJMT|? zY{Pp-VoY}aXQI2{SADTQpbfFDzboqZbk|_X>r<67QBmXZ-?eBOAsmdb*v`r`tNi<( zh_{SCD3ORr?M51|+iKcaiiozqvJKA+-8!L||C;C;dSnb!Yq!~$WC;mL<&VMYRr)lfETb4Hx=!zJNf{H4euqfXR0bwnm zu(pFM(#4<(W+29APiG?bBZ*S%(ok5pu)khn?e+Y~%?!H2DrF+{{?W46h-q~StQ6(Y zw$`Phjt=r@ktfJz#}kn~IL@!4QH#Xn?K#9m@92lz7cvuC^9>JW>h~Dl3r(?fxJ6Qn z|4;h6;OBBT(w!!5_;XtfF&3H5cu{@!+o#4a@5gM>lqP?rHDri42CQHe9PN0|vyeDL zyG7dA;uW3}RV2odBAH+L^^~PBKl&w{Q_NBSYHUmu3Z!Z^em@S^T=<$hZKdSY3|o4& zDby`#@peXX2H^R*^f5eC~?0=euxxqA9NX;9BPT zb%XWWF{Kt;zoNt)@@>9SAF=)n&wQf(2PeQH#p(x(6?$&t4P-fg(frSY#0`hdJ1X#l z;Rap&$s1ns2_W-0iea4TYdQ1h$vbljCw5@@6F#B%xR9N?v!`8lgee%oegO+ztN+tr z05xg%O6mHR{n8fv_Qc5-Ao<>oJF1CyMSjTOnt^(??CwXaTimKLeUWx`8nutMV&k}! zl~6A1`5%Hod$!A!Yy4uJI#X;|@pkWfPh;Asn_;I13_-Ekt!;9>{N}6bucfJ-?V&#R zTCEK&y)d;<^p5{?)sBPVIU6Tg_kH>PwRef+qpEW@52jF~-Sac0Iuo3I&xkQy`?iGU zNq`NC+$ZRv$VYn7S1P~msx(Mm(LU*Nc`0mK@c9EDccS<*r)S^o2Qidoogg%R7djrV zV4j*9xmQ;yC@K_WX7-5}p0uY)@m$~}>(ic(u1H_Chh{Y6e;;K}4owl7P)d(Fy|oFd zmNv9?0BY%!FpX>E1|B_a(pmW%$oy)J(d2gY7G;M~#-5y^;7m-09%2#+J}VzejHzu3 z7dIM$c9zA{RyGGAy{KcaW^grh{{9#>byZ7d+$QeT)!y&%FK59nyKAnu8(*K`|IYv> zMf(Vq*np4&wK?~<9UC&`!fRgARN-g9Ud`4@WjvMj%A7f^<9ABttP(uDU3nWdU#6|x5bwxXi!zre za-T(>=BU+!#^VOsKl?;#NaqUUHtBz}J(4K{_{9HOLS{EL4fTjf`@mKiq1@wSQgsf^ z#}`zMxuL{!lEJ9shqxPtol{G`j!F;I8C7FGWg}Z%Vd4#^vGuHYKd!LPSma|&!RtlI zMzSu8IjrG59!2ujmm02EETlDQgf?G||H0CY#ZDX>XPpfn>Ij5bUN*ZGcYg_kqjL%fb=^RvkO*!kH%)u+2wO zYi6#Up_)qLiJeM@&RuT22>t#AA9XT?m0lJ0<6X)?ou7*JN6Hm~?C*Tti1|0DS6)}Y z1ifH}PE!5ON)x8nhXwA-Q4c@+1ZVz6XYEsSxYDcxOz4-zj=yc+N`X#l4=&m^^UcCa zRkEj@U!7}%2QrccVV=MLWimd;Es08VrSVo2v$ti&u}URL?x5^HqjiE-gJac&+mLC3 z*@Poa*xsjZ=~0WI9gqu}(Odc$JO7()8OhVj&h#4J-S*AM0wb@6h`X>Opm4`8(1l20 zJ?Eg^64t^ikCIcB!bz>wjmp#cx)q&b!TN??Sc%TZjl@6K$h-S+w0(A8co(ZQs{Ed; z>*c~kth@&ZXY2Hfz627TZ3b^*E>B6*zKw+^OD)jr4W%1cY_V@ltoFy9M*_a8*DL(j zhXx&ERR$@8z$6z#i%^rp#2s5%Td2@E9Xxk@Xrk;b&tN9B@msEWhX%2t=h#*>%%m{q4BiK{s#C;k&g1pOR`Q2dp!bL7thHMCdQxRv)&2SvCCP5tY?VNd8>FFu3V zBuNhpvo)nvnQCm^<*-ELC3nCbB&oXA8^#YkHpMEZk&h7~!ggP^X#?bX{@%K4llfL8 z&u&$eZkH`nD~mF>I3q329O@A}E5=St_~boRPztD3Hhtsv{A8@{e@k@qNAqoAXW7`B zzD}bUdR2-FP2XQcCSdip5`5De^=&){CuWhu?@JlklL=#cVv+7c(@4g^yZn&jjH{A# znB4*q3)@-Q6uHgE#NV07Nq~0jL^;l;r?=N;AI}4U1b0JLX&frYyD$xi1%yQE&1L) zy9;+tFmh=#-M=*OD&(8cn&45`|%I4KbjL=Gyf#nk~ZpKcnK3EX_LBAib zal|5o8UUeol#g&@M4Cae-XH9k@MAHXkw?q|%dT%R_(zafmW=39gwdwj-{?M6q|IfJ z;Jb<%R@-ed{9m7{VMLc+tp}s0Sqehhv1$pnAwT^@Ba5#FP z3Ud~Bd^q(E2Bj|LWl(%+#40R(t||CdR`HxMhnWeUUOi07e_!E1!<5F>2B%n&SfcK>6Gs7?k?$GVCj_Z&P7_fyZhyNKg~JwW$w(q zzq)h&;mV3q=qQ9JFfcIaGScFzFfi~C7#LU=B)IoGZoeacy5X64b}x9WFC<(p&12TrH!f9unVFfd{Bk@!y~81!p(DKzMBH2j^8qj~BQB!u z_Te}qvTBPAP24pr{QtviRy2Kl>(?!;mly))c%`B99DQSRatmb8zt{N7@o{o}~xTB=1NX{rQ zVzv@X_RMu|rJrZC<1APevutUcJgtl{WU2P%A(7GfGeJRr^i9T_9U@LfA;e$-TPM*< zAwQ$ojVa-03l|RZh~kO90GgC;P!Om+ZWw%He;|vzbF+~G`!1~-iVQj$C+Bs0JTEO8 zEgm;0r}hS*i;hba`jH~jgF@}#T!s10X~-RhvD0;I*izG|9o=A7^`=H!4(OLyvpUiz zxU^V+R>nrU(UCn7b)<}HDn!4PY_EXDGJ2n^@|26yhcH>br#k;|fki=(+OZ;2(1ZTA zmF?{fV{yS7+6*MzRcO)9x#VL@~rCDo{pcg?IyZnj}ISCu%JoNZL&=3#Z!> zPN*x?EAy(xnKl=&z5}t|ET2YwQ_&M(AlUCSv%Cl?H9V1yqLlPfQ2Q7u#&F3c2IUvD zHBg|V!aWiaMT;4IboB2@OP_k_#3bZ|X>XnQqWC5Qcnq<)!f2LvHgi$wq&c860SAblG7)Mh`j|>8XWji1|L8LKWoBTFgY|-#k)@#7kRL<1M&d;_C6{<3}cT()D&!g!af;+_e7IB zhOnib-{x%33Oh9Rc$t7uBI72}!v!qE-aHOz=DZVq}| z|5&d*8n(hbXapR+%mf4DzzQh1iePe6n_S?AS!3SR!e=!GDnZ2%&LUjOd=87&OcDs% zPzLNXSn2l(qc0y@-z)*~;Zf6dnGD8wYt=sjgI{MOdEcnQzkh>1UhAAk$Tqe3e%Aij zRMpZ0!KlgbqBOQC0Seg?3lKn+Sin7T++|{JuwU$$g`3F?$Ih;AF_=<3P`3ag%#6h! z17W^PVivhs_`LQy1(jE(_VYr#leC2^@Jf(()Q=R(IeabjORfF$NNv%ag_O$Fdg%gx zPZDOq`=E{LIvTihY;V!>(ZS_1&XA- z8GZL7Ee>i3=R?+cCmK)-)x4!wm=0s5>gzY_z=0ivt#KJ50aLEHrVo2$&Yz?`!;o>l z%J6Lk<;SZy1_gj#07DUjfk&xlmFV6Sdnm53ndhC~ofXJ{YV8H%pS{_@JQ^$?8Y646 z*m*voFR!q(hdQeh?nL^F5-L548JApghR-RCcgAXc|LrWy|7no0{IqlQtm<0vkL6d! z@4;Gcvveo2C@Iy*@K#K{8L~S{Aw}~ES3Pb}uB56H!VL{J!ddh3)1*8-J=E6r%ImNI z;z7UCH^sfQ0*OIS_`U?t3*F+XcB{_~c16au&$w*Mj0}LV*U|?(Mh(nFMB(cl8HN-m zA>7?86~ZOF{8Oiq`HE;bVkyJ6lO2KSBc6$K%%EM30zdr~m!@Z~D@xqzd!mfn4PY38 zd$hmB1BGo$FcL7+x~W$VxoKv$7OL|%_)`QD01rTl?ZJs4y;g0KO+yHujK#Tnp6lH? zd|EW|=81%kfXM!*a!Oh3M|Hta3U%9RrB{pL4SeV)xL{@QfpaL$#^D26y}qYm;GK9` z^k5K{<$L3K2%u4|*c|`xA&30)$uWE7KjC=gFL@Z!E)9clizODUT7JYWag_JzG8rVQ zO~7ydhz9)$1h9ei_nez>=PMR87@mO*s;};1T1S-J8Gb*vSWS1jX*aTX2>=`1^R#|8 zW$lKf#fkNw*7{_2B0_fCurUaB@>Dn&TZ#|Nyu@r5r79bGmBw7&N+^3Dqv58Ymp82q z{>Oq{hbTF8ILs|efd)8_bFv}HOKR3tiJ%5H#Oe__{$NE&ZRI$QQtSJ9?Bi=gq-wI$eJiU z2lzq<88-x6tvOzx=RSC>*k2}kwqu5zB7exLeS^802vR6r0>yiEg^{&$Ri+1&V@SxV zUYuxU1>)qDCnonZeN89C49L&_XC`@IaCokN{5~(*w!Scfuw`6dvB=wn$bhO~^u^OU z46ti(ECG~*;K&#l1q+ygC%*J$i>tzkKdpwNO86laXA731pZ{m$Ke?%Own|wwqpm%) zZhYUDlrawR$ufN5Hq0{;kgCx2r$<1cJq^=vXI%C+3%N-Vc`yblI3vc;X`>@pUt7@X zN76FhjNp{^r98$zN{?pl_ma+h|8p~R>~<Jve?CwNwDqsv8ZGHwEm420b+Q0f8 zw>Jncmuorl&L0&<0JnhyLFeD+lLuB|bqwf%=2;$y#U`U|(|NfQ;(O+g9sg4*ii=rJsb? zfF5B^6RL5hV8ncm*pKDLJaiAId_hLh^-3fAW+5C70_OviIQAOpuc(cuq%oiuQ>(x* zjl*O&0x4%`#GAWl&84?-Z=Ve|5dl%w|%}h3H z9lJ+pMh0VVCV|5iR^S99mzDT=))<7VVE(lvs7)Cx7f}Ja`m}!o2(3`8DIG_FCRLq# zh9v*j?1cE3pNvL%B4`gt=0BIV*xiuvX#Wrh-tbB1#b~DN{>%G?x~Tm@NRzmH$;_Ck z_c8P(H}3A6-iG$1rzqAcdS+gJcAgq|FUunT)1>v)FyyuzwZl0G?4Z)Vbv#E7^9_T% z$R*S(t4id4^NK}pXa-}tZ6>D%%$$mM?OVfk>xO2PZ>3Swy2&Ij z)8_(AhQl2<145f)~neV>!J7r=byQDO7q() z>4`J<`aB5gI*fou&yU4%Ej_k)-fkCNANv5v( z8OTg-RHI$2UXTs}bZ8htm4q8i#9#V#ahQM!F4XW@i)EB0r5ZM|#plx)g_B=Kmy=eJ z#kqG)hfpulZPI_ZwvE0hNJ*suXsJrqdVZiodA{5=ir_>YZe#~HD2CkllzF#didrRY z(-p+>P@g!}tPBMD?R~wci7I>ka&bkmTrf%Wg+FksIC>D znCscRUD9YFAZ5bHIVvF+0jYaE3Nq>gZ_x$0@4xm_7nO_zDPMyG|0$zHlB=C7)@)n$ zlvw14S9v00s96_8&7MJVd?q1+$Thh5(5=A;t)Momfm+p{|K?BNkB$bFkg22nveAwL zXv5KizElpC4*5_HVa?GX`hTH{IZ@vX|3}pNCxFLLxIvtTXy|FR2!j`cTe^7P=;NW*m@2(ZbqnIl#o#Hk0QyX8tCV--Mj4i084nj{}%UzKf)f#2WfucsWdK(ERb2v~sf{5pZB@w6cqh2{JVV2ziJrl(5a!LP zh3ZIt&z#V#Qk5o`S-KHl}mL|pt_4eV#Td}Y1SZ)9H(0;_RQ1G#mCt4%1^ zPf^l@f&opB)octgD4j|&ReZV8#6?)g!2TU3c&jVgjbX@ImE7buQOyrIB~lyp5S}i| zrMdXY>2U@9xV(?OW%v2c;Bn-#%covNhQp9-4J>>pdZQpp&F{M)QK(qR4H+rV?=JzW z`cl)7_hD;7wL#7=oF$$RZAT3Zw5}8;b!~h0SjIrm8OrUa#<>s4CdM2+X=d+Y?LdEx zc`$FdNsnBf4@EwUB}D>K4lzfZ9SjBvR=U=qM|FG}g$xWsXof$-a!oMo-32v4R0qeo zVm9J}8P-L3;T|~nvE$TuB0;|Urq8Uw{TEerj#A!&RJ}`eDQBxd=Ql@^Gw_+()NS~O z5>pH?GMbg_*E?ijBrCcF>)B2cOUyUC@d%YJ?l1JINaFmc(56a~^U2|z=1&!l9 zVbJVv7Z2``n`IMM%l5QI2+H~0N_yIYa6hwe0Z?cVQX37T9DcWoQCKMWwaKi{zmV(^ zJS`m~o(EhetX=Hj{OX>-4`=~j(z)Z?K4fw=m95RlaE5~{29}7bZ(ZA~`7{{qk@Lzy zfVq_)7~pExj2?6}`jU_vm!d`Lw)t6Q0#~k4BSL<7H(?;+fZg(}AX{{0rQTbh4pU!A znC->DBj=k$i1T7Y$IrOcg_6gej4D8PX)9@kGC0Q=Xhi>idzjfj)5V4N7yi~sf#!q0 zv>_P@s@@+6Cywi2jvfcI^s0|4kfUO?h|s2wNa=w4Yp>|wWA+hE=?>p_=t3ZDsUMww zBFKgeIJ`iDW)&0S%v-bn`|m#q^^$>$Yfj!NPVw@neJbGLW7QWH?K6(R-by-+t*uDN zr*6lIQev8kXsyg)h+vdaw3)z$fbp)S!R3ued0VR|8Bl*23A*qT?dVTpk3B53U(9>+ ziHxT~g`SLZqemO15QFgSzAhkv)X0bI5oc6mIL!d_Gy5_NHv;!RV2^;taBFbBq#!0fj1?YQ`NKoX)Y!9CV-hNWd@Q_XXx6lOP z_5A{2UUK|`kjxuv1ixR!$AY0Cks6T5&!IJ$yqFSR@ zx7l&x$oVC7rgA<2un@91^B031#M4JZ)vaLRR6;-zU;29a9sc>^0;}5+rT0s<;D`4S zY}|tZB+$^Uvw?|`-YMm_T28Zd^$81x7@f@Y(AL{|hYuZ;(G>zpsymt$11S{CgF1HZaQR^e5-<{F>A28M`C4Gd0YFQih zE;xnwgTe%ZEH43)&l=w2+%{Q}9k1ffc3tx7u#xeU6Lrb$tmi54;s@ugC17-6NzlcvxOE zwn0Cm7f~7G26h{V+t0e}1n&dd)OROh9}R?DEen4z?sz#P8>jz*LPbH&7uD21R_)j) zOuenUlo1kt#vmi}pZ;$oYqBB8dje5({5tN=)p~Yo8Ve0J zL^^9feGg?lBq-c1_Q@;{u+iJ2%M-W(ZwF{cFxXaF9rLTG^K9;Ok}PZEUJ;yny|V9L z>nEeIP3TtYtX}e|b#BK}UGB{?AJUTNI`wEJ0xT9^FvblPxX}vf$#to}v*OBH5VxF79X0>XQbN+P3SF5d7n7*|yDi=>s7&R0MkIB(dTA z2czou9z|${*SHXMRyPD1`Cm=R=fbjo<$HIT&P)Bm&OwO-?7!VFm*>aO;OG3hc|d0N zKIT8#s@9QO*(Kh^>nIV!s+~p2Ew!%7T@)f-_v84Kj}@Ht&fBd{zM=sGL0b_kX&uEa zL|IWBP?&1noqyv!!VQ`3+MA^|>oa$H25?)Q3VU%vpbiEonbj>r53OA3yNJ!QGJKQAlk%=%pYjJrT58QMm<+b(-kH$aw98 z)gvw>gKsekknDiHio$hfoeT?MxPA*rlU0wSW&HX4l6Ytg#BJcu1O7m!@1t~$2yPRp zUwX;1%lt1P{?WjrL4e>CtkoEO9QnxIJyzbo(kDPkiC`(I{8yppkQb1J&@+tUEkEgb zXBIOAVG=s)(~c=zIEkj@}R75-)z1+%TY<>1l#NSa0>nVvwvFV0(PvH`E(r{+&-Huv`!Do$6-vrWi%EGl`4Vs6Y;Lrgy&_aPzs+`@Yp@RD-;+ zExiRWS8j|~t0+}2GE>$ec)f%|)u3#&$X0HRt>eh}@XZ0`Ahzr5zl6Yy_6Ta5(k8xQ z#=ldXbU3`y__&)oEj#PJ{OCtU0BqIR&|GBe=Dj%4{7YTi^(w`HBCg5lT=$wEFgc3`s;`4-$l8f6V#j0eR29NB1(rSe59( zhAJ&RU}Npe%40`a8sMKk$gdk*gX{+Nolw(=mTr>JJ;07m|66h0;q|Yby^-ZBUR!t^ z)#^hOy!%iaIsT|4f75weL*T#pZ!Y_VJ>vM!gXc|pv$8)4n5fM==bqm83-UcK}%(p z%$eg4pj`p7Wlh1t=#EgKuDeGcF9k!H=`MbLb7&+S8+hw32ulhD)$}4ua6gO6;)CfE z3pmQ!2>5P8*XZ|WrI%>fT>|rNBDxLLD#Ai)lJ7#HnVk@Vb?~8&UToky%WtUOxx6<(a8-1L9$zWg$iN#G zzn6^|{R>y_;~W8^^=||pncBMZp~IMTg&HbL;1=8ms{?E~=0I7%58WHJUKq`HnouBw zKJvps6mjIf!*-wEv`^MGO%0_ZS^CkIxb6_m(LL||RVHAL%3=wy#445asOMw)^!m!v z@Jvn$?cA^ilC(+L|9 z+nUU%2zq71kUSbgYQKwFElC$32Sl4(+{N;6#)6_J7nNxYqp9KLLU2w_FKYFVS>>d& z(X1w0-S`*USg7vKd06z#Jz6O$>7}!TLPSWkWh~+qzTH8sWC)O``jQ_=-d?vXfH_+( zW~BYS_1je-g6V&h>XCe;y%5E&TFKRo1rk%CuzB3e zEw@CdLxw@CqarcQgqVuUm062wl>4$*BvF^*$zzAzT~|i)=hzr?O`A-?A3U zobjoEPfCK^KSL(I6w97b<+QH%-}veA3zSzcqLEo21>(*oKe+KN%Aerw2c%^z^2Omg z0!A61z0i-y1U4?sF`WQ{4T5-cmg#7EGnbN|hW{Vuth(#{`Yjma!afE@T}mv&L=__* zYc$T5l!Mess6zBbKdxIdU?`oDY-+qbNxjqGfYf!+G0k(Go$}v3bu&a#zNv+@HYG&eG`uDnw_t{&Ip@w6Ic4 zR}Kkrg(4!edieXQ)4r5DM!S1cgY5NDf|SJ2VVdrdLh+2JMtw!EPMdlC6__= zQwP-01tVxfC$MBJ>0sH}5Lc`>bJ^-%82R%}^CTt{U>a4gchS_}7J^sP{556}BG?~h zqIU0!bF}up@ztjU221I|1$?l$qJ?7rUox~ZK3i9XxrpG*2p)QKdd@$?`YRKy$CF~4 zaPu>)QrTIAmDQBUNYBO_kW7R&L>_k>A3Jpl*9?9ASiusDA{A}D$bKqW!^H-+X9K$) ziROf!5y{9Mczb`G#ga`Srm_Nj4-g+IWc88W8Ik*F%!~f4qsspw@KrX-l{6Go=}eGg zuNqdp@!7?dr0Hf-neiS6cc!?>HiqPVyS?+SL(G9sBWmPkY{cr$5&W)FU*gBm%}U_Z zUlrw>15T!;dlo{t?yp}aSQt7+hidSlBy`YV%>6&SJ!UShDc&NDLEq_Y@?He7t*lLe zGHY<)IwlKbG#0X~f84zwfGcp?$)KL^fHffgd+^w^dVJ-Na6{E)cah9}MfPt?yfD4m zzhXZlrPt6tUrn99z8#O4U~f*pJmdu>zlehs6z|lWa#Y|Ig34Fk4-cIulET|4l*yo3c~|FDuPPy@4(6f1J(V~)pZvZn zHGi;OaO_D0o%}@I?}bHfjtrsNutCB!;cr!<-|TA@O8jJ5VwRM{721{VSLGwR)vWxu zRP&C}$-mmRO3ftLuhEA7O4lKn<(q0HK*V_n+a;Ajb}(`H39#OgfYuAu`U?w(-{Y>w zHlpxMF|tf3wbxoGodEmN3mO~j?}B(KBVe0#rT*;?PB3C{Y*Tp(a~N>sR8(Ex%=i5n zUs|)s&{NA=^l5DMTC%R9Ir(hPs*#z!1&>DHX8L z(N@jzPeM_A+%%0iOWgj)C5c|yHF$8{DLUz1;P~KL@ULGxpZK_cgd68pV4>A`fP{Ab ze%`{v-jdc-j2&_A0}v)cc5}5BI(T1IJ3%qz%w=Ax57(se#kcj;xVOl)-`o z^5XKJlUP4-T+lHx7f<%oBOzAF*Igtf#FF1s`^8dV&eAS`Q8U9d>+qq})-*x-tK3ky zD|0A)W2wVSl;Opa;9$_Z9eB?mbUlG0eniIU$FvU3Xg>8W@he+5GbB?GV*{r5UoOH_ z0R*nW?%JlkB|q98yVySUL!d;dpY6E9H0dW>85TNO!4X*qE0UWHyOHBaAm9rc&FH~a?%F=@wV_y_Nf#t(%wAYn)E;1pXjF= zoXWG%Qy!EjWoJn`jj0*JF9`~%QJZI!Q&Qjz(MOwnrAX>~C_%CyC_a=gD=P`wa>O|L ztOqgz_O&g=ECf~p(zB%9L*5Zz^0yNA4jpe}n z1tnH6L^@)`rHl8-a5LhnYwSe0To)$xJ9fmpx;t#lDyhIBL#_&oxS)Abb70v~_lQ^= zow}r`qvyrjU%tRqE<^mVDk%8vEfIBN=bIQ7FL#H>oN{j-&AqbH`#X$dQi@_rE=!#! z_YB;WWwM0v;Ch>InY9m6v9tX^Bg~a;8EN@OaUcE;0 z82fDTMde6Hepy4ntqOMU24wbZ;#v;!;krz=y8|PBL;60165tF?LpqRL3Gn!`PDfE} zdS3x2m0O+3mHFVdZ8Ae!4&vN}cuEotXo=kj&O&g{zcG}FquOMLOSJFFi#C_T12k+8!=Wfjm~CLkhJCV zIWkZ@+m4Tjr2u(z(Gr+B_cJ8&7~D(}6HyB+c?U-3tF^p?fzsGCD2!H`R5ZTN5R0sq z?RDSeI*|8tr!M|6zr0w^jPK9S6TQo&C3``xH<@mthU7$(T*5%CCwA68uPUql<@P{Zw)>p>(Ja`Jw4Y)d5sMXzSKlNwpc+v@fnoL zdip%a9Rte+HShpU0i%`li!LfEIVI@=afb({yQW|h*oTX+YQcW^rXLxHdYN@s^Q-vM zD=UUERBI+Hggo51<)V2@@bA~tDsRFk+N_@I(hWhrQdZT6$u)u>Wn~IS^s4F6v*hV17WBx=U0&{@Z}DL;0;p{Q__*PB)R@0U)Y|Gz8jS32L=It zsrEXHV)ATGiFqqWOh<-r)}-}(k@|&`3LJK=jc6S7-w3T4F%Onjom}3vyT4c1vavOI znFRkDI}}&&6$4(tlG9)(SzVGKCea2c=Y{%xj$|klbC-fWR8-$aF1K3y@|}f_A?x3g zfojM$WehEty9Qp?U_&xgRQ}zO3MI^_=T~dTk3M!Z~pu^baVA> z;)>sdJZqEv8AP>jz2n`!wrA#^-LCuKx=G-qPa&5JU zrSivx>{8{;1T;3(TX0X0jJ4xRMEFd?)w6h5U}OIt0sSZ2#&-XkK^-X9uac#gb{DIM zI~sNT1KVR(a{9F75^e_x&;Za~ER~^c%{hXy8AW3=ybueZauZLlpm;mnhiL(8+AT*{njhpQo%gduU-j;tN$@ z$QmP^a;46=Zy=s%C3dW#E6Q&`qQ=%ei8Y{{-5$G%K~AB)-EM4;MXBuv-G=o9d`l3) zA10(W$-rCPo)^rAa68`nW4)MJKlx&|wx6Jbtye#dm!*TN+bEj;;ypXn+&3_cmgn(& z)-X_CXhwIVQGc&&aV(cPYsQkKHC4^|%M_;Q2KhnX(T0jQtB6NUiYD{fi1XJw>=cU4 zf!%hnJvkDAQe(^!y*UG0 z*_1%w1E7_Pt8kIRTr`+#xu}g&GqgJ~b8ZwBiV4yimhfVo8pqL=RZRF5OV7}%rEA)+ z883>~T-KpF+sGGkz3BcW??x9@ZsW4?2c*_3sFgQoQelNj?=nI%*qIQ+VY0*}OMN*G zwePP+Z)SY^wTSZW?gzwgfikBU4{bc1;f#&7>*&MOpW2k)R@AC#)5t zhyjguF6glJ6if#^+&K|fpLD&d#;&?7drLtr9-?%o%ks9Qo(WD(ptlR76b{pjFrGoc zzk1d*YL#DG`zEyS9o!!k!IVMApf^i`J80am=U=4Yx+)$avMjjXL$0@WivVauX(w!> zP^cZltHrNX)a-NMmJ~P%A@RT9WA;m>lkV7;LEo2?2Qd2 z{$59S;8jUr146QQ_!P%x|91+U-){=Gmg^Bf}Km-e+PIf?zM>=T-b9Xk(@= zL|(iX=9oZCq#!1Djf-c#QU}RUl@}(d$TI&Cmz%ZC%zUBO0E$+w0<<_o2Vbym-zwlv zDj`&!a7S!MB@AdyUQrfcCQPeI3JKdn7PGZk3t%}TGLfAgK#MG0t|?blVAhIY{xnDJ zx=b=wNzOn4SzGuYFKLREk>bh_UdUqrgNi0a#A`QUvha2;$4Fckctnxw7bDMr20ZL+ zS`W%zbB{LsNb&omQ>R*4KpZ@0rRgtGo0m?!^x;_hZGaM(h(#BYDy_F`PC^1;!gccJ|FBVRTv-g>M9lVZly%W|!5 zqt$VoaX0EqPgE?=byGGlU6R=q&~wNX{g-lKHCM2zi35Yq82+M=d|Ax=oXfv zU(+d;X0p~Ki6B5)87E%a5a?bUO8G>ZaHdl;gJyQp3_#oaN|$E*#; z(FCRoJ-p52UPuZ-<{wS+cs|g|3))Q$)^ks9Fpw~kAx@O|_WT>h(%mFXQOWUYa5hV1 zA)d!!lmtIMrW#2~7k2P?@>5Sp7UgB+cTXo@C2$#k4WGxCKJX!(8YFDGqMKqiUP_mn zGIhmHIUlhJYsXkL+VrRXr5~pum|)?ZwlDi3#6i9TGKc&@OFEBQNYkS;6lY#OjN}Al zaiD=%!7#?vKTyfPrmUOh%FkHUWTXb4kS;LQv)Nor@#g#__sN$&itmTiYknWOxnM9S znzO*Bgd=~VR>p1s(|gXj-RY8*Ld3L?7zM-&0y_8gwH{Zf4xAP}teH@Qoll1w87lM$ zF(p%mQwVLOkp`1f7mPn&I3GS|3TMF5lMa3Z-xO#Cw|T4po*#4d&Lusiy~sP`wS!MW>QHjlv%|0NCy48Ra(LwrfiJBI{|Ef&9t9?FM#FQu>4^>pFOp0A1g<~J^^r~rEQR;C3A5nbBhwG7IEK;C&|#zNjrGYUfLMs?{l z>PvG2*9xWD;5c6WkUTjgFvBSCTxRBFdhPGmR3(~rFg8D05hae{4=5{QVeY>S3Ef$| zxWnHn3DVd2k!}etcyHaLK5|3BZk{g}B)AbKJTE$KoYSLSMqNwRD?d1hqXl=illtxV zCZ=JW>tU;%x*n|8itS1uhJ1^A;hLji-tu-25?iPuq!jCi$vZexu#Q5aj9#Cdv=k`5 z^`Nt+WmdR(N~CEf=y&FYCI>UQ?4S(`XKH6$SeAg|(Q0LWh+&%iIlg3To>K=tkk|b_ zO{mO(;c+WrpI_PE2wQFwQok4Zz_1!BF_1m*Aagv^?A+I{dVulOR2QZA#C|oTH8-tC ze(CUWIikE9P-bA>|JlkNE~U922RB-9_4?;$)L-hLZ&x;s{S`*;SrjS6MOT(1+<7bP zK%620#M4Tbx{JNe=%N+oz?I8MpR<^p#wJ3bt2WTez3}PabN5GwRRU%th9Z?dow(p) z?I?3z_*eppW-?I}cDao>H3sR9zX-DoGLnW33PpO(4USD1rr^Su{2t5HbZdBRI(~22 ztyg(H&aq~KCoMbly4mqn8oQJ(!(VZ0I-GCo)ndRlq649Ljv4rp)-M73*l#a{IKPlg zKJ#4`V%nCUQSOi@|5XUaA(mfN0qTxasYOLnLXNRYKL%_3ip4znhNX7A2`FBXC?8iV!a^LCFcC0^H z_0u|$hYh+y^2Zf*pIcHZV#wTu*~Ywmu!P<3N3UP5P0`CVj4q-hW}D#*Eo($d8p&VO zn&+bVrzu<9qN%-DA%~}h+W?K(Zs!*mbb(l%y(=l ze=`@1pN89`&R)Vd{&JDw)ND~QKB@O@9hAD+w4pQI?W0pSU80SzB3Km;+F{NxxWE*> zBL3eOh59NkrFP8xA;0TTI5NzvtyoeA@OkLKa$TBmfjzznJ8aL8}}RshVZk zKA_R<#H%!9=%znXP}Xi3KJphp%)?IU8DwM*?ig(hRqy|WPyHzv+-(iY7}`M@%{H1c zU@B(dkUxn9U;$02eRSMr`voN{*6bHa*JwD}+` zqdJCPW3@b78tbw05NIm0&O}mvupvRjL6|^8bBp1#JtS8Acvq5QTd$mWu)U5a&MIb>yIe862p-fCl1MDynmz$2Wjm%(?*rNO@E}ufj%I1$$kK9paIPR(O7xfL9YcIL+kJ< zyGY=ll~B#VpC^Dll*>YtMKM8lVRPhrmbwh*Fcwr&9UpRxA~#Mngp3eJRRe%lu=ENQ zc_f(=6EoBiu=JHlvIM{3|1i(PDm|i;)3_dTz>%4pP$a;XI(!}vK^CM%86V(7iQGT( zCXNW>PGCg4AU?q6`060A!9Jd((*6m#R$+O+lmf*B72Y98ms{wS@f+g^Th(mhs8PKr z`Qoej^8Qa!Je4c`+lh`gd!mP#h~Pqfr#b6k0xKF?ZAr7@y0-N#9x z|Mg?;xhl*myYDs+UcaGz(cilj`mt;RDU3uzg|mv*EuLk zWR-Ic>Cs-OAjQb%2HU&tvihmH5n6Ou)K^9UO0@lh<(oDeeV?LP=`ON5j_dBvKT9J( zsw#bG30a4msrHaCxZ+ZY>5}NBn}D8tb+#DEdq@aQiY_om9;_@meZIv53*aXnBVm{y zoTgXf^umXi#DAp?w)*25E2kE`IEiBaMV+x-(LR*nd^FTDlE8q5VtC-A7=3EmA4JHb z(YneOi5RhkDo(t4%LUGoG6{F|1IEg# zzUW!sW8yMy)LX4n)F?D1+Rorxy{t}N1A{M2;ijO1NljiK_HCAU8 zE2}a9l_lI+ZVHr zLq@va)Pr$0Wxka2uliH+(nOGDNK8jh(+!AJ6QI~GS&2VT6B(z;=R(`WTi;x|j@X=J zYr1|Ux2{dE`V9Wmgt78{{+(OT^Ve}+tyGr>2l5EN_y{B{Es${LO!^!R(?hhM~e6Q&+WHzb<=dO>SBEJ z4dR#}`Qk3s!4`HfnM6vv*ur+Lz^yWk|9nOHuhdkR!9U#Oq<~I`sAMLLr0czz5AyQF z?azTIqmjjW+Pl86J5%I!8tOVs9j|C>!dVt2yuVTwt$V)aUJ~((8!(~ms{RlGP4jDm z7`wrCpfWE)RRFf;w#G}4@{VCwsoE$c?&mz`pPV06j~*_Jf0Q>T@eY_Pg;{O(P2ciO zLRlPx+L zMY>6l+?pCaS@pe-+b+Qj6JNVJuA?yi_cio36_g4=q8Lr!&Ek3Nq?jPXG&0Ysb7g7G zO7wM`oQd~WWgH9{g9TpR@r6U~b%XUW$`rB>l40B^HZ)$qTvYw$;Um`hz7Dq&Wn@&{ zv&OEV*$qz`2KO?)`x=+Yi^DWGBiXWp)?aO_{ePBE8pE9Qi(Q&dG&6$+gGERySGv<1 zqi60*2~A4o`Nnm*mC9B(PUrfBYHU*EwktLl(e-_c<>*of@Fn~dDke@x!OwzN z9VF5H8r|h|W92OPimZ7;BdE2oM#Tv$$2hZVTeNvAz{i!kh-;M5PNfDbAA-9<9H9?K z>!C>Vhnfo}W12AZH!O0sNfq&a)hs*V#lM*mDaJRJUc@yv)c2fiw;aKlUtF39#fp>fbM|?TI0M@TsDjqYw@;{b2fLL!w zR_xpI5+Z&|8jd}gRzdm@v*9q)swO7kP%DezKgHk*@aO3&K%G30qg=t9G$Ww0w%1)gcC+F&ZA9T#0vZ)k|L7s2iEi@?RUxmb`hv~EHV z^(?<&kzJh_c>!tANV2OS2%V{cx%6bHh@$$hWdv~Go!lO_ypaJeBu3WJ(1G-}l?z{8 zV>ZUz-|(cY3NC!}0{d1BPXQElzb;=a7rP{wIiYuF8%}$ecFo5(qSxXEAIL^wpida| zEl^4VOf=)E&*g~ecxes;3~+%cVtL#7bEFWKy!OZ{2F}BV?eCkBC~}SBPZc=0dO#y$ zEdcNkFl%3QJS2u9m%WpK3ndg4E=v?~Jj*m;jfxEQ9cwK4sMId&n>=Cv@aq}<_sbZY z&L28QCPGP^T`yJLcBKcKrqHYQ=%~CM;~uvGyo_LH4ZMi?cHN7La{ID(MHz#o_^E$ug5UBz!F^w z7bm5a^Ssz+0%a7&RJl|I^NN@IaJsyx)NMiehfIBP#uyy)--xmNLyizLp9>Po6)6SR zDNT|_n_GbfZ=~csI$KzPhm-*_0PfI+wzW&agvp;C>92z{_J@IUmsS72Rfjr(A;0km zx-5(P5fW>*_soMSw=!{31kZ0|Ix|$&fdR=DMW#j5eOMc$nKzC%?Gp;vHzYN7AUALJ zrrOh^rI<2uI`uCVXU26_vNfMT_SS*aAprL(ako;PlMloHTIqt8`6OCr_p;Ssi>UEj zgqla!V>v#XmO;e9Y*wXG8RpojKJ$p08_!((mW-yqEJi3nNW*D1H*@FtQa<3G%k2{s z)GR~Hbc_H>HDYM4OTgsICV)ky+QAsG0P0G{n)oX?pk zC^3R+$-mOA_`V87j&jGaJHMr9bSMGAzrjm0xX3CONrijlB5_iluGfx1&rN?|YL-#M zx{az9`jEC!oG@*vNS|RjXdc|prUyD01$B1r_mEdTZ|o6jiq4y7-)uZ9wWt?Hrv03Y zaY7|kC@}aK)!VJYcX(WYgUhKL{Ie z%_rDYHK|MgMStI4pIN`XzTnl~Q*Obb0J3-nMO~o`5qhyojqhJRxi>$nC6tNjT}v=g zjH7sc+s)feUouo4D$L^_YPnV@>Tf>qc2DlADCC6;HYqO7L&s%)K12`1%MCF^GAC2X z@nEAR4Do6W?3FuOs&YTMTi{<<3QZ2dhNih9yVF+^GQEz$9)05nT1wN?Fd!J_4UF>4 z8cGSh9FfuqDADQJk@C3EC21Z&95MvC4~&2w|FZcjUaRUFha~`f|2Tyqe|#f)J@k$3 zKRHFy+styn#gaE%#`Hy;25b>C-DqEnW6_79-V}P&AqZvBR4@#qjj?e)d?U5J9q+HC zdxc&RVMFVh9vMpW92#SX8QA~zqew;zAwTkL3_1zsEZ7U&>1?Oq*|7e!D}JTkNRi23 zPApR*N%`2gUEH z#HD}G?*bX8oEmm0D^!5J+>WFMMz&7#H0Qqk#8G#6RlzgXneuAwxwLz@xuPV+UH1SG z1!{D_(+aX1Yu|Ow2RFQu7S%p8k&zzpEZfs|)CXoGnN6|IluvkqSATx|=>}bo z9kP0~XHf8P?Ksu(xwIc@hDz*ZkFL%{mFrR8j2rZ#M>oy(fT{(4@NLz{tkhK=I+mGS z!xUrx15H4(zo{5p+F6M!{Z%hfMqv~K&&xQjt3p6k-7S}7xLznCO{KAzCZSl54zUQp z57-lHE@BJ>n;QO;_@lNk8q3HOVaOkqXK6J;VbNNQ7IIywsfyvmQ(;vV?!Gdp#=Ed; z-tb_zRASGj(kS+7NueFQ!pzPt|;}n|(Q339!@I?1TRq!1VdI8qOgS&nh4Mn;D| z{3yrJjWa8eTElLv=i>?3S6|{PeOLsUhCJWF?}Q4^l=jtsThsEz9F3NP3M=NIRmH4Y zVQCJlNBY3m194Rq;p(Ap^~;xF7V!)#ODy=bE`8vu@=1|j#1jCf?&ou8L14*+1%Z=| zo$%Cd%&X&Ww>|W5lEeyRNnhP}{OlK`6gmngw+;`bi_4b2xjwJv;KUkD)#THh$xZgQqVVPO=DbOcDSU*RnULjfe zqxF*n)}Q}^jsl{HqjkkDuBww^{v|~imXpRH-aSv-CO+(P2v)Rtv~T*A5MGVNkMvd8 z#3TtVjTj%wr-n8n*Gy^f&L8E&O7kJs2xcvP+EQT}7xK%z!6>Tt76@X(Ke3I$3>0|u zd{qgt#5qld6_%^6!BYFM1{9WDSPui|K@R1#@}4{ry83{u)%38@k7N^d6qi`IjN#m! z?$B8UKJ0{&uK6yUj&U}Oa>%6-cEqb=zmXp(9LR{Q-Zoukl*-w5zy2Jv>*_0A8s2P4 z6S%s>Cu^RQOjJDx>oj(}yTq24`DxVpWkTKHJK&o~ra=EgBNUd_fgqGhVaW!ohRTlo z5SM{PSW#jLRRWh3)@l{{O8)ne0Sg>2enpYD+^E zuW3|jDbsRi9P*77t7lcG4Pn@t(vO!iubz*tt6~; zT{&QAKh1R1-VG8sqf|BY`3`Zpb$%lnEz>9?#>qDSCe&0Om<=I@?h(z6=XzOK##SK(g>kmDpT=RI8z{=GE%RyKxQA+7YMX}-X6_Hcw zDZfggc~v%%Lb9fZ?f{lM>m$&K`~bCWR5_-e~lC3WrZcH zh8he*>7v4t3+v^CqZ)bEBS~$X0yC~O9_e_0_+$7;$73CtM6+S%vF@F>`znPCtB#qH zE2(q%y1t{{b;ly&D%KBeUJn-*9qH6kA{S=lRG8p?_qtFTt3M)oT+MCsYSN>DrO#aS zn!{br*Po59D&LIxr4C_K8uP3tBx;OXWn~<_$|!|p(@XKA16B<`g}Xi4_>D~Aw~AIZ z=BsEduwFhGe!P2LIoU$9uryrO9L)dCXT!?*tPHJ_p8e&RcSd0ygCpWqyu)LcyxD?$ zq#EI0la0=H-czRtyfOynLad}l*UQAh^Fc&;`t=y|#WY&jEUh=g%E|Fc;B8PL2 zYYRv7) zk*+Gwv3>%P2?hD3U0SLWKgj4BS9IQ|1+~@Ni`6sCaSDs(NeWA&|9n*h7JhXxu5_`= zXO+8^s3lT8hpYdpUwy58PtsRB)?ukG+`FDVtKh=&OV7F20nxguQPk+aJ2B@dign?B z-}R+8op!s{w;E7ZTh(hgB-z;4pRcK~T#If7#2Sg#(%&A1NsSBCxX~uv!-Nbt)Cozl zFpvvF`rE4yLKA$3mFs}QB8Fb&!}_S0(P3N(Q9KY9*vjMRLuVnT;q%3~hEM+@VBE6| zU`q{I_0yaQquOy)RKX#T?tb;9{|fOBTK_?>5zdEK zVKIRR$Xx{}K<_(~)BugX2uU(aL_y1Mr+UX&g{6*GWk>#024ZP2 ztgu$O_D#gKn_BW?iCKyuz4)B)V|w-sx9}9%uRNkn1-EH1dlyy~SnxTy@6jX|RzRu^ z>tpbHlE6aQ+jH)Z7e+<6sT(W~yzCq^S%j}2<;m7?4lb;*#H#W$6#l1ybXevG^TFG5 zFTANYn@BT!ja9oaG|g0GC#^;*tg7%n3M^Z{nom+%EP*EfkRCazMV2EO%XrjVe zE0F+ig?w$689AhH6-Bjs<6@wkmYV%aD$LUU%4nI zHZib@xs|o%TDqfTF?3+m%mPna`4JsW9{XtuOQu&Uto(s5ODhkD9u(?C7^xWwi509; z#?jK@u5R_F4}3AH9|QkkA^J&wF?XW^7?w-9iQqzc(~s+n!m`R zV+jG~hwsO{v@cv$!KQ*wp~PCzhT#b6F)jv(%tBMUuQa(T26!UWH49{oC6;6iID}84 z%2?v6JV&Z{#RoaxuPOsidR+Dtz;icMVGWfL3hS!{)k9Rxz$z7;1Lenxfot%pr&KP& z6xG$R3u{;>(JX?cX4~?fpH5??xE4eNQW-zGu(Z-1?5S#*%gS#^TQ7lT6j(eFqLKIt zSw*1vo@*;C)!WWGn%xFj-2Nc$SK0JR6tDr5(0v!RpCZd2_9*`1vm%OV#+qD4<+WSR(|M%0-3s zNxF(x{iIMM#f>toK^Yn}5~>CqSa4wthkM?g4!NARsmkNmcH6tc<~z3sZElZ;UEiK| z^L~>M(NYvU_Ccv+IN8Ka6jprwnTJGH8}wIg)f5}_`t#Kk7GYKNH%qIjxKgo9B9+vb zC3t(#JtNZzF^{yYt?*+}(g~Na!%KEqVQHT1sCs1_*7DcD(5>%oQpdg;S zC?aX375xwe>TNMF2#Z~^;7@3;-DC(v9r={d6w;c8Q+!y8!mzU_&jhd1h~qO zhUjz{?0*tju4EQnSnHt>&^Xp*@}%aJLAATvo=#nN%Ek<^=Da%{x7*WUo7(Ph+;)dk zn-$fmlf+7SeCX25(~XJ+>vMmd^Y6Jd3364LNseVVMs#@(vMg7R1#PpTO4xwp?$lgY z4#GmG!R-?3b;wFS?9tf`d1ZpZ*{((_ZVbO-ppHQD$cx@rg|ALgSj#s(CH&;Hedg4| zMTxbd&Wfs+or6|=@iW3fS}8kn{o=BkU$U!smyy(*x0y!g+;)#`hFEvkoQ`cuyTdVs z<0^Gs-naiQsdoE)m*yVkUT4=^m%>RlRqUlMqp{X)f>8X_QeG8wVu*b875gjlN{t5Y zXW(yFGmTi{4xQe(&;pe(2)xw}TjK&^*_NV`rLK#no4aVxfFseo=N!xZE>`QkS6>vMO7JsB@Q>y6$*5wx?{DB-=lY zHf^`hQf%HOA$|Zj0=B-GRovy`#p+&2D>AHpIB9l)WnRB-Sc5M&?&pE5_>C>XP{A!- zCI-W*n8(j|!WXX=xgL-=o-ZMm)wl3pe(5P8qufV6C9JbGd@ZA|)Va65^2q8+u<~J0 zkcv)TED$Ric-`&7Qo%T5s%vxUQFZLw!zqPz*XG~(aOk2myZurBb!T+7`XhPU>2SQ8 za~M`~P{UeaSZ^q?Af8;jUMVojEhHRuhi|58>}rJd!{;4b=W9WL)q|f=Vd;a=jPS&_ zOf}H3=)D_WEp;WukhjklUZ1WAXI-VGsXnaXGN7$j^VOD-_jw(@U)`g|x~z>Q930vHu-H+Rc<`Ga4d|5F87rvrPp#| z94!?V%b$1k2W~{KP*iuKPaN*rQ-)CXyYIqa8}h-SfWb|VGmbQSmYBpFb`hono>j(22w?99;uWw z0ZkU~*0Os1Y1`H71_O{$s7ORw(P}xMu+&XbSh_b{SbCKZIs9a-VWmq=&?*`Skje!w zP(?TB!g8U^5_F#2QHLfB$8c#ycxWHgaM&M?d6u?)P{X!8Z+cUsTie|3Pwh|O!U}nn z1(uqAMqJhU3T&ff@;X+%pIDO>y3N>9L-1WStbtyv8+BrdsBaI!NccK^fh&fAYD|~9 z(GzO}atx7G=95hNG07GPHZ2ZI{Un8@@*xD4N#%jdxBe$T7Kmk?rAT)_AXHU1=yhLx z4L%_wvZsy;UFT6KrPMY}KWe-1viGyQ*de=bQLp>v`G7F4Dj8_7OU^7^C4<({(Fng& zRLv2NpcS4MWuvcZQ1eNHT|Z{jGfi*uJ;J{s#5Ez)ry0epFqQ0bDK?pB#Xj8(Cz)=K zHD+^QNU5Ff*YIJ*H|p)fa$l({;L6qEqZ+RsC%G%!SGwSJA4n~;E{B`73@q&_>nFK* zRW?lBH~;*7!7EZBKvj5|)|5+(f2jRg?kI^oK}b8JPkAcTNS%h)4Qrrg(Ewby*^j8c z1+FQu!4IL94lSl~&|3AKRc#@8bQ@D+X>M@UiM8m$ni}b@cB&8SQ}C*eap#0dM^{A? z%+jTh2Klipv&5@G7Z$_ZIX8w>QZo?1t}XKh6=hZ_kpfmm)>@c}o>;=zb27}tkr{I% zOT$uJsmHs7HeV^Mp$5RsO04SGTJ_V4HIQipPq-HG#*Md_L($U#k4$_9AjOvcss?cC zYx;7w2GucTP+|Qpm%EVVQO&H%cje=t8Vf9W+>I*zqLaF!3+v*yx?szWs#DhvegN#} z`oLENxvvW)vwmWfek`@f(gkMWMj7fTQWA_%e;q zsC-~V-q7kZVN_Sex^Lozx3Lj+I`S#uQkUiv71oFU|2+6tjQ{$Uf4S{zSw4UJw)%z_ zbK;jv?yag6@D5^C<=gM|BSKB0MG8L+lrd%lBzdCkv;NrE;(M+J6J;$mwa$&EeIHiG zX{}@EP_6nYAt^(iQF3XQ$2P#Ek(&7Ba^)bbxGKvH9|zx-A2rqAmxva5-_0Ix^N=#k zv-<1LlxRkxK<6c9ycw&objdbYw9K0qe?CB8J^c0XS5dyX0$hl|LV_88H^-GOEIYC2 z!dd_`qqUNF=P?G0*{UnMumVHt+~z83tkuH_rA{}%<*tIASSk>vcW=CScEuw_K?-Ki zen6P}?Phj=E()KquG5JHSp&zFD)>}oV~_#+>;uz6jI`j^ow%r4U~sC!a>2MTqS}R3 zhK)XCQ56?R6|joSWmO?7lPUk~ztSa6sjENmg~x=oVj7rYNV^BKKM*E*&lS(mH@S*j zaAF13w4JOnPfASrgVIR3fb*UVs@g_cRUz=#)=ov^AvuSTe^;76)Yl{+|tAKoX^VhJgm2C zhqvPZX{KHM%^Y$|&FvtohA9V=OF|Z`DiK48tC%48fN$bxpivdq9>Zt9{tSs0WiSqF zI1Gz3mfK=f7MM(yUv7wHN$$K;|!>`oRrKO#|g@2pql3jO+p98c~QT7H`?U*L97V%z=pw$bk z&z4w5mbulJ{~ec(ghjfBz89hTURTtC41W4X{qPx&VG5)a#T6Y|KT}Y{Iu3ekQK}zl zw%y;~ADSwfLCDh3ZF9fdY)(h;ts)i)sOozA2OQk!;&K_+9)xg4@=jh z`>K#wxi2Ez-J^UQ@IetzYj@n{eocJYs(!vM_x?y|weturyPMMSzT0i@_gOME+ijLw z?JhNseY@-XP1fooNwW(=1|vsxD*S3uq#k%Na%j9vA;C+Nnfu(uDM>8(ucG#+yCz#QqEh$x;ndvi z`~G;p&wabu?Q`E{Qf2cYHtn{tExru4y+7=;CHico3mp+#`q8^i5yqwKI^ES!W8I>{ zs^hQThO9eqgUqtC-0O8tcKvME7zasH4Uu2oi|^R0ovg5y6BX9-qhJ*k-gap#Fw4|p z{HVg*U3?~l&pl@U6|LmLstf(?=m)&>Sm)NooIO~!@&34JyQV-Av=)G5aLE$AmJsN5 z)hBONqk3~;Sm@s-u}Cb-o;qb;jAcb$h3ZXaW?J@wVON8#ANx;vv>dCjE|=v?E-bs< zgHvKLmKGCa*@)iay7(=F08@ubQ>3g@`{AQ(%eI^)W+E_Uw$JeS0Q5;AZoVl z?ta$;YPY*@B%%8LusNM}eTiwCvgT?x8D7D!4642l+h*74Tla2MHKIY~`*(G)o=d-Q zRYx`sSg5!6^@+Fhie-sh?N!u*UF*Ua)027;!b?LPVF4cBfxn`p{H-C0XVJ*alrz}|Oo(?g{ zZQAd*nKh?OpHs8V%<1k^NT=g{UcB!zyPD>7Xt(!W)7@|T17pg%tGz!o+x=mahnvi_ zY;N;$625g`4Bw*W(p*!TuJvk;FU@aJVGXH4%-=*Tho$4)KI28kC}xdoaePEyeM6@@ zIYOHidTX=~>vak%UmxXh_rb6zo_%v&#V>$$e#L8CB{KJ^FwCfR|iSYWS$9 z3E@Rb*`{mWZ|2CquKaz0D!H{HX>@k7Z}Y5+esef(@6 z^R!Ewe%K!#^Ys3hsHPOi1zSwve+S?|w(}KeRl}(=-GshM7Y~K*UR{zrNd>nw0%yb& zZZ>SRq!n9Z3IclQ6QnL%$0{tQVo*N{U&*Ou+__3wsjE`EYoIDf6}S?!@HXLp#Vmc` z>p4vXM-{oW;C7BlIc}Px$2|!hl2m=8mkN~@t8K%yNo~q)Zu+lbM}L?5v%*Sqr(H41 zdr}zBx}|TJpvE$b3W_>QHjwRFJ}jOGJ*7$QjXfo-$Ep(x0*Uf-NXSpS+fQFC!eT z7Bxy7z;YWBt5Q{iPYvHdES}d89EGofsR7R5pE8ypw|t|1f}jN*9u$sMSd>-TKZah5 z$c{`}#Shd9VhLO;Izt$=&6|T73mt7^iTVRi1Nc_?S4$PpAf{o?dj0OFwzF zOs;-CdJP1*pd4|vRzHy5*j6lR@TGLDd!yH4biJ^K@=~vHx*=i>)9P>hkRtL^ArK4i z)Kn3o?&_~U8+hiOikK%{@s{yV39H$JP^^#ivfK6UpIH?(&VhDise)Q6q!wP!k;eMJ ze-JI}LGGyc7>i_{2XKPTPhI)VXFIV(t==Lw=@QIhcQogURYUOfc$wpo4=1nCb<5isx)Qg_u3#oKU>5q7yT8BHSz`%M&W2TsEJMrX<6Z53QZw@PWg^Zkp*LT@d(cW;3edzL z6jZF_Q6R_ElEH-1?&?%1RPlq-+GmqjWwYUnxMiSK((LNtm=(I*{MbT3@%lR>T>~e0 zi%?u)&n`Cc+o~mi$`YKeD&xUL393d$;)?G@8^#nKTvzX&apucIM zV(@5kwmF6xGqf~%aZIzk`}(rQCM?~c!cwRDx2eH|ELE;mP!gxKSVcgr-1_gq3@o3!N&<1EI%e^=jd&vK^E%x4egOSl7gWhP2-z zvD8Cg{f)%3Ba1F9kCAghfZ#&4H;43M*MVHg6Ut|wcUfumBScea$<-utuVS7d5BxP^#|L`={*4 zKogOrtM;MSR_)}Fo93BqG-x9w<bn;#Kc zU6Ehf^yLap_Yt0}ThLg~yV+^{Thn(X$tg1npRHG6WO{w}(;UR|x~ZfcwNq@04-1Qz z%hIAO-ph%fTKU@Rq7JLqvf`!7xFKT1;JRxSqnQ5>0vF{swSm zWCB&ZT;E=lhLi+RFVrB4R6lJiR@7Qx8H2ikT1+zyM?EEcb%`jfs6tf?c{22IFkc$1 zd>YiHiKpO}4}|}ZyED*j97ndcwnang`PW%BkTkFWjDbDBG8wpccIN$G?uI_%hbomg zO=s-e$t}?&MNzaIAP0v>#bV9{R+Z2)^`N13T&j9%(fSb$39EQqU8Vt^~nfCVG`>t9^{n?uRIGn}PZr%texGeGK8=70ht)eDsE#l+N` zSBPaUsS}*9mQuGHXDkard`zKZJAq*L1FWa%IR9Mi<#;gv?vZ-^aJ=gJ@VMaBoycGh z9|BKu0W!rf?m{z}1ui9vbRZSiRWeMrn=-6EC|Ld1Y(J55RyVJ6@xdPp&h<}=S?ePw zNmxO)qI?5NIQNDxe;Z~1yc1GcLDg&guo^ua49*c9xp1t{Z!@74=0$glS|VBVYc^SKbpx<)`1iL_hQ_zqm3W20 zuoBXhm=sEtkjwZt6x710RE>oCGXzSVHIn?h=!S8p50-3|cje|*wHOq;4`K0e1qS@} zd$=FSua5C)=fNWDeIB(Jm~8I;Y*C7t9u!Ii-Rz4*FI?g0z~Hp4(W;L~? z=+#wl^;L<(@+(5jpkRe?$&#=tI{9_<2s6r6`q6-8$GRGIy%!cs2#M@|$+)a^LYG&y zTv1QlM)Ai2TZ#nlLbQi%3AJm^LveG@rp~&M+jF|-Tf&{_N;ELQ0|Cd6vhC*`dCGeP zbw+#Nbj5-5VPK?;~E4P1j@sp3Ln zsW6)R|06mwVAUa$zZEUMoUr?Y%)K7QZAe%|DjmEe%&lB0XtYRN7N=NpC_}o}&>gizkm6zQ8gm76*IMrjZzZD}G;65`#@TQ*WE9IbYdmtsFQDuIf4fCGLp+rOLRl^Z~6nBEzDg1+D1Rjn1E;g* za$cO_RhK7&h6J(54SBM8L8u47ifdfC*IUA%U(fUEyu2*j9g3ygvYW>7IF3_I78@>? zhxK(kO15dpopx6-LiZ-Kn~vsT*I;#Md<@_Cw0WKf(}VUxkEb%YaZJcY?U4=um)E40 z1IbH`%BkX@g)@VS8p8t7RJP$&4lQ%-8^TDml=GTUIY!t94x%FmsKVa#j_`{a;KncZ z{&j<~8YhH67Q&Qtb{0Pil*$#nvIG>l6|Z;QpmWwi@09>Dxta#SO6caDvOJ1CNQid< zYYGdyHN#4S1*h=>9n)|&jb~A;exl{|>~Ng9=Md3qJkxnTTCgyqWCUQ8^U$tf4ffHp zjXz_~x50X9&BsIKF|aiHaT7>*yj*?BnaSs_&>ygjVyV7!1FPI|;rCZ2-Tw4}d+~M!>ob zKA~4R6Fh}jeTHzU$~;igRnF8kH=%Gr*K(b>SvrgRJ42}Urj0I~KdfC#@5ZnUp*rrm zzSpd4FwKM9NA3UkID3BrXI!NNSm8$59alaSZI(v!WSZ}tw_a-=XpP_Cehg*-E1LzZ zX%-;Xe&fsI1+DOPcv^183S@bw1{=;@x6-x_`GAJiz_2)Nw*hBSrB;4ri=XmGIQ8to zD#%zw@SEA-s{^NUj(xd)7r*rY>6C2ZIQ^T%v0-1hPS?g`!x{z((UJGr(58^F+*`v% z=R!4yeHlG|$#BN9s}coW;Ly@R$(6DPH}3EEFI8A;1*}O-DvfioL3Gd|3N~*&2IHo`VpszVuKpYC0-I^$+Xox@c;$Wt zfr`o%z1kTT=k3;w2=2?Vf~Rs&$@r8HwdTre`4c`^kzmCMp)l+7p|&mao|dlVQ`x() z)gIn!gk*{97x-ayjt;ZPnZ-Et&^2{Lb}zkf)VdsO8+Q5l5Xk^t2=C{`_4Uca;<9x& zf;FN}Cwv{i1xHFoY5}o8x=IH#%FD((z9t(j4hpdh>WE&^$=le*u)eJs7O;NcH%1#j zp{);<4l)~(uN*m(0a^yybgf;(qDQ-ZW=1HyA|SHXHV30kS95rVoLKnGX9Zax)?6aY z97A+uSk{|tPxi4b6^gZB6`TofMaEoFbvmdwZxWf-3FU-R!YGOFKFo}ZllvNCpmew2mSOsn|m(IBnQc_0(aIV^+G78_*U|{<+I8b`3f)hnb0ye z*xo*hSxrVi0x5s^*vO~Ec3!N0h9U{3U{^@!r#%_aB_n*Y2Ef5IM0|G)>%<87h$5^% z==}0o5UgBK{a&vKCyNOQ?*ZPuK}xpmvF?M;_)wdApB9_Ee3l$y>3pbv#q}DNwZld` zHa`k)9;=Qb61q5WfmpjUaImlR^%@o}?GhH6JBJA?llM|34A$$1y`Ntb;rpJK{8CvN z(iMnxIe(risA7<-c|OP;|7QqR*BK?s1eK8!)!x#oauK~shw8eQ5DzT(%R}h=(n8v+ zBtn)oH9XMwVPhvSZn^y$7eLA5)!u4Fkdit(itilfIZXH%<;@f;r6-2v?VtB%tx_N! zqn%+zz)E#A{3c#>to{+sIIZKWMGF!;T9~d}&fDJ-MuOE8DA`I_6dXdUU(HtaB?-PV zNWG?KfmL8y5G<-3L`Oz&BEKGiz&UEFb_Uo!9>*&Fp-`+7)4>zL8cIdE)8@&nmd=7{ zod}wk1a3l9Xe;cBX6%8*hNsh=B&=fy=a~*hjt|`Ed>oJGNL^;}A0X9pK1!A$tI(`$%00t!v%*;0LIDULP4IiCzr6qM4S)fvQF8D_O;*h`&!X@<*I)QGQ4627mvr`?R06gUp!A>VG zV%;rm7epw#ck0Z=H8+|k305ywR>wt3xAb`oLv~&|MnQo}xzo6MQQ6lh%n*I^K|be? zKRdVA#8W`A{szNJlLJ3L_|X%rX+ffCrbCE;Y~n5}(fAKK$toIFw(V8WO{Q*-#KMZ8 zB?;>}S8~c3aHZk`Q-ZFHQ#liOMe`a~#;gHQ=^{<4w}f_kKh}NtX<^4ZIt2{{w%ABD zx0}lVl1hDaitiQD75Y?++oxLqDhyJEfMp}UKR~`t_wd7->Jrv#1vom=*R9!0$^1{x zE6=4Azk*ZnDz`8QkW>Y%%{P%u4bj{O`=Gsl7r> zLvWd29|0ca9=ABFaI8vXciI?~&j%w}X`x5^lAiz~Lbj`xlMbCYMy9I*Ic_@{Us4cC zoqcRk>sE^Sbrt4k7SWqOrSD?=7Cmb7rKp6=?BlCW;Jd7u}4HDC|o}gvThU7~RNOKBxm=(iI|N zoxrcVGb|z_r*mXj(5GU~?R;nHmdvuQ>Ni?sY++b=Y0#EtzgscGGY{(Cd0ww!y>xx? z_u56@GWmZk;P8)un@q4j0CvbtGy`1LHPkGoc6{u5hSg57J`16|FP3J7#i`*^B4VLn ziD2b?ackf`VOUB?di_ALd~{^%?q0F*UXVhmwnxSOBO+E=m!mg=xsr`Jo^d2a>iW+w zi|CC4{L&Fi0G5BS=YPV^#%&uvP5r zN7;%WdTwG^xeu!ut(`^tI3G7-l)iysO^g!}H|a>)BAV%6#YVu$&-xJFAztXX0)}X+bFiA3QK{h1J zC?ud#74#`2OZf?j>X-k@ela*zsM*PKEhQU%27Z+Xk=6Bgrh?Wp3%121@umzbZHn&9 z3TJoGEUKx!XRIL2cc@J=)TV)9fiIm~qmA<49k!6w40^a)!tjtFrwyd3 zNLcg^u3H#4d_aa(KuM^ha?c89_!DgFkH!AfWtbHpg^THGqDV}JS7VT>V}qFlBD2$u z!^5pb_uj&d$1D4Ju@l1pjJKvUds`k z8-OY#ccLQ$FhZ94WR4Tg>wP}@DxI`2ETpPS6$F#6#6_KT1#7y@oeCOBhj-k}c$nf1 zQPvB(LFfe;^Bz}zhv?wR)!o#bvLj3JW!q!qM%cNTVZF4yo=aT~lutqhhgk%cfD3wt zMNb1XS8G`3>Ns&%*Y3Lv3pdft#W%1oC6hHXESg(w2bm&SW|i~juOe6CSjmmSHs_77~`jDhpRI zEY?GFK(sPEu_i}n*cQdg!I9bE3m6G_gzCguur6>a`hWP9IY?M1L#$v~dvYSY+sT}0 zmzfWOc8KjZ_yX&24C;N^GQ73$#NtEsP7Etm7C+}Sa_LA{unjv{azmH-uwjo~YN9q( z#L{QO2CtKOVJ;9KPxN+8@vyJ}hk;=YjPkf)PlBnifpl0l=%bNd_m+@qqm6bZsH#6; zSU)`@VdWADOMVTn1#S(wZF53s;$aaT`3jw>^Na~o8&zuI^HD4@BRs*VNWvZoQM$N5 zR|jAjer3p&U8Y0ELLbqrZ3zp1EMd}vk1a|JhXP`BxGiAyXAev4`5s&?qX$)trnj@6 zrK!Ih*o8YaXjo`M8;8`Wq1djtgT1&>=P;E^wy}o3{khJtu++srSlW&-cJ`;UZs!Gw-NElL;`O-vG1 zyCK7ZRbV6kfa?H$z5gHQpPX)W$5BiysU=K8+D<^0cZ|QZ12uCk1jXQS<`B@AHm_mP z2YZR}yN+|QgLTx}*`0KRKdMmWC{#=B02|kJJ7lWDu->>G#f}LfrCF6z%AA~bWhquh zs%JU5>r-(Wo&RYV*1VRm>OuTyugmdK)v~BZhmSM5sQNJDY8FZqKmNDn#-Dz#3^5EQD2ny5B?%eQ_HGe%siS zXV;|$@u((Z(F(j72IUqkrXfZ#omPCYcjpkQ28Px9sWR&Yz)R{m^ZLF5J3SU9EL?4Dqx`Et93*=qNOp^XJsx(>LS%!VF)0} zgYtujqw{Umg$VQC(XjmDXZu&6Nza2IwZAwBKoAhx_9c{|^(1XI{-1sg_ zp{yWx4|&R&J_f~f3idcJECenyYXq#wz$yaI_(3oLX^&vVmGIIKnssZ2m6Cy!Xpj^b z7R~3QcY!(-NempA4u|2zgG(dBQtlJLm3m7Gr*1cea1UeULFth~1RC3?&an86EV&-X z^E$qtiPv==4u^w9%f|vmWIAWHpqnG=lCD-57FMNQjS?1MrDXLhC3u!H&#;770xyYJ zIYo9=KC?he8+>)Ob%FaY4-Y0S#~04Sl?Q#e#KC>K$mREEJhs3goAUKMP=^w#yq(M~ za7MAH-i z&!SmHz9KzWAWMmLIpl6ZO(!@4mz1eARnF+{yU>wF&fl>u7?BUOcHR^MQGfg{lhaj@ zu*ghQhf5{r91K!Wi9zJ3RhtP`R_mNfcHvhy_QP7g4{Y1-rq07^e2oq*epr!ZQ6oe| z#fG3N)t)oPa&BN)ZNHHK6|qB^+?i=1!5OH5U@$B+daTN@IGQ(7?S`)yyVSSZ*NZm; zsFit^*W4+2J2;yibf!}@7D0;vfkiq~NfqpgbyYZktoKf^KxnB`#!l207t%lfyVx(~ zs!^YSE9ZWdOAU;71A~Zh86C`VtBP}|isj(i!-?h3-Tx|LnXPoD1|C-7YjkMPus|#w zBzsJChJ!L*e~fBOtp*KCR{4!n`TEM(^FfHjq>ue^jAB)~m?m9 zfmk9|TA~BRBC`fo6}cIlMUB zrany?mSb5Qq})1eBEriq42gv;Ut^E?*u=2vzmXmwRwQ7G=n&${ykr1fG;&}xtwY-Qd zf8d&7!EhoE>o(AD9(P@8W>^)m-8VZ=1s>O0vN8U63`{#OGK6A^j;#!&I*Y0II# zgIxut)GeAJ~>BvlHK4*}DUIlKH4&cRk==$U*nR%$0e}3Sqkzx51zzgZUGofYX z<76He$QsW62L+do+=2UB))IpA?l- zquYL>5w0jofMf#8s8U`3T)akSq9cP=&V%S`4J z$K6XK2 zkh@wKAoOO&j%g~_?KpkkMWcu2dv)2}UbxtkzT|Lu_&97z>M%^3>@xSr&#C*(W2oj} z7y~o=e)~6?LHfr*9sC%UXhE-xwk6}`U`baotQxnXk%r&CT5AL=K&#Lzax)#Iv}QK? z8WTVTRAGS2>aZ$Sob82fj6qAOziWo2%rGlLHW&l2LW6Kg`W1y`St?hK5HcG4UeH8+ z-&EXL>`aA|dq`M`(?0*__fV!9!xAv1+|_roGtE9F@UYqHFcq$uhp2zarNe2@uMDQ& z{H8~&{zm`p4rL>(L7}{SrOfX6)u>_7+GZ28!7DU(P>Xn2@@Wvq`XA=5u&Z$-*VaJI z!1RnADrfiQ@2hjij&%Kg`xRGT=DcWgPcFM9+q}^Zcxw=-VQ0;Emm0D1E zf%P|&-RkQAbb;wAQj14GGMpGV(DkKS&!7Khf~CMI0k__H6R40Z%=s<>OdV%pHP3s) z_wgS1ga)Nn!qP;`Hhk~vM^Yq9xHb0O!@J(K*0y#(6 z;y(yO-p7?c`_q=i`Dg{A1%d_0B7+D|LleU?HXpxG%br_Q_j(FkeW3%5M-|1Q!4fQV zM`lZ=sKHV!E13h3G>~Ch!N6x1S%T+H2xcVZ2ks=8_?i-(!NUTuOaLjN8VhQ!WD%lK ztPl_y#tv{xHGJoe$`X0T${dlh(rFP37oTD2_jWKtiTKiD{z5{FRBG^lFnW+?76=p# ze_AH^lK@&+^-QPgK`Oao%&^)!y5B)?pCpBUS484N8CD(2QbNWlkgTcL?li?B2`ky2 zFalVHVp+-D0+PDm7ZC0=VSwKkJ`wgNCmU66pAaSBwdNK!$?PuCHx9H7-9*Al9ZyaO zNNH*5aAo4SVFF9(1CSpIMos=@p$1 z;#_8(5vu(r1a{uWVOuRjivot>qg**L@U_FA&b!5PF&WWLPe4@cBd)-zVq;08)o@tC zVuqE9s)eA47P*S9+_J4@u(qI}0v~w^RA@Z_#g(HSSR>)%H)^7pM(569gS3x|R0G zyE@i^!K!+ygI~oc^lR8xu{3Bs&`12*T81Sop;=-b@JjGwd;68`W&<4BUe~}ad8_)x zwtt&NSo;- zWBbzpt%g~2Qk)B!buZJG11!Un;KvNB9sy!~C@Iufr*AD9#+ar5_Rx$5Q%@5hRvW{D zWyUPDM{Z+S5xIh0D!5YH5pqhnW1__e55OwqgDhd;n4?(OLY2I`cL^)+LzUIshY_0A zl?}G2 zK}lF>ID@`_TEY^7rPI4^KOj&gA2Ixh%ekPqFUhbpDrg)C8I~m%hWOz85a%=;+Q@ zuXL1=>vB+*l)o=e5g=6@%D45(z$18dv#K`~UlY-~Cg5@kuEgo^1!31gPSnMmD3-fE z<`$b0!b(_$Rc!!dVV70N^yY79j>R4rirfKd2C%-f&Mw`@PS3Cqh#3|gdagsSa`OXW zaD@Cu#KPghN;|B^|3zQTYh_v}hCjft=v2{$Dl9RhU}?yr<1Hn8`>=)ug7pQ}SgN?; zVWub671))L-1n;!wpG7c5fD^hx*ZsQej)#+;uB%l&DXD+dJ(*mb04~dbCnM8)hJ;t zknjb}4JGcW4$$0_&JB+%YEZio3S?<`vg>lXJ?v4PNn!gx(i_gz>xy^shEuF0v~o|x zumXw&|HF7S_j?>Y9usp!^*%@gWr)Zde>AeUTSoht7KT+XnZ}?yvKVxCLMgf;A!M*Z zztIX)JIMz5^T!wz+ycXr0rW~nlCUHJ#6I&VYA{V?&TcBBf_}AG?@L%^byIK8bfK0& zSEn<=YDKW?ARe`(fyIe7f*TKsu)q{&X@i6%6LmluHINBrX$gzWm#{#r;KdRa-V%_7I#NB97_Pplqw9{TamCvezh5BsCNTpjCsVXtP8bl z@q6izAqsXi(xd)|-9VqGr|cN708{!V$Ox0}MKhp}pN6#ka)iW$O67Zf^#0F+SCSPXBjkaW6P%byohv`VT9OQ&}0>k3FW>lzn+Rq8k@ z?77~pH(x2FJIFwKN3=tECc8cnQn=Dqvk+8l9nk0b(UPjd!WjXU3dph?@$D91X7OQB zQ=ID7q-PND1HuNt6}gKtECnydJ;<;eAaKB>1r0Qi<`A&}Ajkb57hqTbpa_)X)Unxe zZeUpF4H6b(6Wfk_8fn-OwL((JST%wcP8mS3kQuVsEudwCFN0Opa?!xU?+I@~&ZuSmuk+?9k7;8XW*8E*QZn_SmU&Im>ik#e1r_GhNHbvf7|daoL*D23e? zHPE5g`MZz-Ll)7@ffndeJ*^XBh z;{&{ErEzhYmZM>rD7>(!LE{#at2)X-U?n*riCA)#q)^xuQbI^rM#Z9x@PGdjpi&Kz zt%OCF?d{00R&>vJ)t3!RSY`EfwA&0WWfDV)cGxsW)D}f~Vz*ED=}@e)(P+Zn+8+=s z?U{8sj;4iPTIA_1z$6q(Se^c82}?+-uEL@SK1(w!16Mfh>^(DcXGsy9W(-aCmt07U zFeBhWtvZ{-^rC-VyhSVv6a@?`0)favx86i|GU5NDuj{;k^c2o>yqjzT@ zS1{EJ3!sy?+toFL(%IX)!m=k}-ADnJZ7r%krNb0*7m={qE4E6can%`R@`5nwYnTyY zGeh*nN>j~U*D&b12f-*n)o~J*d>~|lN*Q(s-?R|>HtD-?$Hh-O%H3!23zp*Hc~; zD$HRt7*oJJ;?>QD?51j3n{5#Zi_lE>YFALjLx&a99cFfMb>|{gSTPV5Iv5zhtmt3| zcokP+$saIWO$93kGeiWNCI|+Tn_kUex~en6Q!*@9Bx29)bTu;vN{F`6g9NftN$c$Llss6$x>u1 zlCancuH#rtMu^CGZ%YneSh;D3s(d#4;TTcCiqf_H)}(c9%9s1l^|G^|IBTG-%= zOtL}LxeJ(-4W)o*!*)Hca4xG2A7c`@S(Sk#EmpFs6fbC{N4@|cI3onG{cvlUeo1g6 zFe$wvSO&5}32OkkDv57(w=A6z^8M_(oK9S$%J);wB>@56<<=7VQ~{Tn>8|2D0S7y$ zh4VR}22b}#N?6d^`9t6&i*pF3AYc8@BRi4|qS{?V zEF6MT-)x7Oi#_qm7-$hmS0t)m@8^7UP=dIs_q5=7LzyGLMFf68p8{Vq49gIq<~4=w z#LSt1h0pu%2mw(Ea7Dwb3s?eaPjB{YXGni{6;Yb|8{sO?@+;0V=dL%cWuRUyT+WXv=h5wy zghf8NJoV(=7vii_O?bV({|<(wnH2&cI$lvj_adf5F0%KRhf2blEm^>iSUSb+@xi$g zfJ!LVI4)c@I+Hg!aOJ0jzIxxpup&TmmOmdLg;7yKyUxaE)L7Mj)RUUl;K8{ZuJvyt zVMWGDmTJ~OCQY$SQV4nl0qallSi;J~tf{qtL*Crp+}vDmwq*~7a*eI&c2mFFQglnR zR=Srvd#aK_0IdaA7L~BdVF~N`<^JWq6e2|YN&C{fc%Fo%1J7ivSPflg`u(ZDDHO2_ z3EzK2lEQm+qKlI0&S7 ztqPn=P^#BL)(P+`mYwi*n3dszOtT#c9Q1=5EzZFV7lxZlIxTv-0Pm8|)7x8pRvnvK z%Y6C$C>!-FP6-vmVs6Ews=%Vbv>d%K?+CH?GZP^Pm-MEonn(ezI(&goan{TL7ZQc7 z8%}_$CeK7YH+MYwoB-=J@sFlAp2Z$4c|{EZK1lb3Jv?@=)`Hzty(3l7Pph@OGT_y zir}0KpjRC8tFW9pt)c>UU5*J5WN9!0q)|Z9K1f)gRy4p*3s{Ufb~~IPi_}!d{BE0? z?Xy2MD@F|a*gu#M`qisWD+~j=KgDv6w|+jq`v_pww}g*7F21R;i@$TOA+j z2*|o42`ekKLO(1GKs>?#R!XTVW*9#R0ZibYRKjWpw>muCKi^YED6}mls9BKTjf923 zIo(B&R_toTqLW6u495g0(yKI5+p--;6}BkY2@wlJkR`SikNVn>aoh@spxJ1ISov6_ zcOJ%pOEdf&%P1wCw_hz@-Hk&4SYM=9gBk!=(A=x9b_)=&Er<>bn5QbZgU}k{Rv5!)x4|hjC@djVr)BWo^U?t{Ky1tz+frO<4 z&L)O~>8O05zk8v`KAqy8^L=O5LieX*Se9eiyv$Dt^-NbDS6&MkxT2Z5#wcrNWIxqy zZjX$BjCQ7d%AaU?c?pZRS)~&>As}m7>;7%8u;I~mN7l6s9o>2jVsISAuoTtO1Z!Wy z`tSx{r`Wx)dwC+jDsO-#iaqI4pj#BsfR$7N$Oso@ggQc@X#%JN5ZHYQ3m63@YoVU* zPG59y%Y>{>T+LuExM@(cux2ixGZaeU?w9hTEenrSsk4SFf^&6hW8j+jt&c^gnlikr6NxLXol9E z17Yq%1j>7eSU7R-=Xi~Xpc-vL?F9r0mf-N8u zzK4V*ZbO!L^4$wXau>iFaR;vn5jd{3Oqm9fL9k*aECh(e?DY6tz~v5P_3>g+{x;j9Up{K z^#*;gP}yMHHHe1wfXxa2{_CApWuv+4k_5nyKE)KE6+t=NeUlc?Txwc~tGb1o=Yf>w($EDJ%})3Uo$UK)#7 zn!2^G(X)diq$BRGqEY^b7?zpoQ!Hn{efXbY=SIR}b2j>7(5eGpamZRi;#sI`Kt+SD zb*EvJ+);*g0d_^#q^huNf~Ua9k*(mVuaH2>J~4DjU6EsS`Rw2#swSi#a;rVPRC_9; zVM2Asc~pe;{QC5g5>^h@Q*A?mSAt|b%OF^aG%XV;I$$L%I#qxToJ&+I!7KKb(XiYN zn!R3gwg}Y66rX8@PZSFKF>pF!x_NpFKh1EJL%i}q_p@xTMbaDXbTPD*zP@TEpTCsvE8bWoiTHy_$rw-EIfmz5@{4oY|k2UGYb+CG38B_XYEJ z&xBX^-|YlR7oT6BYj>G9Sdu(2$qCIpu3-@42^O&I4mw5mno(t0TyoVTAaG;~A5hi+ zcUcL`;Y)G}7X6wbkg<%l7f!_0r2g6?JIOqEb4rN8-$2L=p9@)#uoPxN$&&q3cbpQ| zv%1u}PjJdqV10p#g+mw?)(}>E;0?Z(xNl ziS7>kf}<7^!gXNmG~JQEzuZ6FzdU*1mR{~(8L+^u7`KFDF@7n<%4k|_aUki4*`m;t zW%Wv6Cj?U@j8j2C)shU$*_6hSoe+1Fp~HESk5<9Dzc?fGk;toZmzh6|S1v0hi)rU) znyJE4wv$Z>cgP3n$U`Di54gaEaIP6&+xHdUxdRo&ZSz%S7=Z)}=V#^Xjz9Bw&gfRK7=6N|z>84xN>-z`3yC89;RchUKb33S?qA+z;Ry zGpv}sS%meJZ~KBEU|0>16>piJ18!7^2amCDcSj{N*m@#yv511x?=SP|_R%B?cq>y?FsSbG76qrG1dtm*`|7G+olQQ(=up({>#0RlGkpMSmC zWisaDkzd|rJG-)@KXW>qQIrXKZLzupkX z0zoQP!(y)kmZ`Q_Kdn1*xgQDC>&ue^ZqK9SUSAUG`YSqUpcs3q3d=}XiB2`+2nnmG zDJB6d{Z!MUh~1GwghFzm6m|>Y6)p;vtR$o`#4R}wTao7f^8hPOPVs#JRtkv_+y^X| z2mN(%ad~-harNsl{kq@vmI!ZEf=?VXauls<1^8mMU*IRavTRw0tnj3&1VJ zu4huHz_9F=&u@Ts|MIS_i*S`tH#(_VPhlq+2E9na>WqZdDG7@R76OU5RjHveQ-vj0 ztkCHeW>|L*#=iaM^2!h_AF*si`!U1v6TG-$%*Jg>s2G+?9A&(^<0)j{?*2;FJn*qu zYYb(dk6Bmzj&L5d09;>as4oaB)2au<)guF!6uU!lw~)mYtDfY)OISW${g(E?W*F*O z# zPYNxJ8Sn`h7Ul%}L`VEDZ4RaZi%#{#=T{7-Fbi33c|Tn50dd0nWcz>O&VWa4UE9KG z35B_O88K4lN>>t+I2>AfDNN`8|G9^EzQ?i`CY~NR@9YG}aZJcCVrlK=?d@S9u;Lg< zMZsEM8Y>*-tMNcwLn_RaT&5;sF;4jJ)r3bl*nB`i(0?wgq%v9UnU}|zdJL8pruTK8 z|39-MAK!ij9-W5*E6j~C!f}u=B=%8kA4_?Ku?w)G=d^^?wIr-sgQu3U6)J*n`HB?d zieG}Nc>Ns=OMvCJTXi4t3Cre*ELqO5+KXp#Y{~BS_8J7%7*;>^73>yG#A3g>O;FH( z9HGOWG^SlFT!wLO`4#`{b$tf^!VACJK> z%vARru$*9lq;CF{Mkf71RAcuJ4rTwa-E;@>2$8VhSZG**RSFvY9xvs>(waGJc!R_? zK(dw-9^uT^=%ON%R>e_=`Wvak8o&y+fDP&;jHy-CE~>E=)#3Q|c1r#7R^6iWkc?ad|h{+lVdmi4wxJzu3m1(*LpV~u(TEoSC` zT!B;xwMMj(-X3*V+p!|I``Lgj1`3-JR!)|(7h5GwvVhEd!9jOXtf*&4)_wkJ0#Q~z zoz~~mq?^%BZ(Y?bJ>fE*j{#KyMR9;{0bUtf>Pl{;iG;1GhLaK&478B2%7$U&P{z5Q zwZ(~)_fHSY=03r&u!Hc*3I~YBEW#-b%X?bth&n#BFstDbs?Th76RzhsBk@~Hy;ktm z-~EqT%8p#uu)beP=v6p_xP}xsg0Vxk465W0D$E@X>qkSv0(>}fg5}7?k;=rIe932k z49&eQVKownjw_!|fEyuLfkzRwP#t`Pf}M_Ag04DT!Jt||RvhH2)xxsg+w*eT5?0|6 z;t)RP4WVJFPbZ=Md`USh8p^rgOY%)$n zqUvuNG?9=lR3Enn&aarzJWMU{HEg%wRSW`N>GMDuQ4c|{-n$U5P_Y#HUPLH#<8?!@ zvLW`nB&?SapoWR;$i$Jx1nGijB^&MqEc@k&VeOZr<-g!%@f&+xEti|+ay6c;u{Bq% z*J5RS#2FU1z~~kG>uRywqz{^x9%--ML{6oTS=T@_F2*g4VOhU^o$<+43UAQ)&QM;D zW!$m&CZgY>(_dB~yqde*&UfZ%3!7bfb0OXNe(V1fwQ|wDpjhWZVeT3#gjuDdnczwj zb5ad@wQoyUl_|^uDQ&7a!_q1_1;e6=YHVQFT?s_fgy!S+ZI}wkN&|obEbCw%;r7^d zn*2;?C|oNFp#+U;=nRbrJpEk>%N)R9O(tQ5sAcK=1{fC9N@Ii%VOW9@0oJDLM_cbS zyr1y{g(~fq>#kqucb(ziJjc7kBD+*!Si2G#>AX7Z@;l@NC1-x~<&Km6!ckZkiBJ$= z`QN|D{?@Q%!7pWt+G9nr&fdV|Zy>IYk?MNL&}x(4x%kkX1U3Gs!(*bba`j48;T8@d zsj!q_M#*L1SE=w3LZYuyC10~XFl*J4uxx-&_)@n@^7p)fC@kHI&-ma1UoAB&k*5%z zCcrJ`+=K;S8FT9t20uzz!I}hG0anozbD%|q5arbX5wod=zaP|)h>}giDH{@TwNUtE z9^wwq`uzIXFsvM~XwF#2;qqgfZ*0^*11!0M%bm;iLK|mT{W2HJc%a$J@36=oR>+`F z(#Hs|7CUq8+$B`+WiGO(#@WGTckXD9~;K0GX_ z;b}yz9|cSWuaZL;5*D(1s(-(1`OhkFO00%O=;*5KYz12^OW= z#Hyk%pP}XI@5+vR3i5O=Csr>^Ay}!C;znO;9wD0h=nKjx1hf>hF2M2yzUb1PYB;o4 zg?5iHm#}CN=Njp%=HiUN1%l0AADkY!04!`TAfXqmOSUwIm5O;q4_e;Tuok7hEm$<$ z%r7D2LI&%%%SZnNLfC%p42#|ZthhwW4pS^v{js=94p{R&7c;EcWe|CAMPHvU+plYY z#UuQDpoAs+@#86NXAq+tw}fa<0c}sz(tfu3AR#bCmCy!`1iDX2Sf5Nq=P*gJc!LHB zDGSINgltj$%L{xBF3NAWz|bv3OJH;Yu;5}9x)!*X_A_7&?_&&BCSgS-HhF}XX!vr} z&^4{}*0zK-LZGy>AsU&o=x{v3tUxT>!7Q=?W8kn;!@xT_HDK9W z)Kc$49GW$xmh;D%x`5`Xh zN?4T+Pk+JwtyObss{0;VmFw?OpOUbII)b2ShNWh($?lM6M^;dSM`6*mRXywLZ*T7c zH$1r!ux?28r!<84OBPWL25ykBh=bprQ6=rTgG_(!fGr@0um`%yh;-LlhTNrU0ZTIC z5>T*)pi9&O!O|&$AOnIL$w;&++BwKOJlm)HT*Ce%3@fJ$;w%$@755o7H$kGpuyjiR zZ1Q84;EOd|A4U=#H~m>kw|G^`Wfi=dcr4ej3f)Rz)A_tj1|TJAxg8v^bmc)3mckl< zpx>rgj2D7g;#NMLF!p%0BrKDxC>jjwQqjw5FZL7FZ(338L`OzzRHH)?+a4=O{7S83 zU#8QHX^qvFw?&6P6UNag%2My8=Z8uvR-Y_43}_Oru$OyEBo3VJ#eK zVhByP+vT4LaCVKyP~?7_VR7gSUbx$=JsDp&@mOg6Rlv&CsW|{B{Mn3m-rcQMu_a`y%{1Izy2vAhWC^j@IxeP)a4Rl! z5Gqxaw$zAN)kZK<9mGOpPsNB_kSYc(0ISpkZsV5wQ-kHYkoQMcV5SRRPwi%=*Mi<8E@oY`}Y zVX;rDSlaa_)7)cIRcgxzvoC~TwLPWeFSMaNg(YpP8Ue9=+aBpd$7@#;S$=#0Pwd@g zY7Q-mA${*UphsLQOc)hh%~ra{x+<$u?S-98$fK$rs1(>0{@_?dTRO>E*4ZGp{hfei z^lBo~9Z^R=8x7fM98Q4MtxL*Oj4S@U(y;cG2{5|Drkl;Wu6VX_NUjvw|0o}1BZ4J- zF&<-c30->g;4goyJ|1g+(8EtKEFZeao^5CG_xpJ?%rf*`{e6J7f?ADxf}f>cA0$~! z%Si{p6-AiDE9G4He2|Xr_}%3q%UD>=w_I2vsAH0aU?-LxvY_ zrE-+8?$@v=#IW3iO+*U0+$6F9U`f1oF-f45GpuDv;w0z@2Etx<+^$V8lD2LaPEX#U1ty$(+feZPEwUPmT(PJ`?!Gh3|fsl zJcLE-I9(K*Oba{m_J0rYEFKJo?uH0eDCB*>4$vC*#lzr;b(07!`D*7S{UQG z9-72FNbG8Wj<<>F%^eC&gL8(Jc3rN8Z?+$6UB0dF``N5dxTa4v61uM3#lGwPHMfmh zKVTjr-XNIummI?HfK^q!BG4Vo%9nm#PD)q`mWo4jJ|P#xlkzh~W(~TQJlLm3K4>O)LbCqKkGc`m3%go!lf~Nq3JzEGrf9 zjm9|)E44*Czy(^Rq64rVwL<+g!&>v6|6VhJek4BvteNS_pdpq{#jrAYs~Xk4Qk&76 z;(Z=SwG(U6tsPyBVZjA!-@#!%@{#6a!LZbazqsp5pHN(Fe;W$*{03O?*8AaVwhp{{ zx}a7-(DJuq8qy2ga!YU(g-BN9b8ksld9=FEC)9~HPelXRjYoNe>e|suNgL|fk%#xe zh)@#7HF+6c)BvoPJfcDGcEDn4blMmpBnMVE*4;_$y1X8*(#$cWrurmUNyeglfn&kE zp2e`hFVc@ftfJu}WzFXEFZ0JqSS<}}p&yob4Q501rNXT7$S5qz+Xo0SyJl8)S?Lo> zOcQzgn*G(Q8pG0-Agitxi6*)E-_BcRKuT}8<^Tm6H4bGzio$7 z&4Mfmuu@2a1C}7q3D!xPyNA+u+v6x<5u6^cY?LrI4nUZEKG(Upkd7Fg-KMaMT{#T{ z%~-%5jumHM6_xzo#zL#Zm%AC3xkGh^W#D7vDXjm)n2lkH=jRl|a!63{*QCuIumBr< z@~#|s>w1xjxy6K8M!oRj7Ke&*-h8aG%aWS{T4JHA0{Ye;LFkoz^_s7Jw}hop!ho*t z#k}X(Mk5i{cRIuj!$7NqSHM&pENC=p`&9WKJi~FUa7x1ZgoI^oUPZ{Vd4zPL=F@rz zXqQJQ?21Y)wal+GUcJ2+Fg9$DnNx=ZZ_LRF);sUX?Coe07Ks{QSib_PVk_gY@Dgbs z^O0)UP%4&M0IHFKIXwp*Nlt7Ll!y(SoaegOYxkp%NSci4kO34Gz zflT?XdTSK{*%w`QK;Z5gBy1B7o#~G$0ISPkROabr*vfi8S1g7=vJF^t@$`UVp$a_{ zQT<)OTINrBuY|>x=a&JjI0(5|N)`W)j995o+^9j8Kr7k#_>Bz7yL4R6CsWHfpHhIj z_8N~8G1CP#ce?1<#XViOij;gqL4;1>wjp8xMyCc~NpY9veyV$fj3LSie1|vD0@EVC zN}&#A!~?#eGAq+XS0=&A;~D@bwkRaQUnHz_MJjwM(gByT1F#+yH0pt){Vb_3vrMGk z+ybn=bj3b9U|Bpp3~K_gW=&);z~a`Qonh$=b81#wqnf{I))!eBmcPre*1CB)mU;la z#9Mz8uojP6)o}I|YE`}{1zJ)2rtC6-U4T?@>s_OPHb%%P zwWPpP&lj|(I|c30=1|oJE{@<9WGdBzSOq>^X;-w4Ey24!16U72EC($56ntrZ!zFYs zGwl+(h9&V?_S=BPt({@%4YF&O&_PQNohQBdU52$TA+YZ+U)?KTqaeMdVSP2g%I6e4 zLc#*J0ILA1pBcAeiz1*3Zgnnj3L_Lt9Lp&ddVAV;WA#Tn3ahH4bLy_4>W*MQLA3j1 z9IUriRnu}1$G20_H>pvvole`g)A1N{aumOQ?mwfi6!6rC?QC>=R|g*A_?E7XCW0l+ zDuXUjDdysIqFWuPr6^K$H<+SqV3uGDw4$mAQUyD3!mON(x_$z%9+MlHqB6KXD}N}5 z3c%RBI1B5pEeh60s!#XiWe7T3UO3L8)4JEj@R+;QG`EMr*mf!!y}*_Nkb zsNLDRJZg!s&r5-o!bfG_g;=Rde&lovxJre#sxvsgIIw+ifiJyGXs4=O=Y~}tI67#( zDOFQFgcq8rvEEjQO=^Aa7$OWJ6#UD=6%rDq_eNhV2$pN^+wP^~wxI#>aVL6oc~nE; z9CrC7LK~tTxWZeMKNx3VqhPFUHaq9SucA(zJE9d)40wOWvBr5i^9Q?xKKWTz%=_Ea zKp+bXy`jwaCDZD4&rK_=p`XQ8m;)Ank1?!DScClq#;sP11(qUmE%x*Sk7W$Y{5GMK zd4x7Mi{Mu_uPHekxt?bCc9AE#& zQ_fJc6JuPo*3!kiOyofhHQhtk-*bT40$6H_#ku6=RYnmtnCKoMw~qTESY>*<96^(^ z0;%YE32#8hicL5bJ22LC44*B0lo)rks=zL_Ml&1wdu)hU0}|GkJF~f)gjEA9gP$Up z9P2G`G~-WmdJI|we^q8{nD3mA85_A}6=cX6mI#qR%>$)OyqayYNAZ-SyXIq=`nEQ_ z>Sw#lx3bes`F@t|={BZe@#J?)SWi-}V*h!?u#|6b;upWR|3$d%%gi}AG1gtUHw^r zoX@>*uZ&?)PHZEmf_=sOXvJi82=8DOmG>62s?#j63hf;Y>k{rB<@gE*m(x@m55q{X z<`10sT-UJruVpBDf3Wa(r3@Av%?;J^#reJJ7)b2o9ElhPsG{7?ygIY1olsw_L5) z3;JZ9V`aTWXIN!^tMjw!ygEvl_us6#`D$aII{jD;h9zF9r<~bzZ$5gx)<*}%-wJEE zi(|ctUR`r6NEV1Cq9uAYDp&<%)kg^T3V0_QRzt$Fxi`+MDCnlMqK}UfhOo^$qDn`q z*Af;U8Vrlp(j%-@Pbp8|F$1ij4Aau8&z21WH6PU-xKikX5G&t=Q`(|$C&;qt&+-r} zX6?x8fLGuWdQ~`o)Il!jD!7%7(Gu5CuwYnsEAEZS&)5#`)9f=9N44p$*CqVwLxqzc zv#V)Xu^GeC+(KD9AJ*ijHXm!|fF(rn$MJ#D-E^F+0oDUt!r4j$OIU@9C59!iijam( z!lF!A6*-c50ahFp)PR5$0a>dl2}^(@hE-praJWt&qbe2E#L+Cao%X^bd^rP^Lef1) zOw}aB4;lI$--KwY#aQBv1u9O&jkdO;fM!vNcPm4KjTp*kq|yp@2cYl-$4D&EsyLw% zO$x&rKH(AGCAv=qj=K2*Hw`qYA%*-MXIR~8S{Rdw$+Q_36w9rV53BX5%L(*zhIPe( z=GFILtErsOe+$D}id*TBkP66Bu=^M|8X*n51XdKrvTz443@a)GIJ6h|($v0kMj_$T zQSn3!_5AOuC~8!zdPTEKSk9%kClR40!8-59Evrjd%&1R&eyOeiM)JN>6RlK{NJWZK zO)fOp>N=s*c=@>@WIbmurV=tf2-^}`p=S|=MfKbk>k)!iUmha4o9N!aqGl&|3jKHQ z8WygodPLK(nS{+Y!&1ZdtSHr~kFIN2ci>guJpohN zHB2b5ij4w>rPu~kER(RnD)KattASO&cB#_Njx5yC&>t;T4NEVHUKX1*sBf8NrYd1E zt&cf0w7&ZkX19~xahVwHhz4MJPy@hr8X4BMo08lq0%@3U^Ij0Fu?}$2ozBl6m)xIS za36!Jlq(rh1>r)v5@_KOCIJh;x=X`y#1e2!FE=&cUtRM_Fy6^xw2fiW+mbK%!w48Y z&ai4u-tu~xFTwZB`J-uT&Bv;SHS~4bxOB!diC50B?nbQFGgwJ-&ja3nvTG(G!aM9r zX!WmbZjOl7-qMaH#M)~yidJfwnuev63Y4k}mDE88bsE&CQ?DBm7F@~z3t4O0km(0a zjIILKP#uy4^3HG>hy`qQj#Sd*hqx+roh}{wyTFPzs2Bw6_EhL+)7z1(0=&@JRZ*}z ziLt1KZy0zLcBh8rKH(I3Iw+FqYK_$0YT8sWU6N#7PXBD(!-I4WeVm$BCnoqI$rRvG5 z+qYj#yP3Tmqe(l*?Y5kkGmBea?D+O)Cs2YpNqVQo3DKfLwdihXN8@1Yfr)LsHwFro zt^sC6HEKv%%8QjnG`u9ddYyw;xP*`5S9O<=U*s%*?{ZgSnFCfe-SB1}H}Nlc&QW+(KzrDX6Zh- zf%(K7PN+V|uJCLo(;$y`|JQnIdxYrp+fgxlNibCHyFCWAV|%$s?sPr_768=TG9HEh zr&)#X0w@j`-K#J)L9rCp9?S~#(sluuNQM<@VSKgI~RxSA-Wq3OGV!;%1@p3{>}Mg z-HLSAZt3r()?vyXxc85KxQ2y2jd1mZV>m+APZ-vZ@3@5dyk{zBj1pXdR?@QeIlsEF ztg!RNbJ5CQ8EN57TYji8-<*4eB3?{BCtpcW2M=7hO3DalP<2K%544*GO zLahnS5@4|yPIG{;L+ApyG**~eZGj4aYODytqSmzM3tk0*011* zn(!*@6QcWL#t5m@=kOF)I9V@}&AS;_E0{RzyVWZ7TFpx$zzH>x5NnI-Jnpbq({9Go z=>uhww)*iNYrDg2CbZTu|J2nwI@ulRz~66wS?#eh#Ii3zrpIXi!QA@3(1x$zl=OBe zR)E%bo0}6GE+GsH%{@@dJVHQAlb!>#E(~i@!tyzU19kBwUH6y<@JNzZR3ugbXq~8y zsySdCw*r~twyPwGIki-*_hHM#Xzz)A#weA2C;X%LZe%vPJu>1m1aJt z?wkQna(;h%_VY6(Qakes$6Zhruefv(;b)&lsCpH{`t&e|kZQd%h2V<4k7DW*5{5*# zHsQNvGwwi-=})WTGWYQ301|D>Frf#mWO|O)W9fe0r};N<=l+AKt^Xok4GT2)ILI~p zsUgBt&+rPC6~_b=*^RVi-IRi78n3RCH${+yw&`2K8JSP)X~Rp#4N*AR9*O1wD2lXHG)?d z6i#gT+@6l?sp?arJDH=*sDq7~n*-CB63mx4F;8aD>W5?WVlPG|F5bl4F`sd;Y*d#@8=_O!Wa(LjcO=0^kk-u#k@~AuuM+n%)Xphv=eLfmaq!D zm%m9$hK?ZB!LM(_$+ z1+P{DYp1e~SN=&|HLqwoUa7QnZ9S}M$yX5Q%e~&Gf2zRktGMex#xR4RV)u*g*j6!2I=_=z7WiSl;r#* z%X}h$b+C~83e#)>iytCmX7aBDEF3H`Yg~g_@~{Xloq);rv-?hkTjeCP7PEAk?h0U4 z>%kSR9()d9y))?Uj)kmlPiUWNc9QNitoE>4H>Lh_nCOp*cKjAJ$Ump|u*wi6zUTAv9Er!Oq+u5x79p&3u%6jZ#*f1J?((hD!+H_} zf&`~@ux1)r-yJQiSx(~19FD@lVw8xy7Bh&6WB^OJ(uQyqupClS7$vTZSE}AtAHq=m zmv)4^nw|ac{oMF>R$h<;xdHYHUa4NbonIlp&mPveq(Kx-@`{&xsmU!N%(BD#%)=T= zW8LY<<-;}yEKh^CQ3kU`|Lw5$FcFQuJdF(@Px3vT*~(cOR=p!!V_FPLueC_`YSgEJ zO}s1BCshFpFr0|EpWzQYqQR(GWqZPqWDVZY(hp#1;7CJt4Egq`7-`h59>~tn!Kz)6p<|Fl|P;X zt-uv()Xc;Bdkjk|hMFv_jXjIQ1$nSAooRkr17qBWtKW=sKHIZ4q6Q`8`|>E>09lS= zj!H{|cFRYld$hTq?(f(AvRVV}xORS0#GSvAy;8Amy9{uy*xb*RLL}sGwtX7vy zfCG!z(8w%cbk!b~eaveAQt7oZto|$Njc2oEl`428 z@#n1r<3yA^Bh8%`kp3W~?`*f*;Rg1s9;tX2n^ezGG>>;e@AHZ6+V4vlk_zT)6d|mJSoY2Di(#p} zEx>I<%{{`NSd8kz#OnT)dt&KogZ0e5GxGjN0BUxz{IJp4!_p;93RaXw4LyQb#IP18 z3*Smt474x!QuS7bpM*tSE`~h_FPjh+V$bDpOkWM5r?Z9J`=o~2v@ESN@3}u`%#3@4 z;#sr+i?RSK1UE(@w*o(f)T^}bVp*BQQKsF?X29IE7HVau&2VfE6p zOZOrV`d+&$nd$Bb4wj05^}J6nCcx*wdY2f4XootTazYgoZc!vqN-C;g6*Yi$b@fv` zEE+oXj?6x0rH&x?#A3cDY`-OR#!wm*TBr7mc2?-uWO;*&HFK!(47(qoksG;JLy>@m z7OZfvC@3{w^hQ-qNoG%oGFeg@v?&z9s?(7PVZj$zGkH)9vA`*15ThMRG{eKfyxl%k z7<#cpcZJ+nxl+ZjvP$(bFd+v{MVnDFbFjEoC}2tC$mr8IZEky=;b6n#Ta8HQlZF{J zY++!J;$sBdL#}o!fHh;p`{iQ#Z4k>a_@CevWvMgCx?77*ZpzFnui2LTc`L7|ZS1Yt zlDG1kXyp!;aD|7JDWhmYSa?{T=KgBnUJ+=|CPDjp7o|+tB2n>NB6yxrn zu~>uTiZ1r>p4_*2nZQEc=*zkt;k*F*Y1#EfV_QNl5i2wfR(e>cB3M@;+pC}Ug0C#CgVpA-+ib_1J|Vqw|B#9w1yQ?X{|dA= zL20+rJ+cbIp_<(z{S_fB+Z6H=RXnV(in=duR%je7QXBpeb*Bnfmh8?=!sRv4%?rN3 z6*bw!kRRqQ<-vFcJgH&nrTH>Yfjd5MuyUYuG1~B0L7Y|3x74xy zil;V(Vx;613np4LLA*EJCv9R=4EeXNaItpB;a`24c%=xImE8k>pU0&mNYOEBgl+CsWp$X9kfM6nze^BIN#lN|{M(qg4DW z;YwOXz#2Hw!7bNsJfz`Hx)cM^XlT>H$}#UiI4Q;?qLso|QF~xD44~HZar8Kh{PP8| zXx9=;!+j>cHEl-39JF$bJ0=Ui@vVtyzN$f7Nm^f&-M2qTsOn`@C62T9cu%GQ3M*UrE`i_lmtto zi-|8~=BxTZ_El8v2e;epTK|fgC3{_tqA3i-$wpOKu_Nri#A#Y*xK@laMfFzVb5=Co zK(yu6yd$l6)q8Kf{3cvcz3`4NZ49GLCyTe{M2maHWl^j=XLK=CzbJ&&oQ~|c8p>}D zrkV3LU;!>Wo2sNQb7NDY@ zG<-J{YgK8+f}sO4`f4iIK4uU>NDJxk3A!-}sgNrXYpYoC`_mdGywt?1w}k#7pD|ZgGG@7H-il#*D9C#zNHZ>CktY?{_}Yn;4ZJ}Krt;Yzs-dF1GPpHQL}_bRHz z-7V9d7k#O|#;}^xks*t}Cub;zoJ;0mVcA+)`5?}#8QG#@LNAfkdCOVuE1tk<7tpHE zdI$?v;b9FXgq(s`_+2myY+P#7Kb%Zaj!D$j)(Q?Sw&T8UhoB;5=_&Rg^bM}7=6@_i|2A~DuOHix$Y%K@^KIgs0hdJ0u%Aa&2yP$uaELAyG-Z{zKG z6?M-)LR$l)Jb=1)F((=|{~kH;<}9pFzdN+>u>`5F^JCBMVS%efsp46M#`^Kd^XHK^ z`nfwD86rvO>B7J~Flrtc+At@#Dzs{tx6c;5Y9u_Y=kvuIKIHw!IvCeLSIGH1U@&sr zg&{BGm$>1vJg>D0WVUWI_U$W-=kM1+gN0YB%v!aU#^|Ls7w$!wP*F^-k47-r!6AA>qG1lDCEKkc?VIf@ zvBJB3?>$1Sf&;fbxvAgB+*=PzX7RM(Oo$4KwTD$^MD%xJFZQr%5*46* zBeMPiRbI#%jfS(4Cl?D?XJgd=0{Xf8~4`F5cf{}@~h-`V71vf9!QCz*S6lw$A2zWkUrj3vvnh4txO7R%oCX_ttB2+MD}1FI zFwRT=P~l<~yi#M8Aqr9xz766v*&>B+`(|EkPZ_})7X_b6r!<81O@XZFOb--FEPAEl zVjh+bYv@8)=^vOu*8kv}!yr9qAF6u4So74_i| zvi7Xef<2hFx+j*3QKq?-=2Fk^+7smKTL5(`c;Qfa_0c+S6r;XJ*zbxxmPl2%Mi%Am z$oj};P=!{`6<(J36y%~<^olfhOK6Z|C8bK#eW=geFZ|q`j_gj7F-xs)`nc$`itz(e zPs^`(!sn%Rj}RTD*MrApHM{Vx(5eotShgFm;=klUTfy7V5l#F#M`6)Y>Woax%6ss63blVnm(O%x zQbx+>pT0@Hv`*p4P`m5{Uw65S<)wD9tX;vYtz}^uvQ*?)jiOy)_*ZfH*?oyBlo*AG zPx)95@vK*JQKNBQ*yiHDDA^Ykna5t_d7wSC$sjZ>};%DjnKMJ+yS7;5u1>c2?ELDd3Y&DZzD@~YDO+^dL12+NLY zP>Zcip?s`>mit(997_s#;baM3a;~DFKF7$H<^^B#(S6?c2|CU*Sq!Rqe110gWRQy1 zEqXn9ey&M3L+)WuGJM5?QWuS$Y~;k+K_Lk(o$Kp=Y%^$)zfa4El3#L&!t0`ktn;sE z>6W~bE}`XSeOnK^JLaY4m6en_7eIvgatkNY~MgOzZm+Ew6$;RG6f3T!>Y#Gtkk3?(KhYdxE zBk4JAg|MK8R4?l}hh@*`s8`5ovN4~EaTonh`r-fVWJ&f{n{{$HP(ygR{p~xqgta%( zc?$EC2dCeX-&p5&RvuJEENZo*tt0gXoa?_n7N!4sU)99a%4Z|zC8*t7LRgRrzsh>N z<|}kmzf0&rtZ3z0S>C8ZSNWo^&p#5fzBO4`Q6zq{6}AleXk!@b(Hb};cPccQ`LZ57 z#W2?8A*`qr4`ubPRKv4E_Jb_Qt$d{gU;8b?I zgT}Na~-C?+QX`T zNz(8oHe7B^s_3-YO)hIaLoqlM#GPX0)2FDYI>=5-vA%W6ug7eWU36wZdqrI$*FqGy zQu{k9bnXXLzDdd1(tyblao1%p%#o8tP6O}#YEMTNaH_Y|&%Tu>kfvee8XnemDUT|& zkB=``7_Z9AEUJ{kL`?S5Yvqx;U+QC&y_XO*QaOGM^%$3I8&w^Jb{P-xh%L!&|<&5h}(D&Q@qqVq6}un1crIz4eMt@>hTz!-Ihj)2#Q2e?Kzkw$j*gXg#VnQU_FM z0RfB0BUR{1;EE6PVU}R?0sR>d(FAb9mKEx7y}gw+@T2Bz^ z5Ef+mbeVkh)CNaY2C>2#!k+MB!0J_wQEAm!8C9wz7POMSjuI7Kaj2zaG`pN5YU#^3Ws6VMfpH%%UB-r23^LKB z#+Ht${oqz;O4^t5ho@kDlKj>aiw$ArU_~W}g@^Um-SKpHqY`zN(`z~DLV#Kn5N6C0 zuT&6tHHfuUI`(c0u!O9rfvQlU!__iESupIsD~{3hw4^1*4J*v$2#nIWlt!IOd;|vJ z$pND6Bj2J%Q?fO03NX@@(qAH)sJhn2u+r?{)p-Cj&kBZMHxw=JomrL8Yy8DIQ|$6+ zeX|$z^(9$Q^_hHLi=m01(*Fh;ZgaM*IM601xHG-JnVv&Ufs_?Rgw$z5;)!oev z#FBzkSteZJap_9o{hlCe@5uUaeYGHKXS{l#Y;=iO|47_2{foF+?4VQ*dS*L4mTch> zn$D;Q2*HZ-|D0{`1;MS0`gq0EL4^seVMJozBhAk&RE=gBZ=zMj*RNk9?ri#taj#w+(8`}^Xk<8hesWl~! zdOB7sG9L8&qqI6y05fgyH-8c{E7_yczYKaHS9FA>Gy>(JvyeRJUSk*Ehvgy!oGI8%hJ zWcz7BD;+FKlRxRb#-G8cQB%Jpx+Yf5&??BKTGCiX@#U9p34O}ji8URw`B3ThF;wii zePJ(3YS1-Ae3Eiz0WJ5izEvSCaSBDe{o~*j9#(D)lU4>RLl(S>irgP9hQ&d>_o^S{ zVMWn?aOXQh1+c`bfR(tFobnL(FN7;DHH#7s#0mCWgtL=d((0&Xtp)%S3-w{XhH0&2 z@bIW{_v<9S6lTdzw#xAR_L{Sin;5dS)l@Usoj2USAeqquEAAh*E}=Vt1%N7ab^jRd zboFUmy?KGph8$*Pp7~YsB$?iRYgj2Pcz?B z)&stvT)(p=IRF~Szzlyo{wojmfg{iT61_`eae-q#@(nrlya;&;K}Fb@yWrm;!SxR zRh`^UQ=%c89`gk~o987}yqafNyKW43a#REhWF?q-@h1vF6@`})j!V44!2($mw-Q%K zGV3TGYYw>+biZGGtduLoupm~{Dds+k+KnHeob}h)6S}%p>!<-t>4iBp(!F7db*j1; zmBpwGrmi;d&H)&jwG!i^jniPiiC2{Fjvwms-{VqsZ_ukfuw5HIpM9S?7o$&XZ6fO4 zR*JUvUJG6of3|^^S|~N0T-|tz6}Va&Y#)}B^;MKAGu_n?#gg2dgex|MF79DDwTx9^ zu^|jCTuJ+l!Vf=qwVUq|X3%}$DpdXkQ)zw;nKEIqakt!aN_-rk4YSNln97C)Akm=p zco1*xNK-xdB#b%Qdh8b6luo72|Q%Y@- z<(oaI!*tONd>hVI`^zS%D~E6WJG_LW%{!;%`bQs8}q%OL$rA`3*(N~MW~i66!^;F&XHbI5R=pF~Lxk1XJ0 zXvC+PS4+p&uc8&T!A`j;?Dj~_=>|>aLUm-7GoatJ`goi3phE3G?7fnC4X<`pCaBN! z+i+ATyHEZ|&hM9Ijj|tsm#$+T&z>$Ou-{ zD9I~TJ(;6xw|THYwL37smKc5#9S)g^OmwTWF8mb4G-nTMA{(E@z?yqiNN~+f!Z+;+ z`@>br4`xkE3aL-{^Dk<4p#^JP)l4ls#V)6;G*OrFYTB7L{@#W6APYHs)IJbSsV+q$ zVZg5Ca2XvoD$CDFPEE;!G-}?~-{7jArLEvO5v$;AGgocN`w$izLXc(L(&5O1 zQ+BeuFjd5`LJdgy!_P}ngYgPvAs)fPyNYIxU)_sY`^;-#KZxjMEm4A2z9Wo+8n_zv zp_bcUL-HZ#VW~!k0WL2~Wr@$_JWH9&KMZ4x_>YmT_3UF3eSB2=q@}~ZF=e#(r23m> z{n2;L1A0ig=VGF9eM(GV*R@(mx%?EY%16C;N62swy=Dul+J~@Q3|Bf^W++a>S`JD6 zHq6jc39T=Fh96<~&>_ERNBDZF%&b!D8$xK6H5AawM{~lvvS)LYI4WKZV(Iy3^RQHK zuy%WsYuan+vi>LK`bUrs6CH|c{uEUot7aIvTd-)m_mwwyfs@w+BWinRX>+P zskvfieF9$*!)kV`b5nYR-CwAW+x0~D_4UlI_pqvW^O*7ur4M2Gju0O!7^NB|U=^A( zN2B^d4ZbHNgcW{PbVMxA!kXMGwuPjO%8(p!vs8}vq3`|KX9QN=vnk9V)+nCSK+s*~ zfTW|Lx_J!E11DZpL**s)FX`aCto3?Sn%QF$2*34h*c11hAH0ARzGe1p4#qg zu0F(g$ON+0Xn(0@h^6{sS3wJ>XFUFl#yDGN{?b)2Dmein1 zX2bP#TtmjNEDy_kEIpp%zgH@f%{J7pAlpNzUqK%Kg|Ob{QYoX%GMbH_O*H4nSVQ&h z|FCy8x{cyoG#gxCC3PSamT~?BXrz9V&ig;#=j-DGH-?01x6zD7dr80s|D`HN=N?~7 zD*wTRra7*eyK{um2S>Rb;;#F*x3|nC8o5>8;}NcblysJ^;Pr|?A3@eiaK<8}@fcTM zm$0;eHTr^h$5+_PPPS2a2V(gnzS^L=lk* zc|w6LLY5V@^7M)>ApwhzKVvN{Y-X5v27{Hb-)?08%MHO#zr{edUw#!}tt@uF{EC}< zpmui>ZV}d0c3V0q>HUR875rwL{Vi-X&6~69(IoX-=p}Q<9GC8atV!ke`kB`;O2f?} zR;)isiH)|tfZ$K6SgP<{BfVN?Sn_e)ib(Yx;?+NZt0k!VU-XvxS5hoUSY%kBR|}AZ zO&jn^kt`ZSEbIAI>X6HCc8bFi8H+BVtl&q;0$dqEDuXaAF5m=v23+~5?mrkOK87v7 z4zO0|#*yjYl-;~zB5;$kSvZ$VrpCpZX?)ZM!1A^%DTT_p28$B?EDBfzEPaK5waMhT z8pL(V-^BWI4i0bHT!R3tWsmTb_j#V+uavoTwhTpPDXd{#RKE*cOs-2<#3+qaWLG%w zg{rR;!;++!ewQjh3%JGL23U3~VfD1pqOb<+8P+fl8lAa>^a^F0TtY6^V7-Pl6Ws@_ zE`v!zy}A=0I}u{D`(tt9Bes41b%1qWX6MIT0~W5X$W!Jy2Qc{4ml3^;XEv853Fj}x zup%f^@FbS1vpoR|oBkvouwo>Zag~~3#gs;6&B>3PqgPjM0@fm&VBGw}pyQPlQ3tr)ZL&z`OLD}jtsNtqdxDYjJ^`nG-&*%nA zxC)TP&{3j_3--}C_hksW!LaU! zah8AO_oj0IayJx=c4@SSyd~01jmb@}$SR3|Pxk zhZrUh#3N?DvI5~sNc}vnb$wo7UBZHqTgiswtA?u|fnbqgkzM_Wz=|&>yjmi;p9eK8 zxP$R?&p<2eC|<#US%536;;>`~f@Md|9V@!e9)IS7qj=rR6eGlGwr_k47a%$SY31L_6n~4ldzJ_uLG=mPk87nJya(cPNiAi_kCWb zp;VUVd9$grz8u@&T@F+sdYvS7LJ2m492r*WPd2krPyi!%$hVpDMmLCj0IWKkL~}CI znhc9PP3p<%2nNakYME;wi$fINqQ447cXSY>D`zr*TrRqFCcjQP_GP39huommRBEI$ zWL&umrOPL9KyG))y~f{T|CC zCx5Dh1$+M_;rxh=fK}?-CYh$;CEPqdz2%kWtwIt^}#R6Rdco0jA&_>W2v# z)NqAY<@w55@eNy_I*B2DEUp%qq1o^SURm%f6*mgZiX%rgT5*zaW1eL%uqDR8(IkQX z{>S0O$6eFiFK1Y*s}X=<;k=?uywQkh`FI;bl7hO9`_*6fcL(t%Y6Pkm3c~uC*N7sj z7t^aTG{~?385X-C905?4`N~AX!a3koCG6{n zh%7)ASXT6!FT3;}Rm8gUJzqvB7V!!@F5wscJkPR;p0%S}_-%9j4D^2z)??ym-~S-t zopn_b02a}Mw^^TGh!y}Wt$#a9NjW_6lCmsVZrI2r&+-5i(6FM0qni}icOf-OJSGxT z`m4${>53HTaW3Zo^ekbLqgn=mJ=IJy$w1e{mcknJUxk3B`Dh&g3;m1hx5>tIN$Qnn zdC%Y5DCk^YlWToN{dEz`_|=i|C0c=D@e8ctCMf0oL4elG7|ej@2qjC{dd>CHG9$<8 z#1E`!tykTT&Q0uqSK=@pYc0E5AQu6Pn^-!3%NIi34c<&R6R{B0;5js7lZ}7HI-(o= z+ZF&>zX?wKp|0u2A0%WF2jvnr-Xz}yuPZTS4+)%Tk>^>BDx^>)u3dbl4h$k4sYL2P z!84p342ul|&C=P(N+}>0pGdI!JOEb722nXj9|Rm3DMy3yU|6UJY%GC&`bMvb9gzkO zfKq=I0v0<^)#Vxz#u+)LOj&Ju@V>+}Il$5n8Df5O1BB)$=I7P6E@G84j}Qk!6_293 zbN7mwLOIYs)R2XpTD}jvtX4q{lZ53gegaxhsv^HSA0MBkibShCAlF(Y90N*n{qfUd|$ zjoJE$s(i+y0>D?TAwwKm9PeDt$8?LEqj8qb60@HTih2UUEsOI z%+LilYq_aW5V(bkNXRXYbg9@(f`%7eLaBR6LmN$Ks9|L(cHuc_K^l!>4U3+gc4E;d zRW=sL#HHg{ZUYuOkU|l|5@R5m7%@|&G31rd&~*umpJ-c`up)aEa^=2`WXVBbitNfI z%2HS9PMWXHSD^* znD5n8=e=uvf3DD}J)*bH078A|`~Al|r`>xL+=^e{%E)9&cL&^bDf{Uf)-AzSUrQpu zQn&(EG-1wFO^+MtCPVRy;DyJb(0w|~Td4E~Edx(tD8;m0IpI+rkPmDHte(N- zW&$yCwsgj@Kxu+0v71CKtNlo8LdiQAmLah+iwq0HWZ!6qL!KkjGOxN%j$^X5Xf@=k zzn4fBKnr0FbP8SCLsf{tQtLHn15UjHslq3V-tUF&cy^dnR_<`@N}v`bEWsTpWV z>>lkB;t*fyuhg1Udw;wWL#WnuO^8@M?r1<2Xa6K|Wf{>3hRlpIfMKPVk*(FFYCtlLRzM+@=_oSV9g#z|!b9c>fPP$UOT@ zO?DxKOB)$huQ8{eF$NR?Q~?Reun1V=^Md_|QCcaB7#7MXQ}ItFIo_$~wUhp%p)mg_ zF~c&W#D~sfhQ*Y&oI_rH^UjS&2v^qGU$R6btcyace{JFt!WSgN!tVQmM_88a`O3|VZeKCJH2e1XRq*#_qVx_YcM?GGVVZ~^L2Xl0UsmSl(>BIB4EnnX5QOh`l>O4v~ zz%q_H?S)G1ioHL|p&C5z@>l{hor4a8Tlru=EMdiWzWMs{wGu+*>D*3$>+5mw_|+NU zm}EQP$gULv_NaJ!dlZU?-`swc4u#ms@!^l=EU$h{Rffhu0=Wz$VF|7sru0n`>Ap>(S^FD20iUTKRmI5OtOrmNDd? zrd-jmU`axTwX(daIyHQo>Ib?ox?v09cV=6<+{Y)gb#$ zPPhBLgQA^e2f5k_SZIP}kpN(Q4o(zbUtS9I<;DPns&;bvFnMO;jY8k$x8wwV6<{lRe`?M=zzc^}Lx8*NeS!=tn-MI5tmB!Y zdmB>Ft~_EXeg)|YkR=Jb5{Cr|%YC-iJ9}n}4@lO)??$!+>O7E*%KP&Mt0Q~J0%lof zk`~}<$BD6_^A2J`mv5+)U?ddiY^0LAelVYg6Al>m18}O_N$cQmTZ|B%8Loc8h+n=I z4+(16xlZ<#JqMsX3-K$2ZvkT;;u5NZneXNds~&+R&3V@_L4%+x9O;cXEF3Ql>Vef^Gc{`PcOs(@{T9RGK&X!) zMWoieiYgf^onj5^Mv&F|o5$3Z6^^A|@Fj_!5CuaLd)g{yL3O8J2%nG=R?M(UC|BMD zr;Z|Gkzk!Wz?B7L@%8k8tY8*8*0iKMqZ%yY+*5%dGN&714IZy(bP6}a^Y$CpZBQN= z#Pu@}i9&qgPXeao4(`UQ74BW|F7sKdBk#_^1*;rP7RIzeI-+QV&IGmqQ`Rvr`;et& zj8HoxXuSoK+qZ&O-8*~x&}yS*8MtN)Ym3>ftjsP%jhJEKz}WSS6N=1?igR9<4CzE^ z1Wo2_m@r^;qy*ej+~H;jfR!|;!%@)-RU?InA2Y1<;)~QZ$~5>1xZq{C23H6}7|2bA zMKH}vbPB*qF^;Sxis!PjJd%A`mpOj#oMFXCwC)q$dv)2|%vBT?(TN9|er5eSYWb*! zDV`zh{;ng<9UCnGR!6E;dBiHB)f&|E&)5O2_;8L*1+wh4x=fmGL7c=4wm8y#V^|tR z1+oy^kS5R16y4iyo4GLQgZStNKrqj;%6r zBba`}ogOz_E7C*J9gGAQCWd8nb&=r%T_MEFFcVz^aS@tCA=zVOl=4 z!5yL?cTg+rX-@&P#DG>bVh{{y6|L7G9w7?{OB~1Yv7=AM0TwlPjaU1Yc}VO=xCK#6 zd_Sa+6GS=t*r?)jf*Jq}FZL>IAs`b$^3XzZ2k8@Ose8bxrxf{j;ueN}{IdXJDhK`l-a zE^An_aX~DKSPruYSJrF?w;S||Seva>17Dy9LVyXE@GfGZft)izoUYqJ^O4Mr^sDwYd&z)PPs z!?N8z;1wg?A=eC@OH87U_TJj=c&v&7Q-{82<C<0IBS|b?6SvgGF z3BQ7%RB%r5{P_|VbUAB`X=TE}Kq~7F7|W*v*0Q&;$hC~0?br2^#5~n?o#Hf$%vNXu zwGK6n%J8agB-x@=A}3j{pI8shAcF+Ykqu&^&jAw}G~{yVg_Wcys?+E)f#WA7y@fQWL>+%^ouZsMcW>|JSJ>ts zUW@7hv`|3V{1#esNRwnE%NF9{~vdGNFAG=`hdx88ed>Lq$x^i9n}jzduB8o%3CpHHc)`am`!|a zRDj2DALR#Z|mpHPZ$S*5HaF3&^@Bt+q|QKl~?0 z2&=@f$g7RVDnc@5Df9|-j+lj&F21h8dsiuSk{vFkO-#v!+PNsH`=974h1dVhym3 zc}PfG);8QRgR3DHoQ2Ky6FfrJml+qA0H^_%>XK&AYlPKgtjR44hymHOL>JHa8X-FZ zbxH8fyEM!pdZO)Zq3$u&5SCkgz7g4}z96)?gCnfEgmYYmaKumFJ%lyJbgYJ@i^pSl ziuD(Te4c(;T7!5}XlIS-GM2phT4Hg~U-^e7l#iF0@`CxEzl~Yf{3`z zVX0fT_o946GZ75tph8&GSjJGHfdxp>SSXo$KI4Va8Wk2jLx!;IF7-Rht9?@)IZUk9 z0ONzgHW4c}iwXIV@N+aSA#I4(BP>Iu)wzTg6&6BR3y=kmutwW+V10&phiE(GRsLvKnt=ej|E<(2v(kzF?TZSh5Cxs zW&ReWWel=P!BOV8qkEjJd#To+?SHI>WosnIi^qgC>k!^Et6^#OB+S5~ofOu6{-X$C zL1I;6)%14S(LqsVL{&qsIRJ)BwYE&;S~{=x}4Jr<0G=L z$}fvhI$#z;OQ5C41)QY#YpR}(r7h5RIP+i2KXY`5ySrcN60+%MQ{r!S71r=`63dqD zvc%$xQ+rcyyb~d4-t>O*Z=qY&cJ(8$y4P|?9%Wvgxak8}g$|u%u?14GsQW)Jb#ubv z6RxFYFt&yJURGLhYr?`TwsQ!}Y(bF+)V#y25-S9M+AwF2IZmjraJaOBD)fj>Uag7l z)#wp64q+3*+K_Z-#ubJGPY?5Kd0$|Oib=9` zB~9;kXZ6o(7@^h3nL}579yCsDykF9&Pfii$rWuvj@wBh0F3vQs)P3}QLd&VH#2R)5 zRHT-*;s*j-kXTe$l~x$ha{tpREXJ|GE1>I22y4%VZZ=Y_GZ@EaaSlW7W@Ew#WHqi` z#K5IFTuR6gmdSMAem+=*RafzR=01frts%Ddw6te6IdgE?Fvp4WZkpgcK;57aGQ0&Co4Z33#EEQT% z`-IAa?K_1A5i*3=TTLu}tcj&5+fQ-V!LIetA=YC-)gRX#!WX=ttI7oEs-=-JqCsO( zX2F23hFL{padFOzS(nqmYG-$;UomB@a%w$X6m>7OIz%F;tvFh6#Y8M3%T#q=1scWK zDRp#?eWMBsKhyhDDE%YoFV#>KVe~Uv3pv zP7%CYcPOM&_;26xnXc)LHla|Dzf~WuOBPG4*D5RnxDK&oq>U#sDAp&IcsOY0Lj7oD zUE!QoSXXYjU#pCR2CYDw31LxW8Dv3M(GNskL!GYP;7fi{U!gOGRdI!(4Z1T6%Z9Lw zPe_Sn1s3z$TX{u`Olim(iz+E@@dB-?zGBcl_e)@*ZyMaenAVU(SWsB4fcm|`*X@91 zT?aIk>0X+^(%X3@9#J-CIiwTDIJI0;kve0Y_wT`ac$-6bU7ZbD!}c>qCCb~Qb_qAT zl7p28VRehI6qpdGf^ROc2)wx=O zDKB$>p|Q3M+Bd20*@n9&gjF=wzkZMU|9rV6u;l-}b@)UF%@>jR*hm2 zS47nd29`)}9uod@DX=K9>Ofpsg@vIBU@_4>AI#2#*)Z4`7MJA^L94{NzpUpDpYjy3 zC$JF0`VR%x&1fa6Bj4;so^A*%;SB1<{whALm6wLZHMyXD)mPlD#Ghmn%Xvr^S?Sq|z05iYH8mKnk#t1PvME3hi7ER4)}&jU3U2P!Od=DXMS*Ef^qev#E+ zo)SJ|#G%0zkJT}347g%REJ7!eSev-HjA2Ey14Zul#8tKexh915sactW*Y6P4ja@=^ z?MN6RsKUx`Czj51>O7s7kz~so@%`6;Vb{Mx{2F6delAiEI>a(Vhh5rdl*rmwWyQ<} z8^NMKSmq32@iF1r(ARn)IWkXnv!kT99 z(-g4vvk#zE2w{gj_vbuy`MA&1e8@vR9P*g^;n~ec?{MZ;SbdJHHrg)DVeLKwt3D?r zt$3imqDM$zm86CRyvnHh@;ij}t6kH#)f#O_DZ6a+$tnY#cxg<8k7dAF=SmuM7`pVq zDMXyqB{=lnaWKM6N98PeEnfwDIJehzLYAc@@06=?enb}YukvvXxmRBO16I)`WItz( zGOvLPb8@#KEGCZn%&J|O=2Jzix$Ho($G#Kz*#t|etb=C3nQ1y6r*xQ)$72XnIvy*r z&}b)G!70rBB8bIjgc!M+@Dy-2X``PvP*_aD`kjTvk`cFe31tA}+EGQgI28owW??m0 z6ZsYD60db*PCWKkJ_|(y6CCUMg!-0+YikK?r}k7k&N>lmPf&eF;{lwi4Fe}Ijx`Ib z4pdm@LNk~$c7*}$!6>ZU(^O?vW>!8-nO9-&Q|3^>lIJ}x?@_41=U4u-`I-x*ZgM*8 zkN$AT$B^79-kyg@ja8Gd3b4-G4Vr>j%p2X3cSPL^tj*`4M6l555B?5e-40kXFHs>& zM!4FiT}rMPQ^LU_fs;=80x_7oQn#WvnX!rn6RSkEcGa?x^B%91YWnfazE3CY-jtR> z#weXa9$zqFQUh^SxCM=6afJq>yh5)*EEB?N{6X}TO1)8^k0{xf(Y1%oC^eeWv&Rvt zDohYl*^Vy%tb*zo4u^D1e!r%=$2QTuVyC_~xq((({%jW$u1O6Iu>iL; zgug>rw^mrv{dq&Ax4!!6KdmXHAhNJTx)Hk=1emqbl-@AgHS%0}Lko9VEYYYxi+EwO%Y{Qu&b;adyGS z*~c+Dhgvh3#JE}V=muO|K86z>n@qb>ff>WNxHv@ThK~+m4Jo)7;}VC(p?XgF1ai;U zQaF7iv5Xjg3RoISoQtW5DfPbeG|ZooEU1?g+IM*+o$QbGlTQm59kY`O1ASf@hft78 zTww1$2hg)?%GvPh{-H{$Kfbp@>xE9C5m+2DqyA(NYc1=}=Yy45R9Mtk3}IPhVXW() z*V=vMz-m~zW6JbVhY{0*1Eik!`4#qUO?L>a*yc1a7i*)6y2C!L@(i@1z+!0`Be24Z zZ{`$Yn0<0F%`Q*o6fsWq;(PjPx;pY4pJIyM&wk0T6y4-qK8BBWO=F6240G_&d)!9y zDa14^vkOz6#85BHesVES<9i0(I}%G|It|6{8{2T84KVYyepq*G78*-1iA`hc$GHG& z=h=f+p5m8wQ$~7H*04kpO@rKA6F)OI^^NN4>=9OD#GTA)1MZl$&fwpitk7a_m*#xi z!E7ED23xwD%?K~{^a zbtJ8t1Jm3&p0XOwsSS@8uwu8%2ru&7&8i&qdN^ELn$zaF=izKcT%8{i-Xnz7ZdHGG zxO_->+C>%Xau9N7Qp30uT@(D14_V|m?=q~GOfHPxhZKU3AH#_`dxc?$A-Q?RZ-wG= zKE)3%8L{|K_Pq{IxD60|jLYl*bRY5$!~8Vn(Sxqh&GYy!E+LP-x(yXr+HRx8}H3d_cOI$PM7rqFva(HoO#T4=&_1(v-VjX$Zoy3>B12Tx^yZ+F5JC+IKh zAx{{_YM}Ke#xtuZuo%Ls1N+G%d@%Z|kyzIY_}Rrd2P!NaIALKKJ|&FIYT&LpkXCmX zbBBRfxv^LSv#<_y37ZfWOUs;>5ylj}AH0uY4zphpbXD+^+* z*~OFr=KVZ;a0n|RgyrTiZ+sqN`FxfLg!R`sH6Z9fG;w0^Yj3#%hn zT5*8BqQt6g?EqDi+hCp)qMy}OqpvXTcg8HNY>8yEjxbVT)fNxs6<2w6S#Gr5F$V*y zB$o&lhO;pXi?%&KBt&)OoP@=s1`LRAKSfs~%u8IJ#yp9oj(esTe)z=YNev-fu;LOv!oHDM7Yrh| z&h2tqjMs|7g4j}-lag5NHA@aHU36UtOTAYiP*l68^?geob=XQjqt!M0Bn{mA=WV0cxecKGROm$=$_ff6liU;8m#%AN^yUMFd zEM|@}&z)IVXy=85^axp6MpbGUi4X6h_k5K23qx4CMEiKl(lVo+@~AJq30T?i z4nn^ugLQe;or(nbL!05w2_FxZNET!6=zKv^+584Be`bwj3``ldSy(N&v`4r;9dyJM zx&al9kNJwlHWTZvv`u81I}7-oY+-d|o77ONBO`*D% znq_9WJ#hE&B8&{D(^VY1eJ08bWYx;CtQUL8S12sVu3p~K7!bSJx3w4}VRPf}+lH3GXKP}z~xarP~=0~J7AQwwx>u=~Q zlj$xlAvfnxVnJYmRSddQVBus!SYVYjZL4%9=q~P{atO^!a~5&xW(6x{OT8NfR?QO0 z3}UG)EG!4Ff`qWDqjuk$Q@sx&>qbue0vicwukp&MxYPz(1BEp;KvDe=;_L>Hz#d%_ zLi#?)vX(kZg}(?e%!H;L)zlz=R~qH38${EfmW}Dcd@hSs81$r@lfdH=+xi!78B#sr z@XC2`VDIWf=8Bmf+x&EuQ9T?~BcwA3x>8?8vCa_I2RcQrGK7V1h+=(4m<_wLD-{-K z^_QvNC*27xmUQn}3rjyGT*x23t3Kypg}sqkMRjESfYp)7E8^+~b6)Uu_XeRG6jtk( z+9a)*n(zQ^l*HMDsfT8tNSQtpA#CD3OillmMnCq*mop^_h z%LG_rQzf(GFg)Y{e?Wl0>xH9rsj%A1&V2K7plCMA=7;S4P@;F;3EaP!;Pu!nu`qgy zUa`-dBCU`(%4dTr5i2#;ma!qMj4NYE7&RITxZ?9cb}DU@)KO7)l$WU!ui6^&Djiy2 z1xDOW7FNT3gv@mR&u?B@Cj5CLu)NJ3q?NWNyM$@nc86FR;pWxZOPo%ha6RxO=b;I; z;7w6Yrtte(l-kyX7QotugsBI;yvN}kw&DbCJrtJYR}6Dbk{D&VhX-DDapiZ;mLk6> zqQfgEn&u!&A?W422Tkm$;MH-0raHzlR5ACbxVze&gR>wDxMC)jd{o?85XXDr$<<{I2ZtR4@DF-*0$ zH<4|WP+~2{P*@R{;1VWyRo_#`=DUPGuRPp&dvmPg<@{J3PSTk}U?-E^t9OAejN5Y= zEFRbbZG1xDiko!K#8HYXkn4wb3X$f%Sz4igl2|KxlZiDS-HdL@X`|Fu(ut8(I@NtS zB2y|6i!LExH=EKjeVwwf^c!=~eN{)kHR!H748pa6JEg)Bpgdq(8t*fm_5@cDh>PIk zQDI@})W8Tah_)7b3Q?(1-vOd)#*D1uuAwo`wtBEW`3lRAFZo+$uHUHR;?C+UuZo}} z@_b*?-a-b4M_A}9WV(Y^mRTR#9R#mPD;Ag`s_+Fes|;bGXDe-Gd$Q$OVJ&ku(u#@h z(iWA7)toimL(`Tv>xYB{R%j)J^<7>`2yX1{D};3)ubTC1sw^yg3i6ttZ0gBG^~)>a zd=bbR$ft7OGjbUYMr}-J$cdvLDCkaRA^VD{?(_vh3axS_d*-@zEDnfgu*Ht6_(0vke*TZ!#*Lf7{X$sv_emCZO${o5?L#o*_%UZF|#2< ztIO3E7M0hKQ?Z%_3adWLVPymGw7`;OZLu%sjm)|^`RV=;*8K{L+3YWveo8oiDwIfa zHSQ+!GCPRQ61t5tl0|D;^!$_%KVKjEDPh-$rTML@B61m$_33}zYpJlN-DD^ne4$Fc z+c_5;{OH2%mkypUf85IL>@H4DQTI!jflazeC%Q@=5=yUF^~nOsWkv&C!sA0s<-sF* zd84K2QVlebRSQ^Eri`jAcdD!&M}E~;^Zepx6gm=XxRFq$jn+~fIjCyxq}A`7)KFEo z0;@d_;_7vUg}sExSf~l3rd7LjgjK>fnTe;9hcty8U=IKvr*w=yjcS=58|E_LA)$au zE37ac0<0BP=LNA|=ar>`|8i2zD?e)$ouj^9uOO&r>_UI5PM9{yX?UuJB?H>u`HV!Y zZ+Syu8W$Da=?tb02ist9Wn4nVDx8_?PSYi3%*JPxnQ)*-I{Jk43i*^Uw6tDsAf}6r z286KqNFsTYhJbCYE|qsG133O^(7k)7(>U-9ZMh#1yk&OdKt9-D?(WIDNvb zu&A%hzMQ_w4+*KTzCu{{#;{ymS!+x^EP>IWu5GvmzNo;}s((7@6oxQu`kozuwUz5b zJ?dpUr-BAnukRlnYPdUZUZqRfG{qbonoHgyv%>X6os0_$zdQ`%cFHSsIHcnyLa~!v z-{h0G=zJ@o1wL_~4&A~ZAKQgTC{1T!@t8_vscNI-m3(L&v17yTFovf1p8AtlA=6Nd zI&HrJ$OWrzv+(Xr{&Igv>&-d1augPA8#-1+9x_PIJopY5STRcx3;fB|8iJY{yN1Au zkGx)N9yPDpr>BIox_=ce>R`R(ANrJY2qXjZ-N)kv2QQX5{~8BRmqD(cq$*uP(u%BN zW3h&WEMb+ZI?BdmcO|b9vPOd|Q@_thEE{rP4q7c{XAVJA;%Z?K3r3d^)Cz!B{}km{ zM9lYm@Asqc-@A97%N|qdyq~1|CmRR1xBg%FZ~Sw((h6&Pj6{-w&DFJ$0PC_#EXTM6KS^$vea`u(3f@$ z`jGP98RQmwj)_!?R)iJCOm+vgp5C29TxnEE1WP_;{^*bA5Y~k5s(v31`JA@sT=$<= z??Yk(EBI-NCFQUVm$0doN0_=2LsPifjMl z?hI5TN3yK_d+b!z&oE%1y|6$71>Lira<#GF|K+xH>ek1cl8 z^>N}VB%Q8W2ya~ok1GvW7vKt74SK|^hw0@Qo{v%NLoglYd=3Gu8Dgei`Evm8draY! zd{O3$m%6&3Ya}c57wCl^N?}>gu;nGDUnH+6hOPOO>RyIge4d_1pY1g>&-*s(Mpd)< zCsb`t_-9Mqec>o7OI|>s_{(LKb=SUWo0abKIxM8RW`tVX@HB`#7g%p6A?sZd3lfQ4 zgl9b`?To&b-B91%;1AjUoLBdk7_cFTAOc6;&1OiW39zy`vdk79;UlCZ>O|CK6lK}A zes_>Yr_XvG-%1maPe0@pu!2_e_2*#~8>>fE{M~&s9aLa4>si&8wY!8Mi{jXN`uC)} zrLeTHVH;-I$LfVE@#?=}*27E-#VaW+F7rAdBz+|Yp{Nj83Qus#jLypo?zV;h#KSLg zZCqgwC@ccoFtx0k$j_H`U||pCz9*%w!|bxDuN3g(SxFIeG2|V2KvQ+0&kq%FJxX9{ zw{`APSNpz)ObvHLad+@vBGn$V(tR(Q0DePYJ@e(~Z++dUt#qFPuFzF7@>iC2*Nl)H z);2}+L786G!2dimC%nIZ`f(wy_Nw21{rQ{kJFm7O#%6+QBZ5)vH2-td)d_#Foeshk zjLJxg3X5(V5YKPGD#$XBwAUk8Tt9c()l!0=x2>~-CjSA8KrIvtEuPB}stj4A-Tfn9 zXsq1}POQTMS^Ihht!5ZzO~zd!>;DI0mG69!!;vyEG(OD2?W!{c#5({RLy&7okp?xw3Bk8W?SER7U&HF~5 zpTB-GSn=IwO8APZ3O2Z6Gdn%OEK9p{n~;TAJpKIi>s-lswQn$x1Xhq(ggz^TF~lFP z@i(pU2VY40>FT(`hC~5LbWzXY>nJSjArq@$rpcWuar!GhDP2x=5wyNajKE4ho?)u$ zX=l}*!a`zECXI!}+TE-hr6zl&xuBwf70>1XF4h0~f<1~2(l)-KtU?+~b+ac6cL&=P zTgR`qI+Y~W%m?3okZ+$8j=~BOYvdIcZWR)Jtj67(Stpg_Ac|djZ?GdPD5R{g2-b2~ z`k$KC8nSXKDYK&~p!KA7BvNirYVv(GFW<6NxeECHn?CRrl2}X!_f3(nz>-l*Z^6gF61~o z1Xu8CJ%>e5b67Nkb&-`*NoO5}ADLq%Ta{eKUOUzj{K1v$#=c6zFM5!0n8lKJL29V= zZNB~tuGq(fEA2|VOJoUJz-w~u;7acEucs#&3JXa!&WQz$=(5N+g0MNdCg!?fnL7e& z!;L38nO-P4D28ISo%-{y9NMOf>e_#Z-&Qz^S0L-EIjoP^effGR9bL@OosXF7q{^=f zjkIikLw2>h$gV8)et}gWix)R2)h=S~?%Mz>*z>q&xmi0psM?De$oh1W!g`&ok_)V& zu;?*o=PYi}jVj>kT>^)jf@v+*{Cf+0d5=fwIrTO>UHMmzZ_`KR)_$lT&%=(y6IwUrn_Js*?8Vt}KmjvdddU|M>J3GiZI&CWWPNoNC7wu$pD= z!WAyl>i1oKJ)Y24jw^TIDk>}m4!6)nCX31jGS+Vro}N%xo7e=Y;Me(#kixOB+;U74 z&Cc4Ve+xjMUX|!-+y^sTLJC0XqtSjcQu0$-Az>&a?*729qOdnigummf%*xCM? z+)oM%Sjl}G&$gH0RnS-L!jw>j?cuC+cl$CatXa423hR|wn#(Eebok-fXlFe|MFQS` zn-rEm_&h30jsSw?2^2kkkY^GdWopyGj-4{Q=;T+g*XFM>G|?rq&s#zCO9SPHH{tm0cOM_++EYPvaH1f>i$!t#D&RHX~$8 zC~VCZsZU^>+y><$|Cqu8!$KEkklrSR~w0SE|1TiKSw&f>b^o%%BXU?DP+5^PSu%~T<*&vZRr_Al71KflR>)x) zwmu66L#$Vz^@}Cm9b!l?8^%#D>U%Y);U@60F0kHsjPSIPBW8ZH8$EQC1z5Hs-YDa& zO3S>`_%J)=09Uj5T#!`dIAO$9nh!eW@*Bf8Ct1#Lsr?gIN2)AA=XyCTf)6ao$^c44 zDRjxKi392KQDu#LI9{08R!rTH)9{g(Z(MBmAlq)@heA5?4=3R7JC#JL-r-?0-1X5LYy2 zr_h}8O2*wMgqx5hV%_;aP&PSANMyk&TNsgG!yvEi3>R1#dI3XP1S`K+vrT7g%gOu? zbe~f57!3Y%O>KG>(V6{Ma>sl$+^Fuge(4O zO&Tk{4J(){jVzCxHAGYfAx>dW%;Pj$SEV4M3X<*Bxc6}=!yp0W46$?viA6U99cmcB zI+$43%waM7W0wCtJCj_`EG;t#9hHdQ=@;t&?6g_A$GJeg?Q67epvz~2Dgjz3EZlRY zm8Y=yri4=7f8Ees)W)xv>tY9c*wdS>Y0x*Vcl)^uQZZ<~s={F;umIMm z4Fk-bv1kvBJw`~2M-&x754>*4k}EbKn9q63UA5~vHSGM*NN4Hw$Y z#i3S;W3v>NEyN00tTZ3Qz!j{5TG77zI=p&gR_KYWb%QsT8u|)>1+5TQ-*tD)aU45voKMD6Y z@k(a7oE=wpP%C7cN*;MOLk&%iW%*KMPM9syPV})xP>RT{oEWDrLN7`zJLU;I3oM6q zcoqwZb=@4+M~RhHPT?3qJ}rx?98x+UTO&BO)FAFZLU|0dGGu83TJpH8v20aCu}>#v zgfNRu_|Queg6ew3T^VaGuz1rb|8fUaifqk0mGdVHEQK{KA96oi%Ou&kVVY(=9@CKr z`qe{_7O>MFMnyJ;VDl;A@rn1V=CBAqVDS-{KEJb8p+;RXvGT?%f)vxpuHU0vg`TId z98};6FMA1$VkXE|aW!v8)(4e$uUX;i4`#hVj@R9(-aB?L4d!!4#h0^ct}y!Qjc?`1 zc#hBomM7k`j%W&tfkmA3)L2Y_h1Hza%1-<^4_+3v%tzujzHp0fh^+yS< zuDl{9g=J>Un$Whma#YNsbawqy&*h9+=KXD`@v6o!M1E?q#kyz$I5mj`C1;+vIHBQ6 z39R|t^E+!A=4EuA!g4h-RhL+CLX|{PScB<u_K}nA@$x3dGWuu#z!`%bnC29o~-P2)y!RYZ@zz30>#yuh~ewlXa(-m30mNu7hfW&6Y@;AJ8NDWo@?oAug2PMle#s&VMF zHxWt)-*kwbUlBNcjr)cg5T{r^s=~j%x&*4Hu+G}lJ++<{mPME&HLaM)5-XCE*f?58 zJG5vE39Lg1#Paj4(n2lweW_{{yB;;w7l-2h`A(| z3URu`TK(*oc0d1f;griPTa@(zvk+J~W`x?xt7QgQ;sW-h4Vm*}y}39d_4C~+)M4#- z%sb#z=9@JPS3LBL6hT!u6+MIfupg3syH& z9`*jZM6~pFdQeuEhLvOSO6^S%_oT2&A`6GU617lSObLOOz1dwprm)a3h^(h~cp>1p z=u+{}4{DS1@MjAYQl0;%t_H5OA)=s_ri8@d>0{b-5!#jyS${xNKAv@o8|{P(4;{5m z6N|&84MO4hMmsf2!>q6lUyOA?4(mdZmHyr4I_JS#?yF1$+f}pJ>l}>4%P8xwm-xR@ zSTDO9M2)_BA%&InmA@icdwI2tfUs8>_6E1i=p=+`ZclGe&sg+EpBk8{AVqHCl1;{Rb zN~fp4{ZIiDRVaj+I#eBoIb)Tta^5ULQQLh=VY#@{<{7L+t!HYu)t@KSDlFa^zHg(k zU{y5$)s5e*KLV~8{66AOxEg&Wo7@%Y_mK4tU7N+e$r=YTx%_zMPM2667+bu0Wouin z&j{M-&T7wL9ZM|i`U>lEVl`S7&eVjr_4hk@Im~my^(kS#Xr1zI8CKy1e$dL_-iN#r zqS%I3@+E~eZ{gjfu|{k;h~DuS8LxaK4U@y#=s7|9iUp(k_k+gT&{*RFfUM7&7f7sr zmylD}BvyT+sdwbGJVO)mlD5nO%Lo?k65c>#T{(xPa*6e~sb@Y=GSj@3XL5mFb%jZ_@k6lx>m?%z@Mby$ciTz$37HvjjI&YHy0k9{ijsiK40$%dAa!@SiF zyxYqev<)0gZ`j&~@=no!ks`4ISC$o4B$EH-jLbpPUPWL{BVXHxXMtsB2ZePLU_IPk zVY#h6>UXAjil!=TTTi*C31~oH&9UdOU05lsFPT})1-VCP`F7V=FzZ}lO^GQiSOp$N zX347oLD&Z~M68Q&Po$O#vTQ=@VYEcmyr02t5o+Vn9M-xkwk>d}E37<)T+3k@6QaV( z63YW?drucw)S1d2R)IytG2S?OgT(uFb6A%Ot&EbUvKFR(u|J5K%$j~OabFPXjn3oz zY8i*tOL#Gs;fm_{g@ik}8kJR^%h~M1Sa8c6ozoIqCYo*;oFj&1Gi2ikaPr>}sko^A z#jqG)j47caRW>BbkZ`mLEZS>#2@O3xhvh$#YsNSjt9D#@1gU4RjD;NQ3hS_MQb45Z zDXhyiR!E6AP|-n8h}x9UT!`~LkGLnOoP+C&HJ-`>_x#NB3)pfCsjMlg;s?G+4-F#t z;*6t;?T4euDB9p^+oMgJa5Nngj^l(gLjER@!qQ2(qp)V*?8%(Gw4E(erwgogg_ZOD zF@@EWST-ijOWWi%-v{uafvx3xKT=rDj!a@5ki)vad;w{l)|H;FTiTqkXUqcqGLr}c zYbmw16jn57W$MbF&3Q3S$pu_RdpwPN!Hh)&8*Pw6|BUkSL?_ybaQTeAA#ZOw#|Bb9 z4;&XXN?n;wK*YA5!|DQzzI2s z#glEg{DWPKdC*;(5rzYw%A!$ISmdu1Df=GRxd&>=#S|7$fIc!_jF zDyJ31B9*nUbX0Fg-uZ$-qZ7zt-k?C+^iGc=L29~H1hMgZ=X7hIF0Y4r!rEX{m5Ty< zQv=7MD59q;t}=t%E>~Dh*>#EKr)JK&EefnHjE~btP6SvtSd4Z19F|*KhP9}NI`8`H zuIdT6JS0)CFfE+Xa_(R%tQj5Wk3X|$)HRmn+`oks)|Ov>!b;7s7+b}%Ar`AljiXG; zOx2K4ozQMN&NT|sig*;(Mz?dPt;3=tN{jw5VOcvLda@Gh5-WkEh$jE3p2G6(DzUhT za#*)v)&V)JOR3dnb#~*>J_w_XR&*(a z6-3M^8#X3=&Z3QA(*WyY15_#!Xo{fK{4QfG9gL_Nv+vX2F-$HkIqC|le+n!j2J80_ z`%;50v2fZl2a~1$h9!xWzqWzGx)rYuyGwW=vD)m*iaEkgs-+8tvHj%_u{(58eW|n} zYc)<={POej`TH6O$_Ku--?E+j^PW@NJA0>aoXv-v99jOU_VH8FgiBmSZ+2VTFGA?#hcNKD7sP*liIOpQ(pm&!)22U{$hDwy2@l zotUA5xw!Hkh1RBrZgyXe;GN(qC@hdQhc$lvE@2Z`eW5#BI2t5YNn!Q8cOorkgl$1# zg=^Du21^ES9as?S7-&5llEb=)Tb49hqZg&2DW6aQr4kubvtru1^MQ5+y$vfrnggnE zDfN!AVw4)01-N1gi`4;V|88M{eN}6dpI)_iRL0EcLt`T>uj8cqt|}}A057qs=de=t zo2^Tze6&lfrqkLBLW2-o7g%=vbZNUnnlJ;b8!gA$_iHMwONn*AmNu`n$+!O2U+hU%yKj@q=Xzl?jLCyjlH~`cABHs`plb#epucXga<8S;E`hDSWtk4r_u- ziB(h-9T_(TNTIu7rRbxwHlblEcN(?s9}BHm=1w%+8dmYT(Y*z&fE8POwahGP_?zXm zF&+Be!LCiQHr2)#BMwcDN8?Odc*B*CA5`tT!Kd6M%uVB0S;OQ9s=z7|YiklK|8VA{ zkF5%eI;PL8E5Y)n3X9D9treDA6IV%LmFI1W;3>!Zf(P5mvaOm)YcHNiFYtRI8dynV z`735dYdvd!9$JxlcTf>o3Jb2N4raXi4N3`Jvb|D>?itR}G^nw`NGwXMqOf@ES&e>| zFcV3>3oHU`F@;5U7#aSuBHir7Ac~f662>H)^#r&r^P2-_K3Okj|s0D}P^fk{W@)RNah zwd8aRc)=7!?hQ&%Ekmp4u++&n>Txw+6FOQ7%YrPiio&Y7u>8j?ODulv+60G$M#I=vFlYL_2!r4O!~+E3YUlzEvMqTSm?hw-We&EvuEVfnEFBJa+R#r z+AYNU#~`x&^~f)(nG%AmXE`zJ<(b`HII1c=m*X=zH-QCOsX}JWF`E_MSqFTgsne%_ zur{X#>p3i&%m`h1?N^sreJy5rnF|)Nn4ouw#0r=>hhbZ>(cj>e6YX?`yM(uSIo2Tx z>%vLl$|t%)&$7azq~4Acg3y^M)(#l}A=bm=XJeLGSmrKd1#@{--;T^eC+aXKB)?8D z@KOT=Ig^ZLF2P2CF|tew@4`AP4o;KF;W<7Q6jon~nKe|GSdn=FIB^2!=Xr1c+I$>B zokb^2`ocN4R#*`0x;d&{n(q_O&Q`B>yT5<HXvcobmHDAE*YU}IY1(f>0PC+3tK`-_thV2j;6<3>B$gr{KGiy6{AHoT zDb3vGA`Z;t^nNv~9^=pP7?5?$<0RH~8fxrdd0sJ|tRlM(;w72ym)t}?_Dj5*`>OrQ zH(_P|>lO7$R^(2FXOOL8*3psbs7QH$^*6t_;qDF#-`GyWIM}s(vV;aaF)VtVx=!S#YnhL~~Q*JbH=UR`Rg)|m;X zRx0iQlIZP%P$1>`{i{a?r%aB;uE@oy(lr3q-`&T$eGiNCo-EnI6?QP3QTO`ygbHU- zoQ{`Z%1DJ*h*jgWem5+Z zZzfCZG5LN!Id517cj{!GFR|Q$jBTr_);V=oH2~J%L>9c<-C@1YtQ8nCvIsab9_~w& zkzGM;$5QIWKa3Ap-^41_pGv$Uo(wOuLbJ?MD$$Vx#9FbBMplphM_$mY^F4{*V-}00 zNKu5pjSy?No$r?DS_~a^O`lcVP-(f<+YcnQQKQv;+b{0 z?`^nq4~z4!h_!F4_IL?1hwwsYB7CR%#gJL5bdOH7lK*}reEb5eF~F*cWf#7T*>+_* zb%{#M@<^EX)1^DNh6B{q*}>OAk&i1I#_h4S0LaY}xGq1uY-@l=zC-2)@FZi}`V?S2o*%M@MRsi!$B`(A3h^C5S#`iVX}tPj|Dzk3f$ z{5{DA>-A^CP4)JXFp0LoP$cMA7{*wv1z2r7`|~*-%`40TDON$LP0TuZg>3MpHT#+~ z@4xH?3^u)LVh=ysG+x}p4EdUlGZQ=p3;Iq!eQ`#-I| zPBb$fyrY|m_n+iJ!^;uIz#6-zgvE3vv0l>x9X-Eh`1J|E(qrA7`C< z|3sK+XATnF*Ad3z3*uGxSic_qFEngp4X`@OnRVLHVojZxLA<0*H=NsO8r@`9)OVQL zCgFF~a|@<)3VE!IHRUBHtX8ATxCsS)tjyEFDe2bUKMJ6X+-x%1HBxHbKupum`_GSU z;*fPZr~E2dNs`PJj=2_#i_|9yus)#0x_1xD@UCp0!#3=Q!1fDxt69$dGvN(?Wz}h( zO{@+-e?9saE)K*xk7Hnu-ib_lc3tRBoVNSLUHRk2{&`n}L7zb(C_@l4_%6(W4t1eo z!&nw%axNchJBCw>_bJlSq6;XSy6qOW+sfjiwxeQDVM$nB1d2B;V=&5!+ZF zvWG=3;A|eAIBXG$Y2d78MQTsI*SGu)j*QxMZ({W)b36tqUNw~JS#KP3%wt4j6$HBq z`9E^A|KAR_2v0%en#8O+dRCi#w)U#Q#R5|{f-G^3-RUIaf($Xw(-g>*UF!1NcATr6^#xdeA6a+rVfFF01g7FNyztz&$4;)h zuif*CNiE`W8axtS$bQxjI@H$*$LJm_9t}$~DaJ0VWJ1wp@*}nk1}-{aifk+-Ep&N} zkASFkJa|1j2eX67N4nd>`Zp?B$@2OfaQ43jx;OBNkrW+hLje zt|W;Z3xH(ubz)@=hr3xpfNzm3-s7qptV_PF+IIJqk%3qjY)*ZQ>m0{5%A9Vgq*Y3A zq}9=eSi(hwh%IfJpo9DhjiM=1xv(?)Mqr&eLE>lg?V^qGr#q{pDA4*p5t=lv{T7SO0rH z{*3)xNRAp>)$8a;RRv_KXDxmR04ys?}Uxcayxs<|McVy%AH!u;P z3Exe|7UX4NgvAAqJ?|o#D=}gopT`PEtWWFsR^2iVAGP`c5Lb;UE>;;_I*&u(nr5>y zUvrprjBiEeFlm%-89tVZpQ`2q)<--Pg3k?mSOWjD#d5PdUVb2qz^0m7C7jzQ#y!|x z;*}rEDeFYmFQ3VQSxY&FvCX6PX&hy?y5I%~D@u5R$aW&`-;`s^qQl4%SguH=xSi*b zZOm?!JtaY=S>gNMNT<()RhZ{2OsY^D*W7a8se`RMabQ-fGXhf0ol$2N_5x{jZ#J5+ z|NA6fA=b?u*89X-Zk-Emw!F6iX2df~Z9Av^!eOo+klh*kDwg+@qtcNz_(8Ub!^>dP|8*CRA92av_%Y z>kc37AI+RmRYT7-P;0j4#j~75c}7}W67bSdPYXPj!+PJFN*7$*}gJ!%e=5*)f2Fxe8!}H7Hj<2j) z0Wv(OOQ>~QLeI6}2*_2v0#NE?7kK1}@2JHT$nc1D41Lb>{adVrIk+`km1A^iU!W8r zld|H#{&Pu_D@4dR&%yKoR(OflAZMIZkee3ni9`4t^jc-as!5HbZ}rALhBbQY#E;;a2CPdZ2H%%`$ywKl>uB>Q zn9hnbUfS!tg1)Q64LiX49ArH{p~E8Uzw72lWptepdysHNUXFfK2Vi9ZT~-h?;!?-xa zAHK`KEr>fseEz)1;FvLve5OJe0ie-L$z6U8A`)ul@#~z}mD(iMk&15 z_T7Jd!X6gU+N??O!h_$wi%P_>Rs|I8bU0PM@XKlZ=rdwH9^X%e{aG&64OJ1xbK+%I zQm}NHXQa(h)@XZ-0|vTd8sFmxUJM*iAFV<55_8y2nz;`=&4|aR!BfWUWTb4$sBx1M zIbxM@9+|I@rb=g(AgD;|2A3A5Oh~v&ELku75w~bxMQw`At7))%_>b=+f%UxktAst= z@&h{b8-KxT_ejWKE!(=x(kewHqGE}wlB(lf|2X~Kqn-)}N{xPT(bU`*NO4bNg6EmJf&|JU9bC^^m|>DDWF|7X6j?W_}LoZ&CHHtLqPCRM+H1XK~D zn$yXr6e>>@baMfql?4EM8Q;6;Br*qB*Mio54QpqJl_jTlP|8y?uiU-5nfyB*=BqUc z>oEaVy`01Sc|j1&83b5mqnZq%s9wchPimP8J>ZZYjOg<-j1%SfleHjw+k)&&PH8$#Xx?8R$2$dGGvHdVF93lT3o!LhvC)Whlb4J zCa|G)1b7{k%>dT*h;<1K3tRaJ^csjvl{|);JM!9d>C3Dupw)V?-|R;I+?1P@BPH8E zP_Vv4G@$@A(q{e4{N?{-W|T$?4Gjg3Sct8-7%porxL9e~C7Aeu8PD@Iz8vntUrnL7 z{IDm5F>Oe(>m)nY+;|Vwj)S$|;V#>^z?!G2Si3c>(H9(!8)^#NHx(ob--cG9$} zVP*whxmCz|^m{EZRjp1{j6od(Pn7&g){4<9%i<0HCvAZZ27_pVFp3lp9sDX;+dv0S z5Pdnma04L;+5k|O)nk#2OINl0)Y^)T;S2a7IEp0se8Azl1%ck_lrXz3|i-1rCv%W@NA_L?U3+h?a+o z2nQke8|Ya>7V=Uv5LFR1B?Tu87fgeH481C_;MK+m>$?!^(K*!t5@MmO$#c=jpIlOl z!Qbk}%A+tP{k?AX9AgSnRY^7uLaM>K@5l2;!h&EtN$kN>k4dU3lu;Tzu266#NMkdA z`c@P|is4u%emgV-qFN4G24Xs7tp0U5Kt`0j~LX^Dj1XK)ZM09kG$3r;d zuSooAOG4}bMVlh5YJFsJdr_UJL@(l~R&X>}EW#`!ssFkcSHViMB&)pxhsi|cs4g_G7kmm> z*Ly|hI77qwj9Bk*6y7mT$?&b8B9wXin(lcW<{|0QWQy`;PDNTT(JxO%zP5fHBSO&# z9MT#IH%_82IObT4c1mi#9G^|TTS(_s)jt?wg$jG6YdDO18u%G+tReRLcM=S(>B#w5`eU3w~sGnp1 z`8uy@QWZ-`mbcrsfGyQYd6Qg%pkJn#AeLUpzAdndflL)U((1j`E)@D z)-i05^{u_?v;5t9`m$=Z zm~!#{U#9;pv{s+zg;>N@giEv~K>IxwPC$q?pTP!I3@I+Hp6WN8FnU#YPAT*ROFFj* z%bqTmfi2VS8qhlWlF(S94tCTnN@*I-KaD~g<1W1<+?j_(`|IS?=zJ56=N&`HBsAdGp>e8!@4Z9PKdBRMb`4}3=~-@YDK(0 zAY9e%yyz9>e4Gp?DwGhb2 zDZdG6$WfR>9ep0o4EKCYtK(!=@f&zCv`1Hm$>jsy!73uH@>~^I*iH?Lj!#3ZkW&zM zIDX^FanJe|q8(Ft_r64{nm&lDrmf!>Z{DL4Z-7+nvv5@A^_)Wwm}VGw!ve6@P*bz< z1DuAdH%meK>GO{VXS$e2SXR;&sddCA?yY3&FS^5=Vo^(Jsopx3qt1AHgmt|Q-uFjX zpCaoK9``NAExEZcl{R%+`RZ=v#Vu<=Sfwbdw8fu&W-1fQ2e<5}UQ5T1aL{)qv z`cJjGSwt4X#?hlJLyVXrL>j%9k$GYW!orfU_t@<+ZXQ4RX>aF9$f`)`Af|HAM619y zj|stwUhU8wTm}Ob3Oe!}>YG5-6B1~gZ!PQ*d7M;kfVrqHWlr(q&8$f71Y%|v)hh!F z`@bGx9ZPXaFDcsaH|_4GmZbWCu1`NVCRS1Rqr!PiR)E}uF~E`+iPP>{EOOY&la_wn zkkXq3l_M+$??e{@)?YU7#bU~sQNRln)wz1=#5As|oy*`@IULX-OPvU;iz92E5n+9{ zCS3V2P7g6lW71+*RnRT6swJkNO@Z06A6#e#&-aAz4X?6LiW+p;! z`dz^co}>4$gxj+k>`xQ_=1Vc~0;&KW^&oi_kPJHDL`@nPG!($BfgQ5(D-f|P*3MH;OG#i)Tt{T#9lNsmd;?GaBKu%U71-|h_H^l z2|_--<5eacr{-#2Jnjf|%sc!|Ht(ylWnk^K(QBkpwNFXVsz$kJ`P~?*T+AQxq*YVA z``*XVmGdrEnRsl;CeR)&$V*~WXO*zT?3ZeBjLX3=L@yuJvE%-)M_AX}x8a-!>!Vbx z2Akzah0J(Qi?Ai=8-6uMA5J%}v_T*<%fQzlo#B{2QPcQtPljwx2kl?m!cS2R{_~D_ zdUcSC)ETtkbhuWPo>ryvTiMLM^9=?mIvSvf_=u3oMC%9wbN;lE2Gj5hH9gAOzdpP} zgmsFB_0gIzywx0lf@eW+j~wE(`pxP5@Gz__pRD4)QM}^q&JAH!oKA#QoZ^!?eH*?S zVz!ZH=a8d_JbpgOe z%X#bD*M&X8x<0bb%5)zei&)_^@p-*REAQm@!R`!Hf;N_Pc-1Sc@`otK7~I_ovq084 z=2x2wF4bu7Fu#7(47)kbq(eN* zSYGbc09?jmh_NmhVVxFZT_eI8eN~s!rzlntvl_y=*DkyzydN}+i5wMcReHKKd(j5@ z=tCDy>%3anmb8oR&zjbQBw0bHV^+%h7*&*S9OP+{>_C5IJJd1gBD>3LGU6!3I8xB* zZyzky1paFg&|kBoM>uc3-cQ3(5Mho->dIHMFYbSh!BewO2iEl?tntB`uyLlH0=rfc zswm?rd?=?^^2>+)+Q6z_)EPr}cNV9n-dTPYL#d!}ZB(_KulI@xb%j}D$?^m^1V_|f zNJMPabD^l)-B)@Cj_rH2ASCsa0~Dbu$$g@iPKiv++sLc&UjMiU{b;1*ZHWjIm?n5sjS@QlvqVP#&k~F((_u# z;{Rr!-+#qpbl(YB;{p*@k4Z8m)QY@X-zjVHm$gbDt7?=AuEgUeShat&(@S1H_D!UyvC!+}5~$iM$-dNQ zHueWsT==W|PX}|*ux=A#{p$#8gj^|#oOktR0H@_tth}G#+acZ493)}!`ZKq+%Boe2 zKaL8w^uN6R0P9<-1-CJZX>~q~w^7CX(Xjlsj6W6uk~lyTj%7kIj=F0bB`qGR)v4{a zR~`yzYo+6!`v6Uebro?Pg2>HR* z5``)4=l2+OcV`_~$)sh~hpTKpo5i)N&g$XMxQcQJ9xqH$Pu1IiT?P@VNkan;s*KQJ zT3XDt!~qo;BPr==b$Nyh>eN~|)Mt&C3B&y~7(lZN0iWLgs^a|d0<1eAi)RJ9A}l)A zZDD=q9(Sb$ASZ?<^*v#yBQ&e|fmlj!K!ayx$m=>|a^fMP>a}=8s>h3a9E_psIXFc_ z&5loYCq5{;mzp!iS*3xV^3ik`lhRW>dNvrWP*n4Bco0u}@joY`k$W+A%*wy3Nr>fM z%i)lHdjD$*Vf_t(HU4>oHR850!bQ$6SYPk0zxC6xxcZqx53I)1c=uVm`LQ0H!&ZJC zBo@*b<`<}$GI3D)FBAfaAXL{ec6=&10V@jOO5qgG?PvfkhMt>h0Ig6H>wz45U>azO zt-Ohu=|=ZF2HiEQ(4<(5;WW7QAKw3}S4lAkz`9fZ=s(b~uoVE=K^ef*JE+9E8!j@Q z`bnUpC}K79st-i{Ip{5$P>lcRATXokG~wZlr~y;!!4o~L^Ki9~<|z79#eP<1K#X5= z2zsX*!P847(0o~_L80MDivK^AzdiJw^lE$TV&k;T3@yL7{{so4nnYOliLv%aSXHb8 ztE*Un6ERxK98z;N55D^YnDR%X%jRRs>S5u7M6_R;CF93aW_ zsU7eNbKvxJ3s88<<)j3_cBTOn9=buQ`gy;DrEx~MR4M2TM@09hkm%A2S+gA9-TzUI z$+!uycH6j3ghjDtGi&1M}(hucx9gAE;XSfR|qo?kczfw7(Q!QOu+LJ1vq;#aHB*W5iM{b!Ac9gn+(Sf@o;tJKQTiVJ?Sd=&g|z?gM< z*IG}0vyf(2v7R-Z9uLLx6;i<|{zXJ`m0V#hmWDEEu_jIg29oHTV;<@?kbc^;{x8F9C$HB+v2I|E`0D=m!3TemH$v7) z5!NEH!nfiZqSR=(XjoYg?=$woZlaB1-TPXWnNmOT7TNEUq%4!G+Jslg5f4)275pQ< zavj!`(|d{UTODRU*$A|(qw72BUMl+0VEO2KR{u&Oy1xffby}n9_;l@R>YGMn1@o#5 zS1PBXx1PR!pu2x{|L6FTO}R|x)%ABD{kIX;d;Q5rYoy0|IoTj7V((a&e>r8=-pkOh zC>|6@SOuyYL^(#4Dr)f0WVr^z>)K<1I;+u@L~?w6RDWDZvJ@vj6|AaUHaJDG3M3Ka zC2oo)pd51^gY>1N>c?YLKd&gj8JdJMOnc6NW`|NbE3A4xmUQ3*e?GhaZPwGpU*w&H z_kXEj9V5R%^QPK>u(Yl5+h>2OW(0Ltmg`lMNo}vf)dCoU@DrBNZ!2-k9xBy4kMUM4 zKWJi&L|f{imM`)pr%{CS#3%7-5Z$0gk9@#jJ+Ful3);v7X(PKc?elp{+F^{cn*U zKVGC&%x%!Cu~qxuHQ_+WHjnUCuMLHX7xF|Ot>0i3`jnpv(!JeyYtDa^@TY2woji&I zcT~{TO+3Pt`f<+q7!+QKv4k(5lL{D#^(I#rE9>hepWc7W|6CGbJ?n z%F#}n`DW1DHC?~bx{T&YcFLuzU`=|*SQ@IJL*QaKXZ*M z2YHsDAlQ!=Je6ns&soIM)9z{zZLv>OkqdlHhA>?^73rZ+10WIpK$9L1xzpsLi*5|& zxuAoDy^rrdui!rbSpn;A>F#91ZH}4})s8Pp>v0QZJ+T0_p( z>0w{qf5tPkfOWsrhJP4gjgV+SySZ2NraWoomBKb_B`)I>b$9)(0l2^^X3*Kyu&JxM zL;ubm#6sTOyzksX`7)vA5M{Y;?@Q^P-APjVt`-*cv)Q~p8DIB1ioyes1> zF)ldUEE^HJf-D=~UKOIK@SL&yAwsM8pT1E_6EFf(ZfJl!PUW=L+rwQ9fMdcswonBL~W*{uJ&hf6ps!Zi(@SRa=K3a&!&n8(p~ zb1|ZZUwtVby<}2Br6C?k*HWuG&&*CIqiOn)Ab-;!t9qyZVb+lTl(43>-4T%AgOnx0 z$m`5txYk>QXIc#Mg3UMgzkaM?mCYNz2EAXys#>tr$xBJ!8_wrqA!l)>z?-~ArfG<&c$eTB*a{rvvdJQfZD*4-9`|1QD` z|JTR+1|iFz|LWE5u`~T9j%CU+Fq`x&=tNBkT0xty{+?gR_Yl*@F)w=6AQ%HZRXHfk zC#0;Z!=~zD8kpJe_6#8u;uP_fQAU(C`=2Usnl+Ve`|5(y(`Qv^0~pYQDb*YrsqX>Q ztjYgD64R*>v3+y@X;A{KGm{(US-{$@VbPaur0qqkFOVdEVKs4$zTQsadz%-(A?E&U zg{wM0P#mC{m^RVj$$HSdnq&EbaeCw@Yylb@E=VNcu(rg1Fp6Q!cQ4INZvZOoiez@D z>x?@6;ZF@`loT*_HzrQ2UN6SR<5`RcIiOVxT9g8jUYTKCSY9qb|FZ+(jE&Qn@x}c| z$s!L6yIY9$uOh4=KxE~*b0L1NP>uX%b7UZHj=UC)f#JF_+QwC8nlPcAJyo!jBfpB| zb|5t1jg>CT>e>3^z&1y+c>Bx3B_DlQd266wngK*};F;CI2&$9iUo&P+0JCNQ3CC-H zwmybDgd)#p_rDDVSU1+)_i9+Qg5`bme4>yu4|g^Dayxy1+UFUgzzf*$D>eRdpL0OV z2iUAfZT$8_e~pzY6;7jJjsn`8X6t}C-FE&VHDKLLdH?HqSO9AoRzc$mL)2)!i&xH% z8&^ZD3z(#Js!B#+Rfq26?1ge~db0OXgf)aaLGDz8MwhV1?SM5-v#lDIj%bf2YKL7E z)>Ah*7UQipK3>t)jIoP_Sda-QDUqSYQv_K~T-a|d!Wv5v7RBkrx|TiWIl#J^j0Imd zMOgAgd;hSGB1BoeGv;>Y5n zGzPEsGVA|W!=fUX{Wrw=23U7}MQ3Y-HSlB`?`5Z)S>;|kqmmFE|larT0)AV4ii z?v0u6E^`H&-XPTJoTgP3^<%W{;#H2Y#&U$kb$*TR{+K5K3!69F9c#aaMSCr;A%9UT zCoQ;$A&?pwHZD`nM8n=2vR=TZzYXZUk)3$OvJh|;w)U?HKaa4O{A(gC>@;BAPQ}`< zVO2YrDDid`wi0#aeU3AtG(F1nJ*evALL%xFtZxLvq7YH54)5Gx%xzp0eyw4V>Hdon z8;I8TM_2&sMjMchof_79gw=QxH0;$aUKS-V2FAn%p8}L}O8mdK!DcZOV%XtOi#V)W zb-qf3W&3Rp3g=aTb%9l3*(ME(b^=z`yj{r;?p*7RyvC!NQ%zHvSN_7!RYWWVcJJmc z?TUWy5~>($tL*-zhQ)Ed-Je$(Soht`57zuG4Xf|mvXnvB!+ z3z$G3Ac-pCof7rT;o>LUv~-*gATS7LNLl+6LPY zVd+A@OLc#o5n*Asd{Vem!-_l3jHFP-z$z!4_PKprUJ_Zbd)dF3cko9$hrN+s2F<{Mef%UkZ?!HsQ%6s~SPbO2L7Bs5ni-DWG zak03%R}Dv$-mdaKA+I+(w}B=HG^_r?*|jt*hX42doL#_zS2y}7#a0a~s_%K_mousI zLatvdFEtYx*HgptcMPv!Ad3A(QK-=0ff^^jqH~!DOV^pd1X#pa_gfP338DRV%-S`jBGFz5 zSQjAHP7RAAyqgnOb|K?{Bf}~z(t1yu9YeL|y(q7+!K#n6E5WLKs=z0NuIp%6G=34X z9xMgU1J?bv^V_IlVKKsrc~SXoz|6C}W@~NA5a2CuZ`yh;VLbGMTV#f|?|pf9_q_qu zu}{Ogek#`GGu`k17W6(1E5=yiZNap-%7daH)`1juWL{M4v%G&1USTlk08e!SR$dCy zu#j~b4U7JBZH{sOJ!UenZoZpeEep43SVO~JEGIBgW=wF3bX$|FVpq6M`c)?6WwPDH zr8j(1wpNvl_;niAyxdNHCj)EVC$|CHr(waeg&q7d4l=TuBMtQBGA0xI*1u19r4Xw< z`a6D7-05<@Lwg1K*J)Vua$lo3Q^UILS9CUMSi{5CmV_<8z^lA>VW_K(GX>xxc zVo}TK5?8SblUjZ|vR0kh9}A*w=hZe1>zAomCu>+dD!h}7wIL5{Ey7AD=|YePt?!P7 zmt*;b>mX-Q>Ae*8T_waK9h9}8U%;t)QLKE_s@z~>kA_A6+4ehth22la`U@J?o9}F` zXB5x~cnNzP(-Cd_56(592*sIgldlkAy?B39CRPbqrvMAP z9k4cQSk<;I?6FQ$MW=!~e9aD@eqr&1_siwaE75t$ zy4`v9_e-n+i--DLm3xaShMp(cTqVhEj42>8BB1)gvJa*HvwUuJ4l5VMRi}R=34o`QeD`}j`=lVn z!>dDBa?pt3uh}2x-WW}hynLbgG}a$8#j(?(m}<#Hzd<&(FG)$9jwaT*>fpJQex&$g ztz)s6d(vNhW1U#~d_R*>$mVIHMbRZ*;{JW=au>Cfnld&oZ-6n5J@8L4WTf|@bHO;l zOKaY?E)W3?uhiE`Ml<2xDn8Yw`KH~Zn_1(5e^KoY$Ri{EXI!#38Tq(i#_)CM27IxP zC^yw%VJSHqY{2ol8$!q2@<2?xY(ca6jgB!WmQ0l-C~+u#ax;ks&c~i{Fv4ey$~;9e z+%ci@oMf~E{dpZOac*lQSK2=;^Jfem+Iau>|M&lrJ-_Hre%L4M2bt2o3H-?p!DssA z<%(+zXg)CEi#6jubcw{7Ml4`|{W^8_yA}y4+>!`_#|LpvpsbSnt)VCu%NCBD zlz1Tm*#N=A;o4=B;fM3Y@<2fw;E5Kt>x9P__jA(uo|gse=UCGhP71YMcAvVCg8)s4 zg0TI;-{Xrawfd-GevG?+->wI5nZnpE#*p6PJ@oHeef_8LPS?k|im`$9GcW%ux&9l+ zr^^6d;ER{rKW1eXB|HNAO19&Cvp1qlvc>(m{-=CnKc*KFHlB)%jX&|r^d*MdoCC`3 zlm<73$QQdjj-&nG>)zvi&vnLNn=aT!!p+tP^~0B6?_y1?Q{3AjWca>&OCa<5bKK3G zpcicy>;vl~+j|TaAF{U%!xKN7s~-~WNrsb-5)V`^+hsVN`=L40su|`<5usBxjv>36fQ{XqRy)?GW4?4JWARjgv zK8yJm>a}-0=(j_x^_%q3lv!#yx6a|A??L-LbOE5RT_f+7kEG15zFG4e5~;oJoir9H z!O+S*>ZV;{U`|9a8jEj=)YZ1^m}^_nCO9te_(5(b+ircRX^y;V)0-T{emu$@$j9n< zNsM4%|46%(Ztt`c@qWZ@@~fBE=k3-0TaA z@%=hi>Ns_~)@X;LAVv)9PJYC185{aC%AqG)!-2%Hvlr#g;=xaKQ{xfmP)|ROTmbC( z|LRlo-K5d{JbJkb?}D(M>-J+D1nbQ-hfgdjRj_WX-29^EOBkm#!)wD7Z$XQ9vyho) zwRx`NKc4uXOfYQ&54Nx;cESwL(2Z04*SZ^Zt2|&xw`8*r6=_@qorNr;emRy92cIpH zp=(9%w&liWf$$0SCI0fA7e*-lEp?e|?rGfXEYOQNSJ7b^2#H08|MP$Q-}?-~WUetH zwJ)tMAvPK$bP|ZzFqHd6tDqH5Myy7x@P+8!M#__vq_FUbiPH@ySzR4YpUUx4d@Ur9G?iS0p7)|IE}&1 z4&5bGKx?pm7yxqhQz-TXbvIczOz=t@JNAnZ0deg{hsl3W$Gv>D$M1g6KX=ih!z=u~_>A@mbT2y4 z?HyKHxN1+zI1`Pngc{qu6;-l2YWOhTSRg-NIftFMz@7Mq4A2VRR}8b341;#j@g#*y ziy7L8N?v}){u6h1U~FR`YY&UWutMV=IPg!5!m!V?Llx&H2>90a+Hr=8RFi+xR?Rc`U&QdP{cfMZQ1CB|Q93 z9>eEth!FVTx;T62V${QSqOmn0rPoP~1ee~?V4OW98|t7OXPQE-CXn1EYw4~5l83@S zGAqr4mdPmZ!PYF}wR=>0x5SOALs(>`2b(@w3j?Qf|!M&oBQ#f9sJaX zqt7HO{au=tjRjjXEAiq8o7*%eR2O~~Ay4{f)4;QqUsx^Pz0EGJU1Gz7jj+$0V5H>4 zneyx9TkUFaw9(y#h#eExh%Gr65crwN(IOCdqWG`86r5CiL3SC@ATVbL6Vl{hDMo&1LVk@fW8!exCk&EuDM*WUM? zGtHb!^~Mq7x>X%nbCU8yw_~oF=PNFf2TS^Q`r!Re@^O%h~ z&KO;_+B$=|hm+jwQ?glBYHoY^lpDw0#f&p3vEE*_td$kaQIAL3))}WUILBzzKiv;D zevYeFz1Hx*u57kwFq?foZRV8eoHu8z=apG=I2()Xy;!(v2sgE_bDeUkMNq%GwZA6) z63QswbN!EaXoA}iG2fRjVC=j3beEjBJ76*e?C~A}D<`F!)AyhzivRcAb%=j5MRHd-X{J~dMhflthdx%=ryNLJgloLaP0Cq% zC%;0zJ;i??9K&flIO=`N98&5Lr!@rg!Uvu=7hBf$iw34_rh2VT+5UaKdoIH(0q74K zz58mU<8YdP#gN(a<}A?p9eXSvVzFIB*ZLn`t4aB9&;JpNFMh+mAlAZg2=&Gd;c($Q za1Qt;Im9}g9yR>-Rbj0fS?gXD<0hMc!7*WDu_#!Eq~Rutp?bpDQv*)US*wEAD{nsq z12$)%tLO90MYlyKG1op0;mH8E(3+Xv-wA9|c&+3SA^i?~R3sZ&pQhRzyk?tzMY_b{ z7=CDG0#KC%3fz`mytgSVHaj;l!p#;S>?kJ^N-qoN`3%0u_hqk|U@GH?jVMETJ(Xdt z<2pkzQRNKBP7I#|bgut{v1ZtVN-r$7d&=rmdA+_Y_V&B@Ud z6)nbSC&>|K#qX6*GKp<_VZ9m@@IiDjkTe8xwx)fPx?9(E;&s_+N|qY*af&XlsEV0;eW*uBM^chY#X8^mCwbqFzxj3 z2`o+UkQY!mCj!GayEC>D!b|;69I$*fw(m{Wr5*P=ln7&3@E~@$SNTLy?>;@C1RvMj zwE&WRr9L$`-n4F9a+}=9M&~Bn$TtL42zwuLZioLAY#-xA?Edi1y-EKhO532%^$28h zbiT&t3GzpPC%K=Z1$U{Fe1V0OBpOpT$*HyvSgFCue+m1C3p*{gLC#vg@DSe5@{#;; z$ib{t<}1|iSwxQOpxo30jrbQ`WX`&k(O{tr&kx=W@ES$rn{@lqiS=kQc${MU=fsc4Z6x>`2b^0WWQ|to_`h&Bj>=s{M{^I z%^Pkkq_q$%AY;8nH(E?;00~6$?N>}!cT#v5adCC-@}Y_~pEc&%nprCznyt>K?-Cz2 zs7!HtyO9E9;Z%Y>)>uusW%=2ydbr8&n6nt`e>Hyy;$bQ6Wg+Fbvd3#|)fhzg%?=gR^U`Mei`Z@hTdVVh)~v zl_#veib3ks44z=TwedFR6cGnq$Dzh7`W2Wq*FEW<;<<0IGhssKmD-1fBXJ;pvHvZ)p?w8C! zu(ksk0lr_GfDySqy_#LuxTylMx=y%73?(IKlpWX?qKUjRr!bc(9SSOe!GI=6&|XNz zxY1)r1aG8pn}=G*g-eVWf$`GWa3~WUmVcEU-RLf6mn4UF2#$ASh#+P?a>)KfAV}l! zC93uH(Ks{PCw;W+nYPM+2+?go+J3|=pDeMkp6J(HC4=J?-Q9dfZmzdp3}VC@%V4XX zw_Xm75j+*@?{UHIk;4FQDoBTM2}GZTx!bTX)&UsGcJo&2XC#EfLNPv9TxVXrC6_q( z1xVTSH6!_X%xqUk$OiA=HG{uVu~uWa_;L-OeiWUDIPpunNpYTYH$x1Zd zci6wDf4?bRG%~4fAY1VeLAfVmu{mNZLIX{`Lz;_U5 zR7sScqb=n+oXLh@6im{c02nVSsRO2J0m}Rk2VQaG(d4QifI!R(`c*FNgCQw`y%;g; zoi9sYUV1cZpVP|Hd1PaAlpmzxyKBtS(tce;$4LWK43ZpPj-B!{j<9YRbVK#!Q+l_? zWVe~y{AwD7L37Ly@f927AdENd(|j~$gmp;Q9}@iAkDOVG-oXG}t1+xGH84=pBnVM9 zeH8-O*!evC)O)aFA8G=9GZ{lBhg@(~^fN&n->C`10%LuX*nME*4?Y;CV$PzK-One+ z8`Ww3ehk(Vs&Uc9wPTz#+dzOnTIYWsRsiO1e(I)i;h#=EMPTAKieb}@TkH4~e{R1m zI!t~hT)c|YSSgx)Z{}TWTpFF{;~&fYb?j;t7TtX4f7%DG*N*x3ED}*q&;vON1{AmVCqxlLjBI@y*O=YSIrua$o`NFvnyp?(!X!Q5Z(cod?R4fb=Ep2Epimg zwymarn)A^#s z(8br)@Pxi1_Bs(9KVUMN$0bL;TE2JXmo)}IgNG{_`D9S8=r+;0UGn`+ zOr+PcZ!u3>p7m-Q<=0kE|6nZ7>#g5KOXfvxT}Mx>q#C92Pw1wUp+G9+1KF>)~8WruP`|MH-t_It@l)Zb)(o<}tf2#Q4MF~lLtN*+ zb^R~D*6&4uVm8`|7C9_-TLD;ft`S_E#c6o+`T8k2v=b7LY-?8uXb*lm* z5^3BBQcLj*9o{FcnsGDU!3pA@d~EP*jiJk%q9QtZPdho`Cx*jVoXcJO)XJX}14y5S z`Jgy!15Q-ls==T`I9Blq{|gJ%yZTsI-x-KliZTE=@qA)zD6dp)-YoY5=j;Q~fH~z( zj(cT-!n_I*zm0i`rsi3(V(ULuJoa4^NX6sjt} zs;efP{Cw^&75fNF3eoi09#r4#%coBkJgn@`smFSQKxARN*pUyKnv}H7j!`y zD*4T5P#5CBL7v#cFQMN~?4b$MntZe&N)TFFHwHA`G%3&K@NYlX_^;_qg&| zAy$KT@f;G!6@wB_r)t`9G4!(iLRTd<{7{j~n4nAMm+_wXOZ6 z?P`_M0Vx|V_(7-U%Nj$C)MZpmlFu}+ea?fpA>Z+!&Ujm3)ZYyjnCuSfifls5#w^TS6|-@L2{((^0Rkb3Y-lRAgS<14CX%sAIElnXqR%i05jr| zWz50d8t*B`i=Ah25>o)qKdlQho6&p}f)^b&{|af!hECr2GveMytf^v9ugJztIa0^1 z#Zan|p5}GqrW*fzo@JSzkMIBKL6A`xXpOl4sPhImer|>~#J@AP2i*)&-JJ3^bVq&I zmS0DOqMzd;%wz$vCJT8PIW5@l!K51%#wG*Ah=&bh=zYX?$NL`a2TYlVG>`Lmrz5(% z5Ob;@htEsSI{0-&?7q%4f^_74x#k5Tui3UJ6g{7?nzQ&&(P{i4EZhB7cx*PjzE*`7 zbhh{>eB|>r2v6vE!9@d)>LH5vRL7s=-^V%jNosGgyI1lY!E{Ej(C3~;~p4|yPI<{?WL8A+)y{Z z;*9R8T>f{B93+loTdt{C_vB0B-;3Ys1AUP1Rmi>XF-@TZ+YeZ2O)my^rY??=&0`R=~kMx}$zE2}Q9Icd2Owd~@b#AA8Dzc)S38IXzdC&f`fx11|3mNks${LP_@ zuSxt5eOT2+cjs+-k`Uy1gcpOoV@_&>fV@P%^6A>h)0oM6(dU|2lVjU*yu^tAj^j|~ zNe%DUO5PMR;eu~AV){9C-{il+*k|VR=}PNZcUGdrzpKp=|M;B~NLumVuh+v~(Xip) z^w-X4H6fff36?VQ)G+vxdnK7Fu+8L7mkb2RPL|CzHhuD1wEUNEi@X898Xjj@d^qW{6PbM{--ts$ zlbVY$PBw~~4=5(6cEV4;n311$tfT`M2KB~P4dAVVptz_`D=`P4`l_G_bwnq04Di?S zUjfZye*i%cZ@nB5wkZ(9#tU*$aqQTdw3?(~k-KDGog0T~oWf=6_=g>?X~^heb2$)7 zSSOV@JrQNu(rG-SzbK#bHaT6h!E4LTP*j!%o$A9AcbGpBD~pd>6u0#ii5upan$PJ& zo7$J}7;kzp??eD+BvF1J<;(4HO@lDahn|~xS~x(r?}7GsnWK$Rh}lMFHnCoP zH~u&;SjSkTOKh}p4Shu}-qKH^}JLETR_BhMBkp19ht`HcSqld|YY*E06X4=Dr= z0@}fV%|mU*1=+;D+B?O@8ldBY0Dl&_LaZ5dYaEJCN7bW9-yylH8;m!dHpCoGtj5G| zt~+T^Oe#z7G?9o+%pFUu?A72hy(1`}ialcgEV7l@V~nqZ?fOp}eqKKrVMepJ(yL9g z{9aBh!2$y&&xN_n5o}-n%?>|4a&Cmb7JET?i&$je^5HbN4nEM6;$nmDdLQGwXC5nW zGi2nsC;=wC>V6VRVu8FWez2c6pC>EsFi06GeXQdn#IMi9MjPfenErw9P~hSPVHsl6 zfe0WjqSurTOzGb80i*mH@sE5Y#XQ@92AOPSkpuSNhlTHheFHz?N4#!KKgd7F-Fq`c z5<>4_)AbI=^Gr1U@xH1570=T&SJt7?zV!TCPi|oT-*d6o{V>PZ^!+T+fz!KsBwS3Q=UjA6m6zI&rQ#}GthOyE32EL;AThWsW^@UP$U z`086hI(X-b^5gfS2$RL1hve12#exm0_rle3hN<87Iuq$M2AkISy5hQjtiA;gVukNs zH^byEM$E*-PtUK1ixUp1=yLrkVH&5rH;Qqs?Prq1hGzywV>@3^nD|b_=gc4 zH;oe-3z$$fC;j$MC*bC&YNC|6bDsjo&G`@ix<1T$bDuLGu5O&8}wbW_e! zeh{U1KI-ellDG2KJm;V}+D0>OmS=vB+#*LCy+9-^Ix5f(mc97s~bU-gvG(xi9^kQ=N16^qsW|ZrN z_wti44O$cYRQaVD*^l&hxr;p9hp|POA|_#~%raR_N*>G1O3b`M1V24e{>?l{0Mj^rRVg21 z=K=pBpRpZYLLg^I-r_?`LHzra5NKOOqYvuBE`By$bh%T;N!_BhbQ5EcoV-MB5)n%% z0G*W1Uz1JSJBtAPJqFuBcN)>SvY`@e+EH*ukJS@>q6?1G&wOxL*L_7P`cJKfNZUS1 zDlrY@HsVEJS>X%JOXo#@02#}^0}aW^9Kz|hYoH)jv6?)PZjGd6Q*C~fiwjb)PjwJ0 zeEGy7SVs)46w(Vhyl7HGxS1BZh$}bS5;ooGg!YMlzTqaP&`t6dZ&&lbJpAMQ1c06_ z(Mf6>2ePF(dZ*paM&KqHdzG9OgXH}*E)B|cq8|wOU<@^+U_#8sK7wZYehA^TF!{g{ z9h-~bg$f(ODZf8|?r!YMVdPt`$ni($A^jAV<$34sr?kv>Coa2=-)Fz9s;| zGZ99P3FT{x{=h5I58LSpDAR$l>xXe^49Jj+58O8$dtDoQ%(<`qYExB%0mCTeqd-`!=aj%-ZpTZf?vbyh$R`M&tD!e%-;XX$Nuy`axCv zl?&0d<7S=bW!OIT^qzzMirngR|L3;3u**}_^>sth?rfY}aOV_amh6)grS=WwpP!~# zP%$>6o$=83ICq5_$N3=r5*ajn+fi=soa~iv++xRO@(-MX%r&0tH4gip@AP6X43GCk zgL5~p+mx=|vB+5>0L}v7p!vvso`Rd70x+dtMjj`k`{WtL#QP%l4c- zunx0WyR)4WFK%oA;A5?Ekh)gPIgLmD-A%Z0`6IA*%!%h4niu&reZ}-1|E{(+lhUO$ zh$nW?&Um|gAZRp>wn4bE47@W`E{zPogg#`_`31E*3_J2fzKl* zQoi`e{~iA(@^P%+`4ynh|3l{j)9m()BaJhQd#pcU006AiF<=3+rVLWps6g3GfJg9+ zd3iS}nlKi(ygW4*c@bD<1t5*h=3p^v%{tx@R4 zUCpP_JLq9^%8l}e_)>6Tn1z56N)hu+=)vVHx=Dl@usu+E{u|@lv@K_+=!z9F@M>(dl+^T z&^GJ3D9We(#jNi0dS9Rhb=gp`W~mnJ*8;DLc!j6LW4&*o>n(7M59p8XU(l3E_H0!~ z#?#x{fsvKqAtdn_#zPE(%uinPk)QYtUn}zkrw~j=*ZD3=8@HC}b*q78&Ck!TA=QXJ z_)LsJQ-j0t1gPWRS(IfyC-+VrGBVWmN(N6vi5V?u_l-esHBlcxTRyyP)Yy?b3bL(a z@RY+7AxnLY@!o9__wZxHf6*r2M<{aqKkxp^$#vApX{7bR#$R*y#; z=5&nQ@{JbA6*2f!K12fypcG3!Mr7Zy&LepdkPvh|n6~w>?=W!~hk=F8g-8wG)k31sxMiVLNYvr>8 zki2oFNF829|A(4(PLS%Rj_l(?)BBa&fhLWWoGK=30fiPkOl|8$(`#H!JM4>gwtpBi zM7~~2aTQ*U_S@0Ah;6c|`V*}Bh<`~?971#r3qhD$GsHT@xPwlzSvOxuY^QK{3>@f7 zY@!{{IcJe9?8l|NuwxFKdg8R|#TsAYU(n4OUMMT$6v#tGM ze2TrN$ou>Eo4+2FJhpmoI;Qyv>R4|dFl#lID1h1v-MoK7;oW&_Ul;wj^2hOy_IBGId0au8{cWwH^xRe8sfHoTg5V0^6w{@72g#v z*6VRT7aPq9Q&mqd)iO^=8~px3Ol)?uUf^t5wAQ0BT!%&5XOZ{LuUNa~H@w1R{Vr?p z_u73May(w8wv66%ax#fcTrbQIa-y8}U#VMSJ}Uo5wxgIC`9uz`A($We93$UE0amR$ z5Uq|Kub8SeE1+Ev9tLnA=b+3+1pStZ6H9&HBsg$s!Jk4fZjrjIK5-4jfMG$oq3QHo zu=y;0a_4=C<$`U##lH#ql><2O5GJ;BvRC6#?C~G>NGC3FZTX~H{nl26;f#Nl-%76> zL$dkVpin-5b#Sy5)5r#J9PmmnzaI-nE_LhDMX&$YhPhjRg&24r_UQ4_Ki?dYPd@=C zv#-pTN%wf_iSeqi$ADL6I=`^OkfZ!5T%kVw@Vk6_RjyNn zxpt#pbZP={(^^=6Xt|FX!o^8dj^GGy_JUtI$lT@zjId=Ykh?&HhfJFA>NOTCaMaz& z_q}6jXh4aII=}*&niW-;nBIzu>@WKVMaq45?zVJ`*#msP%9O9nW6lt zfT0R*wkkP_FJhE@!z2l> zj@U>lx&Whc%BCeTFm&h*sN&-VpHo-TBq*S8@(u-%b;ki94s&MI6W+ORe{~*3O)=CFLmmRG-c03q()cBXUH4YPRKMRI4A9+LeT`P~Y58HqglVECJ z?QsR**uSdRB06h;x*FPke%_9tahu3jYl*L+t(qV(1k@Pbbhocc$i6**mA^@x4w)j` z*QTVi1%E#LCt0JfL0qTtxNG%p$Dk4XkaLD@@x8=8IWLbJzG;FjxB;XK{4gzMEO9V~ zjSnnMUp@IN^X8LaY~gPQzBMrX5G1aE7yD%8bTr0wvJm~BY(3?!^W=y0v9L4xeoPU% z3jm9VgIy0}%yU1)-)iE=u4~x%{`^O~R43cUw6lvWe)RQ3(vB40!RYhEJ)$D+4Bdys zh70&Gj(m@Q&i~Q4XeNHk3mc8j6bmJWcbh4qd5yt~sYMX6S}_>x(kXY}j8HcyAYU0R zxS_{ZNRDIT1M^EU;6p^gc(f5mIQVn$oYQwK;QlpHBBr1+X4!{M+0AK2y2n5J_t!D6AMq#a2=9f}x%t?(uiGi8 z?{KCAUAabu`>)>x!++htJZks6w#|0Kox^dhkJ z&2$qZ6@+;>Y&$oR-oN{9+$v14dJ2bB#4u!)=dNkDsBvX+IOr(=(;H8*79bdA6l1|- z^6S+Kt~R4Gmi}MQf@3CYi`F-+C zbd2Wz488oDMTqyFgDY)bC^zppiB!4n$Iw(TtvUFzq{hH&W%{CazNw^vssTs5dD@b*BKg@44W|3k%WjE=otT`Vttw>+X)bw z&g&>{IsRFB`1&x6C!4DonEQG_G=0XK?v$7N>0n~8;(cM27mfwr&0I1!T?r{Cd5LdM zYcKh`iDB*r2FhMs*HB-$sBbYpVwztf>hVad8$O(0AzDI`=+ARU$^{_!E|iE0EWac; zw}XV3s6{Lq-f^(;qku7u(zuz;;o4Ea#^Z&voK{Q~TM-&KXk7u?(aD9&(m_A^SL2=7 z^<6K~v1dHNtRg0we*kIYX4`P8x8Mw4zUmscHK6r5cH9CN!&gr8#j=nMR&?zCH^RGh zIWzg~#CzcrRi?U6V;G-f-dVY+Y;u)q54!_!*Hc`?8{%LjcYwDuuf!WCMPuC$z8i~a zQ_G1yVHB$*JHM?s&})35PvAsji!M4a)`h`->pSWY#4buMaT{L>w8 z9Q)$`t{&EJdDF{ngk{O-(Zg_{=vINVeVGX#3oRWXJ)$Lt3t}eO{5(0AA?Ep z^z*URgmNs|>PJww&eqPv!%}W8%|@6m);Q@IK1-Yg`wA_baa;Ej$7gw-wimrOZTOR( zq{gh|yXT#DUO$0#kHUAk4vgjkr6zPf=!6cdLy&9@PuecJX=6)cg0iHz(Zq--x2O7` z`a3hS$AkNyytMh)&$50n8S=rC*#S5|#{tf`**Wrf(l`k7Vho+!>}qedfW1sqA z8=uAv`&Y-5x5Dp^&CUKi$cS}$rT2(uo4#)*2pSx7F1128!W)uA^1uIJ_mR%>k0;|^ zz)zpKbB$x7{7Q8cw)4q>=bOB;&;qYv#34zp|TR0hoDk?E+>34!}8=YQ;S)hD zZ_F+13&tHgJfl%`bcqy>uNG|G}J$HUOBn zjJ3YGA&Cb!^38y@l7PZm0Lj@;&Qw_fW>+F|8mG4Y9FKx)+>d2Wt>Y6ICzSXLY2|1N;2 zYpzp#-rhS(DJ1W-gk)i%j8H`LF3?z zI+E%Z#6!U?0a0`s9dB;TYeeO;=ma>QI>M6UvH>IP{)&0j`smf0u(&>pzLO6x8Qihi zhLc+JlR!Z+W>G-J?RzZZ!9o@H2Eb(nJ^%pg@iBB=bK=|EEu36&*^ylH@J0HS>?n3P zfx~}d>ne+c1-sKrI_}atXjQ{UL&4|*sj*;c4frU+>Zwf%6Ku?&F_H`X#QD!?*Bw5x za#IyaIU42Sc)z}IeOuemPV|=s1c}(PLFe7z^_%7A?OyqMlVC_VU{^vRRJPJZ>1#z^ zkbh79gvYubQYe-78LpD1&oL!NkQ^dPpEQ=ieIW-sR(AHuEIzxQ@J0`-hzs4=uJI*a z7biF2BjaK9A-QYRbR5dlEaHv_rB51`kjASa@nw*}H^Riic~G6ow!sKcQE@b>jR14<2A*Y1CykZC6tY^M zj4W>5I&}D$eOcDcLyN~IqHn=+i27p(s5i$khhr!%Kw$4VIkORy*}nAdyZ{*WeR#XZ zhIExUhH&Nl-!yn`7Ih*6TFQm6V^Lh7#BEI!wQxWuF%`!~N*y})nh0r68H3ulP)e^p z?q)G(Ly`=~_@~^`Z^EPiz=)ja2|L%H7d=ATA%dqHDk#ciXv)78O9Kp95oVnuCRQxw zhE2)-^?oR_3!6U2{c}8Sf^)($t7Q80*WrVIxdw6+|9r_^wZF|dJ_kLpFxziNviiIaj!C*s3>0JMZ6;Ppx#B zUpGDL+!+2Hly^>bV-j3nl43PS;F|_Yt~^(Zu09p9#<}rZBwOu5_#t2KG~_dr8oFe)s;mV*{OeN;{H!^0(g1TbhvL<93wzvrgIl-nL0}fF9db5>dTZkm@ z?~mTMZMqGvPXnBz0dzg$pJk@xpdM~zH*7qZF+K!+rI??34e{V2cw$;k4o)|GupUIAKUPtHr0IsXa zFo9dsDYKLREWWX67#W)F=WVZ4p42pi2}yA2>IF@Uc3>j;yt$iJENs0=#}B=$jZ6LV zs0B-sTasR47YeAb!NkyGF%N3=~(qV8meOg>D;l#DGksh?5FYDOw6ywD@ z$laSnHo(}LaR5+Vz!r)VF6)mPW03|y#ple1&Z2)Gjb$y|oxv9OZcRVf`58BQxfkz( z5K=dCYN4=1H)|_JFn@EP=ALXKp3y;WlpHxAt#l@2OG+=@}vQ$;3DIEht94WOzr4{_>;h6C78rH&z2!tf8Krfq6&A7lg=8k}Q%$RVE12O>Y-!d>Ep#vAqJX|SZ?It7F%BEkrh zdJIe|>WLh-lbO-e`HO~I*U;pTvzDQJR{mBDC2of`A7;d}4|^8? zt(R8ndV0osyhv~4aUFZr(Nr3C+fPDtb*QPLF&`IPDAdg0IrGb10~zUrQ(mczo<233 z2tg!Va*4zw#lHq43)TYhze^>_jdQV=avR};aMa_tBv8BwKG9NB(Og}I+m!ku_KV^p z!!rmES$yut?*Y@mV2_~q59ON*UYEcaM@=ZrP78}Q?)%5yN@m)0Jv_tD3z-T!L=-1u zkfjr-rD`LF2MG4H*vBZLT+Pm(M_Z0v&a-tAG9Tix`QRY?(l>nKK!kjKwTy#7t?OWp z{~^y7@6&Hh{i%GwUGWm}GyS!aN7Igt2S0$i4PU1A^*#|{_;$ti*^RgUGH&*t;m_$} zT4b}(0W<&10%4-Qv5mi!4VVX?V4a2S z`DxILt&OQHgJ1sS#%mo)r1@}_&%WZ{t&7zVo`3y5`8Q;%`NksTzt#e&vySoysNXfc zt80W%(d+kI3QJ3{?3}-$5Xq!xzj|5)ugRxZS694nCwND@_0>SE%P9QtzKc<85sD=x z%SD3yj?4e_4pzVxX5EQ(SR&^MHo4P#$cV3Equ;{mwu30n+|%z&{FJ%t4W6`%>5Xr^ zru6oLaFzXI!KjaLXk(C|H81P5|Lf~Ol?_`(w-y7nQmMQ@Hk zm2OjSd1G*m8DP4Z4PCgOi_%yuM_%Wt)p5wHot*O->g4Z(g&sL&y3J!;fMn7hFL zXKpDBcQ_FYlZ*D{IY#F#ZGV{${>si46`x%K_LD}OS3?8ZDppQ4i@Agv@|eWGE&pO~ z?DX#%`;`~uChN{|rJKbk&!gc)Q9L?fHitXKu8SnZMf+~ZZ(~_I>ZyLcd-JTqXXbYA z8@r37ml0b*vtBK~zq*Zljhg4@mdHsT9sg~cpc=k1Eq!iER(6HM>%Q8|br{#=6Hu*$Py9cYF*|g;b3CG^%g?>t5inIY}vX z{~r1l)H*O{QM8+ZV$sEG?*ZlnPKkbBp0R=?0tp5HtJpz02*7L*2;OC{-h^=r z+rfk5-N+>?+UjCLdI-zA5<>Oq`3Qs*r2!qW!i_WsDE0<3pM!dbOpUj6u{L?U?KIqa z$Iz%G3Bbpr5$tbX4OW|=cq`q{_z$aO*RJP67tUN50lS6`+Nx@!_!rZ~J`Qo3m%L~Q z4jMCFWQy>sR>r>k-KoL{cgZ87hJhs{p3$=`GCbi!wGOiyz_S=(=wiH$5{*!s+VWk+ zuyMJ**Ib0;Z8`O5oOkL|3&(i@MK)@R&I?wH^oajRSzu$amsuCJruzxCc@R8OaS;cHveZ^ikOC2BVzJ`pJKRcjk*%ys;mX+0Uz zx%^)5f`Xq$g{JA{ihpa;WD}uYsi_J(Z(9IQA`OV&){}v~X)^6fdvZP{>^x?rTVe4Q44N3)8kc9DL&*riwBU?q-&M4YHv$9(xljKy=(t>srnZ2o4}H7NU#neqUs<$XXP7?U^_b7X>ZjP?cKC3c@q$-RMadQ*z$QVC5;Hjm zy6qsxHff#Vub6a>f2W+FcQ=2^SLCNMCRVz9EMAOLTN%UP-!XDS6Y-J%t?cxy0z6-N zRz7m&ApgmM?hexW>ec53UuBlRpU@%CH`}#dd9G*oExavy+}8Cyv0o(b&JoD@?ap$W z*8o{39e^)awe^KQ@~%k4zsm&6s^(_@=sGIW#eVPczE+fmC_ z=fl&TPcs?5p~e;K8B;{hJ-5f#o*ClbEPt>b^+LzKtOuCJ^nC~Mi>KB@5)j<%}V>pia z5vLQUoalG@UmY%tdw2Z9NZUGIJB<p?1+`yM z5u1I;NzK%##!Eai>RN#f=0KWuM$DsY%F1efGC36J#!ZjSh0xLisw`#Z<*iTYbUB zE#EHX7_I9DO|w}r^ z3bIE2WC*9ijy~7dRA)^B<5m3~s)iTdqg^`6r%li@e78rCtHkEsj&FPFLdH4)gt1J- zkeTE=2ajo+DyG?qN|sI>QrHLKMx5M#Nz0prPV#QyfB4)n*!D-U5^agnUA_s?U&e01 zNy%>;)0L}mt#P_E27ND0!J#J|9Uts@kpXxjO`ff7^oVAQE zA9sBSHMh!rz>SwjwtKS=?t1VG!EHKx17 z(V}gFp)I>Lt)Mm%|0RhX0>U`yAT#qMuRR*?YHC!hqo^~ZJMg?Gs{R#N#825dLfoBo z$h0~B#J{Kj+c0PHkp(oAd7cWhAcQH<%@)uT%NLC0 zZ7LPxM0r1cpt%MWol;_~fq7Hf!6)N^WI~sIHYTp^U*r@V3o?+Y``V8G6|#UNZ>(Ns z^x@Keka6lE4*nPv|0$mxY;6bH#t}4QWcaoJKqjJ}Qn#P6aA&{yx2ideK-QHKV#3E~ z>$ubUpYWyZX*D+tX$N0-^?@l2{DE;YeW*>|^T3LUcl=??ukp$k+~iI$r_V*dh!@WE zN5~bVhM<^g+4^RlulU~#f6$Y&OX>j9@Pz-ne-_Url)X>Q{{6fBe7^RqZ5pP9o99=T zS^06z8=gC*FCClb6?GbJd0mPt&jQ{x<9E@+k3p|8jc&KgCwQ=FguAtiCU8At$;cnM zR@lP%`NQwekiJUAH^n!F0UF%-n=nS6TQV9gzB`c_#jO0OHhvRh0do7dGt(x&cU!6^ z0c6~OezGOSucAZFlWw3|8^~$FU@Z<`2X7v6R`p}ZRcBTak3P;>C^n#G6&pm^_s;9c z8NCTW*ap4^k8Dv{(3}nvV{<0@Zu{P-3WZ!xU#vU#KxX6nW7$&BQ_t{7{0PahBUiC6Hgo zs~E?*`YN-;?DutUluv!G*oE6yI#6*sgA$+dF-}m&ZE+%|oZdP%(s?Eh zxnp_iC)mhFa@`~c2dw)R9AqC2fc3!{G|f6;$Ru@;b9dPg;DW;k|K6uGd_(QD62-U` zI+Amii#HX`hza96be;9X<3;*o`E#Zzp~3#qxe#PRbZBkQ8pl;-WPjtBBFwF^-AoJe zHDD0!Qt0SU9@gI8xKZIBM4NNxeo$;xfkBsM{KhH%Yh-F$?q6o+I)?ppJkRGQ7LHh zPn3h?Ty0$WcQ4xxpW0O{&XeT6jjz!ksn9At$ZZJOK1i1AUG_E_>xAz) zFmOT&9P)40IV)je#H*`R+PI=I!n$By%kO#-q3&qIn2?gg3GiQxHa$1`+Du{tx)T=N z6eMiK6(EZh8$Bl4aqO84;l}aWKGiw-W`~OWI=pNg8&FymQS5Y{jL_V=Z9*=<`jGjR z@TM^JvU{&cPgqcByVPf%8G*>hnYG z0*uk|u<=zNI}giE3+{vLc_ZfQh?x3lYK$#C9=$iyiAVaJ#suqRI`ja<8au}?XAA8! z+{X@aV&zI2i|ZQMeD-A_=jCWDXaDwL+lI+);P3ZyAXC2=h7Jan36m5SMD>or&U`B$V|QpUfc!GePB+{XY7obVKpE8jQiDVj5J7Q;*FF;JeKJi51sTEL5rUN{-h-jCrQ%F z1?EfjDSqgCe&CyLSZBxjp-kc(faNz zc;_IWo>&l&wP-Xw_TRVZO*dY6aYMATdlRJ?!PjR+jRkqx9*tpUyfB>-HPdgSyk1H? z0b*mF%%MWmufIZ<0jn_>k(SwHTcxpMDzRa0};v!># zG*+7$@bRE}V6DL6X{v00^Bih;&B66IK7mUX?VHgtkdmhVYy2;D(o;uH>$@zwY1r2X zuyuv02F}2Dy>&c7;MtgzuQ=1&U3-B54jNWcrN1soLJAggPEvA# zyUU36+72C=R8m6kb2hTWB9EQn;2-&RDVnBZz+g`DvGI8nE_SM|mnB>{&;AG~rd9le z@?y-Jo7_b(Jl7BJ+M{-oWiL9vScs_iDT_SCVeLpk_FqodKVmdfA8WxRoF~sN;3h>+ zy^O%{^@L6Vb2$?W?j}W+fOhjB1(WmmEdhO$G0t}*kznF7Yi=o7_0~4MZGnKvOp_r$|-eEv|KZWg;8fUEr!^f`@zL;v~Olc z9Q9I55$J1zo#pEove4Gd1*p@EG5ws1&>D}%9OH>3)r}X7S$N;x_Ghn+AtOIuxZ3gG zNhIjzqb?rcR&v(|h!+2lhb9F!bv^wkLpZEuOB*}*gl>X#6BYXHv(O*wfaD{wR{vPo zrb*N()=8$4BNMPi;Y>xFdxx;G&D_QIC8P3Nwck>r(T$SEKFc*6`$G_cKEi|A@{PP_zL1EzeHKC+X(toh9 z?2p8PQ(u8j@>5Cw9D;RC*sWm9KvG#>&zku$oozzLjY4iEM=nr)`|J!%w`?rITtVY<$g(3U9vtpb!5k4Ja9}i>kE4-LV@j}S|@?+ph{Gs8g zPFb%p{DFzHKg?IWS0BNqwB^4XPwu-vImcNXhCuha0MMI_yx5KNRsAfnKHNDmstU}JKB{qy%ek-{*&1wW53x){XBX@Wc)iV_8jKWg0P^KHXloY)#M@m$NN(71lq_>Z1!!&dME;syRaZC|`vZ=9iC zWgC_cnvuHG7LL3E`mLx^Eyq9emLH`)PT#*S)afQzCwP-OcW3-HaaBHQzDM!Tu`w~0 z1*D;rd)@Bfy%UR^S?EGwAP`_Agc*TI(Kqb!aSKnH z%}WAL7y~N@YhDOzkb>dzYE+>uMuSNvEj{l1v9G%km99cB!IX?8et9W1C6@wP**dzH z8To-RvbpeCg-dCGxpHNQLCegxf;vC-acwHgU`ugP z0Z*kL#7BdFDA>mwV~hv$2b-3-Bj1MZyD;{VXgC63g&2nMZM-r8pX6|ifi#6ad;CwC zjB75N#jBZQvy#y=0o_)M-gzzB35EZrp>!xjQ%|a&Al{k{^`#ZVyUzsa)7U2IaEQ*1 ze=~-U+A?JS6hAYIyydH&h|!sW49!I=7yLK6MI6G2XvopDJUTA5ozvgkY;=kFia~FD zWE_Aa^`b;HvQRP7NFDvq*`_lVZp44-AZB`?_la+5-wungiuC}G5#Vd{$LR1O1T}`+ zvNsoYwEEIeefHI=U2O5nx&Q?^<-||=BZ(uS&FO_95Kl*SVbb=lGzWh(r=RN4{O<`R zC$=AwcMigMyYRpYhJMW--XuB8WF1n1{8jJn>aK z$59WvD84re)wfU9%dS2u8`C(9AaU4ny8Ylr-tx4%C&W9ST9-59u5J7<)WG5GdYI(U z2s`)#Pt`RL&10c``!8o>WN@ZlUUhO&LR=0(B^ z@BrpN!;LN;<1*|3!_{@hL)TA>F7l_;NQjG|PGN&jGPd=N5l+0e-A{bWGUY$F{|`rD zFP($R9E?y>@E)H00UhHsfWAM)#+x&ua>Q{n$~8Z1u^iIyoDWZhH{`ITUB01h765r= zeUAKtEK&q|^HFjW57mxXic)$gr2lup zoP4PrzjbwaW3Ts9D4fY>2;j}-{nc~t__XOZZ&!LYp`=Dfh$Jply&Du4d4lH}Jp;K- z-PqL^D)x8T<>m~^@fXi$N+nL=?CY!Xir45GgYbW=xp2I{!{n`l>oTJ}So0FfVX_@V z{KfiFCB;*GwY2F9Ue%=(J67Ys#=HW^&KK>k7v+4KKf$E~jsD`JM2>cmTaUGUR} z4e4tV7l>7!|4;Esk?;k^W;X%};!EP+$p53E*EO8nm<-ieJ?XcoCwLk+@bd%j<`#a> zD?!YmY~i7qU&HV5uWRbjPZc_0s;RD>;$MFwiNzq_ed6yr#J?PfhupkwAxv=7obXaN z#k6M1bKdhuEJ^kaU_ElLKV>_ZJ`KmUM&)K7ED5e4{x6eFW5z4XHQht}KVN5gVG(=> z_+Zn~XA0>^vqvre7q^8u1bVVtC3g=rLII}RnR>0r= zMMY}KXamw1klBxMA46jc>!!SyMhnwu!1xXJuuF|=b_5zN-BZT2L!dL!N`l7nL3w_W z!UbJ|Ca^AJM;nJp6{dLwuJic4_?8;5byFT zD2+hV+EpVh26NqA*)?5UUm@O&b#azkaxxMy_lh13dl4P~!YKYBH@^?PxR9>tY#n@H zX&0=#&|RY9;N++mQt!5}i&Uj-Dr68%ia`_YdJNTaS5(>0GI!rF$&8wWG>cf*I2h`7(sAAKEHXHe+N8C_sF`WuB9ML=XG$ z<~RhgdabWe1AU*m@!}q336&Cz0q^=Qv5tJGopLc+hOW=-BcT52X}07hD5fr$hxq-rz(}z(vjO`G+K4=JQg%4}<8y7| z{@5cq@m?4?`TdqJX8+>%qgx6N%Wfp3t^!Y{$}+WI`=d%$o29<%#>}J!(Q{5jnQ?m0 z0nK2TecICKapEAamA;1%VLu;!VlQLJb4>RCx-6TI-A$7Y^mpL_@Vu0M{0`Hr|apa=LJKhQak7yYWmOVM=5!S*bj znd0q95GNklFq`d-0?mg1SdGPVmuZw>-uTy?M-E(km}wGq)q^?d0D7+1_r~dmHilW8s-^{nypH z4)u@s^R=#TH%(BjZsvQ=eA|&+o|q7^sctPc_9A1PiUxLxRi(9TMsdzhXXW_onp+3o z@Z->%;v#S6tpX`#GGnwT66@e6f6QfFL4>hpq1-;(^*Ubv+e#^#qwg>bYQ)a$PV#{n~Uq~ot$s<@-~87 zV}bY@;}hY-b6l=`#vZeHU+cS0{(&KC{sA4spTUBB2cXe##x;6f5?evUsGQt$Kqh20 zZ|DVV!WIV~=@*F=74`)!UbLcY6r>w=D$DWg9RD?EA)N;cdJ$HI%{9*zlcYy--&qd! za%{AJ1av|^kO3DUd=t;?yJ+)M{0GJ0ZHnwO{+;@}5XtwlvkmDh*4EtG`}b9zCjjqz zxcZ3kVJbVtfAQ({8@W=C10xf!m-%{Qvo~?u|2Q4iLP%41;!p~cr#{em_ND2VBim5nK)G^Y#wZw3dV7>>htHY}J88$^kc*=gc4j5^Bp zP+H!+FkpbET;MoZKb_eZj1wfj|MX*ydkO8rizgn*&U+{@G9V|f7OYK!uDHIP{5D_} zdW9z2Z13I*i6uew_^$Nf>jPbw=WOQknKUC?#iJjC0tjRzfyGAK^yEVTmkfMPW_;>1 zsT}Ca1;mRF^k$S@Z|^aiBQJEdTgXd&5Vyu%!85>QbnC1#c4U!oLX%L-Vp_~{1rR+# zlZ+8aKE`K;N=YhTm_=wTA%cW7>oE>ev!2v^R;Dv2HHR^eZB-CZKe;9TUFC=j4ipIK z7w%bfa#D~(of|s!{%VC7fl}?-jxBJ{NqBM`HjgMVBV8$3cH3=}u`5es9g>7(?IwwBSiCSzN!4`=t#H6NsqaXk!>5bf&ri$hW`boir7CMZYFqYJ#q4J!-m;#CbUyYw}mV? zRQ4|u&zPh*uX@UT{ivo%$V)9Nn?v>?FwRSW$+z!)@ev&`aCdd)8o{t z3rr&}3Y&cB*KNyP@uM)>ZfiFAcbVAq8v=zBZCvE~&bW&%sJV_<*J7*x4;>b{jc+;6 zSVQr|O$Bq-fHDCDo{7z~ol-D>>Ny{cGN62ahTf>7>_f!QK=^8ZIA2RP@skJpKRn<5 zsps~5A(7|>&L#x{{W%Lg{UNB0n@vbIPFsXY=;{=QE<76L{}5ktTof6npOIY7yebCO zCF6?EMTour|I#ZdMq=Q6yraa~&sO-(n{vz!lT!WcBOYS#DYBSxScwHnI8USXB+b{l3lsU zh>iRpa}V;+!N8nn4nkfdJexEZ{0#8{KlqjX9^2eece`RHl8#_lMX9usG>RPV+k+#hvWl4URsohQy-h)91=3G~QN$ zxn-0x*4MXbO(l4juU%ilJUQOI`-V&ail0_bab3O})s97ZH!h57mKj1be=>IQx#YKQ zvLI}!CxWbbshkZO5mdK^@LcaD_qW{dlU+047nZxQ%JE-l23`yMTs6eDgmAx9j5NPk1v%D##1C?SQ8SAE_pj31vpHs1ceQg0E-?vDuYRH?D)z0vu8Muw zbjIxJNHGG2m? zG5^OL?&aX!2)RpknIAa&3;c`lr8%}9-Qdir8&jPIIT*!1{3Y1e>9^9)y5R9#d3X-a zqgR`SYYQJ_QAeXr!cXnox2_oWQ!vzi#^>{S#6K)^66N_tnU~gescfZ_J_kF}Pv8+~ zg!PV5dM8pd-N_jugmr*Ni9yavPR~HHhSMipG|Wk}dA7;~L7gz=(<;EKZGxmI&s8_e ziJNW=?Np$eo5`Zi5`>GW3N{|j`OXb@4q{T%0n7+IF`g9`mv^?TPCE76VB`lz)?n`w zG8MOJhkIYo4clrC(IL>dIJ{Yal99f$rlNNn%eF}mes6$(H(_wo1d|DGoiG>=ePdF? zfEq-n_%Zl#z|_VIny_cvpCaW0cNj>Bv*vk->ii+!>(}3v6NRT3}G_{DK^D>X)|PiEu)9h2S=yjLr&?j&Iu@7fs%q1n2aKX9XTWuGNvamOR(S zL-vmgdLF*~5&t9ni#NCuh9oc9XmIh>t-4BT*b9@pW^9g|JqO(|pS5Of^gH5G(ms4Nw_akD99y7LIz~)+iFi6-H_8nQ@&@x?}==2q2svi!a4sbo+Vh zA%hz)esB|cl_So6xiyOv$v0TR^)3F8Ya!e8Et#v#*FyltxJEJtKI~!J z7@WMP4jd#;dUqmF(;1&5Nne;A^nihF!PZJvYg(i<1pykuUWN z0=Vn@x^zs&?E6-k+-u$N)juy*OUU`|v!H2&A*UPxex+{g8VDN!r8iR@uk}CQ;ULF5 zF`WO2jE}81F7Q{;p=}Reharc~x;UnI-3>rQE52aZ)y^L?VgcQN^5Yl_G zkJw8&UGg7%tyT7362J4-gQ-s1yiQ*$_*`t?@=-suyY-FQOSUWFD(h&*w;Zr_pMUqh zt{_%Q`GeuS=(f!SwqnFS+t?&r>L_0g;-M5ogA-FL9qAHDPf`B2xoqK(2b38tw@SDM;N8kzknVQO`y&vPQb{RDo@nQ(&lr#W4Rm7& z5bRi`3$NW}GXkQZ@wveC3e@L6tTzS)Y1g!5D`n5XnaH78FZtpQW5L~9huyFSCq0J* z6q77JdBzhToAel9T!0O`9L;{VaZ?(Q%Xp))^(h8*;*j;iF_AJAXlA2O$t=i6;e)WV zi!26OJ~iZK)4Q#uWgq5iJLph9DhDS`@&y{7g25n!lU#AMtW;vE%NaP!J~nyv{0Dv} z$y!7kn<1ImVGrY1r}wg&W#v~cL6f}GXCxWm7!j7SfFK079`3SQA+DK@f%9z|1{vm2y zKYU*~$T{9sT*NTWfHZV8n7vg+@GH57MYEj#%wCwC0*g)cPHl-rmGkZ7IG z+TRXpTYnCxRF~vVq89Q?WBYp*lbo|^6eFE7f#2tJxw~ktNGvndp!|>P2(#?|-@mY(d`|_wo-(_ItBj{~x=Qw79UOk41y`wM6 zPr>iLm{NuLJosD}A2f;Tf|YHp6Ys&>JU5u>n`H9+uzig&=ymP5g|}_RXpd&4Glr8j)i{-%$5bP%oNPOa#Th z&#~Jsg?*Uthi-nM{`2X_6RbavFPoU?()r`W@*r)oZ&zMNd%^`iws<(4k9>+E?NGX< z#l^WXA>k-_#;8A?W4`Kp@K5?tG76G8wkx@SJVs+zk`+dY*Y>mI|s^*Zzvje$fwdS55p}znj0;jZ!p*)c2_b_xkF53{o2u zh>@qwWyTwucP>cNjk7t{j)Lz(@l8I6aYO}C60`eq{*Ix0nR8gjw5I2-kakFz&pDUT~UhjflYn{Ye1l~AP{^H=0jF}Yw%(b6y zuv$GjARRSp6IUIjuALR;qxvFVqR&8=hVS@*xDy0WU~LNYd{}Q_)x4GzY<0{^x7(890pD`r1YGsevj#8;kGS! z2PPnrd)1cKc1>fPZ6f*8Sa=hxYeMZ)<|BTh^TJK~-7pV!OT1u=?3f9HBMuiYt5|eFE>{P@f1V;kwfuY2aN}W8`e0f?j7_MXLM2)bUW!p@e;X6 z5bNPm-o(fR8sNWy(ZFa~DZwscfIzv3=MC5I&AQS3xs^94OpuR`V3P&l=)^5;Ez&3s z9r`}`iI3MYMvfgTc}Gjv+%pHIcLK-S`K~>PmYYZS(z0vPiC*Mb0c%AUc5~|8Al27l zYwNS+A6yu>e4P|ZvhjI+51>_W@#a8OXWh6UYTJ0FpK#*QNJBwkLM9Pd8eUAC5PgLG?iGl29M%x#Fp2egpKwQn2o*B+)mAOi~@0Q7E87pyi3z?=ct zy!t(o_T2%SJsNQX2&=Mz-^7&_|DYu`4lR|9f}nXV5+++dTk*~MYZlrrZlbyAMs-p( zmimgVi#Gx|^Xfz=3kCGo1ZpO>MZ)AF4!lcp4Jrm0g{D3f4~l0eKXzpUXfUGM*h@jK zeZu8D5)39A2`6Sk)rnp2p@L*_Ql&}T<|?RJv%-QM zsr#OL;HDbsQ~&US7McI7eVeH8Anr1nToawt_;gWb_2~-mONKWi!?jvSs-XN|!Chl| zk-!AgDgI%>g^7PrLCSZgv0O!4up#yzC=BXA{=B9C!u|d@G$och_0?7yn;ic=!Lo|w zd52#{qU|`V@A>d;5y0f+&K^A3N5HJoXPGJ-@?ubvaFR$BDn!xokkoWYKe(L&qB zCfmV25hN(R-RRTV&A!f0f02VQ#+^8i?oY%v{cAnMy0!F^=r&VuH<3^IHsvMEoF`vq zI(Z;0X?4#Vihi&X9Ec`s$_(Y3yzDVq-Yu&2x0O!lL%rAd-y^koNj`?^8u+Mf97s_W zD75_Gk?_Ib_qby-xy>Bv#Dm*MknBy4?rM9?kzgOxK8`r`>x$Hkmz#zi z*?o@V5x&%WqjR8>*E#;;q$Z_Nuve3B(53j;@OSq!MO9)T`<*n3VZVMB6$C)s6Xo4#PQ*Z5PxgSYO0n<)fS5M>9H#mG(&&zch^DJr-ju1Im?O z1=PP;;W-9A2s`XTOMpsetCeN=;tAT&pP0Q!`h`KF0APuyls?L?%yzm@%eRozo20Nn>;LD65<|8ld z?^R0NR4;pLpnZ~Pkgjw?-cz@>jROGS+T6%2un2InV*VKaMq^t4P8G&13|s;&U)eXB z+a47Ecjs&1rRWfSFT%Z>{jB{O3Vq+-{5#yq{H^g{G%ivA&Y^w)hF#FrDHjm4690#G z$Yt_KfzTAJw_(R@lBIS=ZsR-%=xoi>sMTnl4}U6=Min$5l8lBfW>*kiB?;Sc_g^J6IE-QUe{(e29>$_QR!nDs(Z!<_QUnT3m;fqSN~oYYop3lj*5AApY~x6cwDrR^IlT4u10L21ux763}a?+ znw`qYv^xz1THI--m`oMi3^XQ6hSZkB6$(R_$PxUe^k|I}(r z;4KX~S$_{NGAW zk4e3=cwz~kd@g2gAdT~AO}E^(d3C{|9P^i76#pSSm+yg455Jo8otCHgCpaTMjNQ)t zEMm}*Y`61dBd8H##H|Zp#^9()WEAp`e4Y5AIbRo~dSVohfIudwaPCeeOk+ zt;j9Iqoy3b$?@-vTjY=1b-7H6U}5+&S6RoBX-k`MnZJcwSBekYb;~;M!xb>4{P34Ml6cW zh1`#!OKZtm>@*h3PJO2;IVW!N@es&0vrX7PaBL+bY%?<= z%86!3o8AAJX%>{Qpqdww&@0!wV?xUBqkTf0zOZ!4=LM6I`szgq4I=;2<+R5Vh-@ZiT!~qG#{EKC@itYbj}MtX%CvtF)(=G9Bvc4Cssw|lSHnj zg1?o%NEYH>>PI&F>A0ya)eQo@yfDCvT*SNA0(`WL!Gy+V#Jcks<+SB{kz=yT39)Z^*J9Q_JmY_a2%TH~p07Il>scA&dDca0!=fFYDtX4u-SIm*$4;LpNs~>28+x^N7E%<4q%`fjbOnvtJ z`zqdaF_&xB=zl%(H(S6fI^e0HtMSlVRc>aw9@qF&b9&T@K^u<1A>eSm@3tY<+_5Lp z4j2y`2G=uRF{>ILLY7EXzh+&Jn8w%d-5P-XTbATt!O2O-Say!|k)SZhb49c5z<93* zDch2FyOf>u+2S*d{Mc*&K&>NG9q*>?cs$^ulODWn4*h{Vk6QRwEV$WJUE{mvHqN@i4ors#=iEBf7ALG^iuyQJ>&pq z-U#QUPKU_b+%s|3dtI-f{qm|=a3dUY_*Dz8q^N+Cy4jfMNBe=@G4O9~eN6CVn$nj9)? zom(8iSg(PkljOx+jGNW*+z7)MVWz27XU7AJx2p(iJ(OcAx`qWy{V$~-5 znM|Wg4lX|ofxaNY`CEAy46Oj9^gRL3jp$dOHLfQ^5wnHy#s{I5$WTAd*qX>#a`Kmx zR>mTg#Q&I}GWfc)ZEY@g!Nh_YtglRFcXa$4#uA%$;uT#G;2O6?+`7@YCVUGj@a(n{ zLli@e4U0ZxYWHoq`rl}tIoF{r`Ga_~v%n_#5WFA;?`U5krKTu8F45-l)A5cF#V+74 z%wt`I{xZk{8RYE z-jSAnbdx{Wg@CH0Z5>D5os6FS`C5>|qGk*}!dm@S;=Q|9%Q=Z@&tiGb2!KV2=XidD z=9iOP-eFm>93e$=;TKPChZ;@8UkavToAgw*V^I4XyXFzDn>(!*7yY#Ou{lH`R$%zn z6Vq}2Y)$f~qgqqy8&~9pvHl|r!T1QPg5n*|3#goY@_q643&suaiQ79Ww}U25{a(If zuS-ciJXt>Lpu1F)v2e5H@fcZbPxK4MPv^nR#8?}=!3W@nW;F>Y1KELwk1+`PHvf-( z>`FbR;)zK<#$+rKS)~KpBQ|n9vHYHIH09VoJ5#d*J161Rd8u2aI~l7$sQu7|t{X3G zAhm5geE3FT=!bhv@&48EL!9s_Ka3lP4m0(4Uzau`AkUqd2Ol>j*^j3v~|YYAh5#L6>tOjn^?3$MveBGfzUEpaqd}RQ#78ejH4nv5GMEv;QG(zYA@KW0jX2 zhCf&03~RIbk>wE#KODZdVjc0-0XEevxKsLm>~Y`#C^22j`s?@Szn;bZN8kUsO^Q3{ z;WBeJ+Vk@0n>QzdL%M%2CDKOCX^43Ey_R>#>oQ&rSQDBY3pF6sAuqrAwidzNB`$mM zJ$i8tDlodsy=1n5P3we17{Za4-mkTwdHF?V@^Tq-rx5qj&AT3PjXUAlAzuB4<*H%E zmX&?niN7*`z9A>C`G3tNckv-N$QA|B}Vr*FNHj z7EcH94MwmQ_rZ(Fyyon9Xa4)!y!bIZF<l@n2XnWKSB6BUV_t-d>esYn{y?TC~7d z$3O7EsqU7N!Wy$7IBay&Jke>0Sp=7@CGTC;f$i*wQ#0{Vtp8sfvQsa;kjZ1OfBKwW zkMVV0UazvK8I*iVMnCkg=7X1YC-rh9mdezaIQPLTzs~F6Y4N@vJQ)xgjPhteGBd2; zE7b5GN`^39REED0fBMyHmv2ubaAN2MG5b8Y2I+he8y%d7ti1rf58&pan@Hs3jf*X* zSnK_H6SXF#J>)Y3lqqI(8D{m$Hq+}?XcBylFfjerktFyCk{kN^imgS&X#JTMrXvC% z!#c0{@V;lTMejR9%E4^Ls+r#Prhvf-uffx$x6!!d8O5WAK7G3E0J~ZyoDghyU$1)l z0;VHA8ZWRE2ZY2|p5@sQ)o$I~$0R1kU+bp4#LeU`fFNl(xm4^%Ii^GcVHk+N&AgvL zEE?(UeD@LS2@Z;4FP84STXwvZRox|C+OCXKVNwaSJe%w#AmV=+l_fSLKjyvSp9*;C zQ3B*hSI56`!8M_SeBOI>8QVrAo{P=)1T*$gT*;WfGP1orEd$rkz5R_hoOSFK^F0Br zfHm3}p9}unlK>K-;YQp|)l*wx%8ae#UstA+g70^XQF_u6lLi|1-a^KNZw8 z9_m85*_MM?qM;rhUw)4y7!SIJ$sZ-C80wgJ6PxgFei-S3?1V+c-Hg7+zuQN^#`%== zo3RiR{OI7dla?#K>@)a(ZoYY+q~RxKFm}~GjiHr3Q5t8AN)1Buk&xe!aW)s-H9qnz z&b^DE(>IKCwXXRuvNtyix-pCT)W*<#m!G?D4lD8BZ73gxm7aZo6YhHFIC04j|x9n;xs+i&~q<65w8zip>U4Hb9s0L3QU7d5@5V)!4aKgygbY6@4KB%K+s`y{D zs(wbzLv~`b!788i2*rGtn+i}(;Ktg z$oDOuwr}cM29nQO<4R+7_mez=@!sL@Zexf`BN)%M!1~>$d-!Dceg5#(e}2lHrQ0yc zY3VMt;Uuo*ZKG%%8!!_r6e*4WwaJV@$j7~PR_Bd$^vVrf%2>GB&h*Y(-dc0UMpZSd z^;1(KVa7IL>ZvE_n#ZiUGv$}w%oUY%EEnZaA=qbLI=RXE@_Gwa^P2jlib%ucNnW6@ z!_DTRI~JE)6|S_L>1#idXwk{e^;;7OYPCR}C{_!D^2M6!kZw+(mt)59C;ysXu{SxK z9USdM!^hWUXOOpk0Etf5yKU?L4jxNwWaTi-rvw+tREfjecNs8qM|2okU;5s9L)*KvfI+gLC(Ve_7&I-IX4BO%I1hNofLHia;x;qd zMXbAopdQIjiC1^n9)uXM^*-acLuxC1BV|#8{0(S0Q}}pa6FVP%H}p_(2;c9};l&@;i`hB+Rbits*Or|tn)A@m zX@53q=he81dc-ng;t}KNbjN?ifDij|UG1%%WG9ZXS#f;-V6;v5{mz}knHMFy59fdN zyMqrRh{GOraF}W>vSAhV-w#GxNji03w5*lOZti zF8pKsw8FdkjA7k%IOtly1rDRY<@B!(=^AhN;G_xXLFv8to%Pqv35I+PrXQ6UQF^@ck|RV|PCvV@^6~ME=D!!J0Eo zw46sJmYf^mbi7Z}{2iIw_^WneF!?mNiIuR5`3S{8ETs3>W~tqM)E75?*8qatw3v2F z;DbQ%-x%I971jmML3(k1F7ATYQq|@4wMegAl=DkA_bwUkj&}!<7$J~fofY7#LS}kn8!uAAC3yo13-?%*uNz_9dee+Cyc7{+1C9~+ zZQFB+=q1vcN7xqsm`6Hc1mYj-1-1Tg_me*L)D&c30LVNR_nj*8s$tt;w)qGtx$_gw z<>zH5d^Mbx-O6uDCBRQB+cefO)--52^HqG_W)nyT#sXFxa-@GPnI}f6NFjdTV>MJo zhaq&}E?AI3BIAVcc6Y!0Ed0*=>b}_K+JN&#eiR5Z_yL;o@*kc!fu6iy>FJSY^U||6 z;7yg6e^OoZL?2_sf7<(0J64TR->%nqR&;^alC#2i{tukdd4r3t>Khy0r@I*2IR39z z>UE9y_dWi3uZ-og#!A@d{TX4LFfTjshFFjeQVKI8T|gnoBTrlU{TrXY143)JZu|K= zBfQ+tZ6XPq-JCWT7TCm*PA!^w-#uSxgjSGc!I7LM#x-f1;18$6IdgtG!p6pgZ_Ydy zse55{dOe*Bea{;YOj9;|sNGtmA5l&Hc@iq)yYKv*?5UkH(E}=U@r~u^VU-wgJ4&{s z<^5z2$|2Yl<}DvF)lv1SWQfl;#vUFJ>I3|Wwpfsowj`IxH}vA8ICtVBHx(V{S^oum z8}I6)yFaJTmmCC$Ooxkjjz}k((J=?GtRh3k9uw@L z`_{Yek+_(}ibe5$!h#vzhRt2?_~(V3=8bvGqRDq(3337|fvW(5ZCJlZh)#v%Iu%w$ z$#8Y?Gt*6)uo0`pi&tE_*=E!7sjvVsK+eBHJktXJ1E5x%`OjBmNGAMl_=fPiWm*_jckbd8qW3`MF3q5k3sO zO(J9hMlGe_?sGO|{ni?Fvlz5(DD^BVk7=fPtY0(s3ZH_>>N%tMpO?L_3y(gA^%}B| zPu_7|8>mVfuWBN@VVDc8C2G_J@N8eizuMbukCw%%>gjE_O|q=xZR&+z-3}M^ZLuEY z|Cq0!<}@FRLriOzO9U)G@F~_Y-hYgL_MbT}_xmToU>iF{husV3xb->W{EOnpsB=@o zGmRH8Q|s7pw-%Yi_wvsNUp^9q;9m$-Nz)m3>Ho+DeSOLl+7}%-@zg5R+2#>O(i<~H z?3`@y)93woH5L^A259evjExE@iWdnHJHoSn_=P6U!hfj?GRCnm>chvm7C#=FBb)S} zeYsX!aZt=(}<5Dv_Vf7M%~kR+lgQH>_1MSJavWIQ+O0Ln_JQJEq4BYd z#SREWimHj2IfWQF)c+O#mHxuyH)S|C2v%6?H##;q)~?c*cZU(@-FNvM;>H9!di?P_ zJI22Qly-%hVqg`;h|~Fs|HMBE+4s2bq4&shU^4Z9IMmG&CsD(;S|WIkPw{^dRv8aP z_7wQ_7Wdg)q$d;w(=zUyYeR1wW8A5=%IL4Tt6IWJbdsgTU}ZUD+T~;mulYaz7GIuE zM!Wd)_D*UEwa0n_t`t&j-|N^2;%`}qA?LLoOWHPQ_5d)mBOpX~p+TVWb@N8+w6nP^~9k6da%A`#d5zt>(3;RLimpw z`y_Upm2qx2$M$a;vgmB1o!fq{Pw4BohNOxl#`?jP%~t3h%1itpdKEGJ`NWU$T?0KX zFMd<=25IYs&?ulIprXy3u%Z7-wjX?*SUn1x{3aN1z_d>7+z&u?iWj4W?DLRcvF0cq zz}I`zQ?%vhSOY&hqTK4qxK5HTKBTENgU6l1EF^x2$@+dwZ1iLfb@fFff9yoE#33Kx z_$L`^+`@3LX06Un`X>{YT;^g^)}`Aw4zLf8?SdrH<&#LY-CnFt71 zu9I`z^>%81T{TE zI#q2!zxqX=JL&E?zMtDooIZ6XzWy-O7wHmlTCUr%z4E;OMDcWuM{r3-9&-_h?5`0$p2GR=!I-H@9N$2|A-Zk4H|#L z%(U-qo2}GtIhL4e;O=Hex7;Nwkv1r0`t0xd_9&j8jA+L=&{4W>ZZb*>uB}&8D}U#m zoiCls4m!0K(oG45nQS0Dr!Uv1%N==>Vl90}Hfi{4$mAGyicsF*6v<<2-PMZp0g%(1 z1~6jiQ#HQEt2^prU&naIac>u=+DYbk?!rEvpy69C%SWE}`SnJU@2<5uQMxLd7{zkX zI8k!mxtRI>S9TtY&INOH(`>JYH1M(>-+p)VlW}$OT7L4b=e?0#A~(m3h?`=M_u_K9 zJJ0ITRX41?{_XV#PF=3UB-v0mBgR}$@E|(I2iAqw)wo&bvC5-iTh2fLRG@nQ5iV6M8O49aT4{KlCz6=&TIoIM@_f5g z(D?uwsT;UnLieFoA=^_BfQHwTGhzX;;agk$=Meww{>V|3ka$i9KIhl41siJ_tmEH_ zc7Uc8rnX}Gm0f(>pb^nr;@JqINhm8vXQv3ZHb!%$eSBX8(j|aX9<7aFetAKvjka=Y zRGT9YHe`r>d@RgzkjufkrNkk8M)SH2?YiiA96M>O$%j>_5DP)wHozEUxAT;O?7w{s zS?m4d7N<$>=y%l3;oNaznd9){{#SnnYA#N6VvoP1bBF4?zHRE72jo5apYTwZDZH?^nU96-T3f1jZ`@JnPC8cN!-SPCrktv*q{9w z_SU}rX7iO)@QmfAoo?s*CMs`8vYv!zeDI-5i+Yr0^2G6Pr})R1TM&{+NoOx8Pk!m$ z-cVp3JU19?`QIq|{5eRWHD+i82I*sHKzbt?qF9;nAA=*OjEsf4mc2(|r>p#iA zDx3Pz7dpmTqJHnC3uoH4<6My5itoUtkQ3MEB-N9))=T3u^G9~G=BLJYZIg+I^p@kL zk_sb@^%}bmk}j;3F48pbNz0$_DR%*dUUbLOfLDMx+sK7z%fn{M6OuNEdim}z#-J4w zY-uGcQVsv2q-auL_z!#--EnBVK-n$S4sAbO(9NE%)K8orFNNZ&S?h?Q5EAnQNHIWZ zl#;gvyAq-nSY)F_aLFjnbTT&QQmp!*g5BtR31FyGeN)G2!y`_g+?BYG#K*myy$wx( zNnc0G0IUx1d&r4j{w_-4^KoD^JNsbU_&N_lnyVl(`_^9e8NR?6xaI%D`JL|gIBWUI z)MSu-f@#6=Vvp@3CY&y?j~x7JPFy$UC>~?vf4;sQ-%j=8F|qH*wqgI`h{G%Sj|2NP ztKk|r>iR$W+%|@(e}hJmnf^$h+%&#O&HfSE9Tsi^#GL2wJ~aNPrjZ3#{-?Oe1jY5g zZFBgu)%*v)8x7xu6aVTv_4(4-X*#Ym?iU^pobQC9=kq=0ZNc%y7+-%@`i+@uX6*Zx zh_`&$IN(Yn?Z)**Fh&d<@Z&&qk+FraBF1H{Q$yold~OW2Ghy9v#$@veKa+5&`U9A? z)8{8hpVQAK%~if{>8=!u@BzGMJ*I!J8{jk6uZwDXH{@?wwR<)V{&SN)bHfIUf~cv| z-#4{foZniWr57`)FDXWQp&4?f9x`tP^0;N6%V{AOdOaD-%g6gi=-D5f!Yg%BtPlNK zm@b-o`;c2NoR-MsP{b=c803GyTFyu&BObEj`y=5&b976&ft|^3Lz>&E&ccl(rPKHI zP6$x?!aMN?I=~Epfk5k!b8d~reL7@LTHPTRMs|=@z=_HWbfXbrU<01@Ay4v5l%d(b z*pQAOPU~^NmT1cv9P7+m97#*s+csLANkzpA`(?pM*=zlIJxw73n{E&+U(j=xIr-l@ z=k(M`Ebw|`%r*QG44k7#R*ehr6V(qUjPkPrh>B&_Pbo+6Ae~*Xi9q$mTg19kFN%Nq zRxHf9;fkfJ{K~=FNTFEPt$|?xi+-9$V%8|#dCx2FyV$R}TE#!*9VxmvZeqlU)mIYU z$-B2;iDZ!Xwdm?fz|ooXd|DuT-(yX8 zyQZKg3o+89gH8CHvf}!j;rjSPTQc(;%h^tL;N|0x>$Qp3LBfl&llFYC3s!V41DSpO z=ErO+9fkCZxgz(1M~JK_RZl#Qg|+(qp7`m@(Oq?U+$1t%ZxcCGpJc0#V=lT+-o?l9 zYo!N$zwQzFO@70_0w6K?alt!In7%zpwAu7<_@GtAzL|W*8ppqGBk-c<79h<*-;J&=W`f2<1C|ZE zXz0pK0_7^5A!1Op51oX~_%Ez>8=TSIwyu3~-R2}AFV8uZQqLaI?Ra7?a!Q zhh#4l+9h|?;@AQa6Ex^+sjn)Ez3tcH`xV4J3)AsciANGe zKCFF4awgrC$vHLRKx7c+LcYlDcS)*9zKdoy#yboc+<|q$3o4d2=*-NuX?a2n8BPjo z0O-&BO0gm#Gbf;CT8BEn+8~Db_iaE&zy2Wob+bwxcF&W(pXX5G_&@a9PkY};ibaDw zFB5RKwV%9V$S3}Gkew#Lxw3HNFoxgHny>HFLrzKs;6vqEaM9MyRZ{R39MO!{qwRPn)BdpgFYGucjQ6*(3u(a5j`Yp5bh?8*ys-y z<6k%f{4Dlx!ga+~qMhgCbe>~7Vvmnnr0IBTBOvd4C0*zI!3!?(y2oH?Hb#4XUl^>U zT~`*Z3jjBPN$C8pLr-er%>|bA_`Mo7>^WzfOlrm^;GRIkFj|f(-Rh#Z6~7w>9xy`HuUqVBfy}E(;zz}YH#R5#!0Q660FN%B^*r55E?P~n(q(Qczpv37 zOZ=N#2wE)*o4>Y!XHpp4a*okzGaQGo z(A$@qQZAl57G@?rn=7>OHCoVPqGrcMULU&Qgy0DNzC2lxv9j&`rUX?|CF?O(2+0Pw zZ9=gf3=(D>w-gt}+t#K?M17T)*|-z$!~>5hqC|hc=@|;XkDx(fH}BNhdt4u1YZ16t zqTAxDu=o(!h+jYO>a`B(S-Vlvv7NRlJMZiBa}0PAV;XeZBp`5-VjJi3!)Zfi2x&h3 zWVFSu<;m`#@4~0M_$Sl7^!H#Guy)p5d|wjzO+HDp%%sg61MxDY@|_ob{>y7u%f~;_P_7dFwrBWh{Y9+i4+gs70>0q8S?p9@lQG| zCySA9Th{vhxSn|Yp0wLl#gL(Zi>aSRr)@z3()*hDaR2805RWLzJFtw*VpYtBum=U2 zFi{fHsS($~4SZgAj!L=qHYGo8s2uTcUF^>sBTP6^{vrO^cdBn#-5FaGV~Ta1>xI$| zqGPN~=E2kts=IF%EOL~g*W4+zRya&xkM9Q?E-~Kk zikqiArat9cz)Rb~TD9@LPZY*mEr5vJX+NKn_3a>RNJeWyXa^qvU)FdAEabe5IB(pG z;m`agY}dn~@zmS!J65Mj4RyHgQ@$`+Z1E4-t;Yt+;TmSQLv(MO7Ryoc+7q&M4iVuV&8+LjhF(5#bZKGq?$+sn2 zAx+gVL@_{jnb2jO9Hy$IBq1XTz9Nvoapq8biKI{a!vS- z81I)H%a(*c@D2W*g~TIBTTdX2#nyU?h2-^;fn~;f`sHtY^;0MIqSv8x+i8Be8sA4- zH!RE>7jIJ)N7*2y6grNc5mm#u_;=f;LK^Jfy))DbTNDjSmSGwL?RFR0RbyDR?(50B?MVpO;Qb?ixV8R~amk$< zAfmCLg163{^Cl%-bL*rAUNUM5ge#Cq zCy`GN_yU?JhS@s?4~^aV=HAxd;bdyE?TCjKK{SZ^EA6GwEexb4H0>Lg%%~4Stb?q#ywLZ*@R~Er%^m`42(GKsU z$36R`u^7gY5g+j{aS_~B{Wd6Jw(p1aQo4UAqG=>gO>YM*V`!CJk@3%MC!c7x*wal; zDS*%t_WmLMUwz8=nD$dkf<^g;7g$YT72sw)*+u+oTI>Glyoe7Mt{6{vl)2R1SmWdo z6Td|c^7V=T@A<$}WNp(`d&Nc*a^TwE*DpI_8c%Rtw6kmw(e;Sgw$=jC{3H(=<%CFp z&rdkmg;!0WHk}M_pU&@ep%@NRkd0>CxbTDJ`3}qWsfl4GL&Y}ycw@(o)=Y9#J z6LZ_LD#t7^SI1~lj&Ybg$MnVnj|4tvlc1secx^kj)9FUP4J+2>#jBVBF_h1Ls8>w}%=@v$f7ZI0{OzWPlbAW?c+j$b#z z9OurVcAPA7E@DI8rg)8hcU0bR(n)ZCwlf><6#s9Z1AenSr3VwA^l79*{ z>tWUBiHA{pOZ&?BWtC1TcHexO}V%|kjx|!#pc4^!^?XFxno*T}H zX^gwq|5mp1-;0mNi+V|;__}ZIU`Bb?HBk|1;27M@37*^-6OJ;Nwh119Ak~d<(XDXv zou%+ssSSI<@P+5mZ942xXFl!dcYNacU5%^cBcX9w&j}2i5G>faTR-`^^X&mU%o9!- zPnZ5XhS~;P*TOH}+peQGV&E$`Fvr+tSL$P6R}^HCO|0-Le+H#P?)CFq(}f&J*He%4T@-YvlZMG)|MuFUj zfi9Zndl+rl7>+w>Si7U;98l&$w_J10{` zY|;|p?WE=fR#;dLii?P2d#nzht_@CQ@gf61ND=ss#`5dge_#V>*7(q0`rr#vaDTH# z!%tR8XFdk?b2|_}(vvlEKey$${H@EGq>=h1f01rp4bnIS?(5u@De9<@S=WPt}@fi!HKOV7nuj!HSb!;xzngSD#LkyA~Fj=m#2?q*SeXD=!13PZ$u*FXb z#rSFyl8tQat-Ec`;I5bpg_UeHZt!NjRK>(V#>@M)%TbFC!PljqjqHzcHGh}x4i=L| z$3b1@s@{t`@>?G6)99uP2T6cqElz%bQBCZJI0_Czo<0mUSDpd=TjR3YJg*ns`ON7! z)b~>SYFl>!AM?-}yW)SEj%^|s^zhku?aaf7sfGDI67o38t=t&bjtx&iZv6zr%72k( z!A}gAS&cEw^?cn~jD@h7TTuG6C9H9~H>2Z#N;3-|7~ ztWfdsymnKrH0ab>`o@Yud3}qFXR6EpV$9v&*W9eK$i?b$ow-ffYXj4I!=ZF?N7Wv@ zTD2e{7wY|>1FVgqBfduNQE}?VIbL^YQoiAfm5;BElQ^JUkkOdNYxmpe`vhq@p>ap& zYzO5TCdTXaj_A53PEU%GKF04GvB1!4)3??UzYd-v240#K{&)UwJT4tYdtlq~w1GwM zErf&e;~?xZNroo1qmvy8qgbCc|D!or2u(A5UEkWQSZ(oDh1AkuQ}oNPQLrj0NQYsF ze`D=-UtsQkq8IK@1r0s@vo?Of19^s%$2#=h@0n->;Tm$(ORh1+DgVC*Ki$GPGHlRE zys-XUW&N`uc;AhWtV-D66#qs~heXg<8Y2Gr$r=X$=6Q^fFd;=;+e(89p zxZtm|+;qcwb?Xh-)LYpiZCd%)b5k$(HR6DY4;!A}5OQ6Z6vw-D)Am5%TE#{$UU>VT zF&_9Rw9KU7Y!*s3IiM`kZ5#p5NEs$r90R=TQ5@&dO&rh7D$ybdG1kq6UmY6@@bC<( ztV8{~&ruMwOxEC!1c2W=30^xQJ4DjcMY#?vbpR)s0d`&i#jr}T)9uW-$PSTZ$N`Yl zHBwr@avg4wTve3Bg9YiyNdzr8azm}~%1zZf761*|A!z(6Yz8j+ILAD1r-;AVm~`Q- zUL^#*1;%AEL4SWZNY54oMcT+rvgv6PuvxZEqya3RU=VQp|H0Y6D7s*ukOv_S3Du`0-D@{GKh?xE~;PG~Ki~ zmYCJCHokE87#oj&vXR8rZTUrg6_41nTZ%M<82`>Yn+f)rt}yK~;ubW^l#eUsCe*j)@s+Z({&6j5^oXBW{c^J+@ zHP)DlZ~FSb&tE>=ukf!y@go!MDtZ9xpWP|(c0z& zIL?IGb!f!^fF9ccz?jniYNT2JkZdo7g^bZ3V4ITS)pP-~jT}o^BSPnzAmLbH@Z-U7 zo2cUCCS;4zRR;#Lm?jx)2H#&9ar&eAh%BPT&}#Z(_L~1JMd_l<&)048KIP`yc|7w+ z4yB!1S4VgG>x~}eCob%lllUo~+r$W^&^Z8PGKh1xfm&d@@+~?#uCEJ#>BU#JSY7|n zA7pm?8_}44e(|Y@UT`@kk`ios-pFK6TR6JdT;BgELxu6|3qQYKW+g6u4Kbu`{5W?~ z{nMcwzIw)gTGKpZQT-;KK^f9Ar{~}8NcyqoO|Ct;lArb~w?@f-_r z!@!H)*#)tVzjELc*=D$8_{4qkG{@9&tYv*K>Um;LLUmzV$6ODOYv5*4V7B?eln#Jn z^ZPvZ_GyG1a7K`=AMx)9JZQsDZmuwOmG{q@Y(oZRv6|i9e5dS9)FZyQDKS>k7sF@! zxbWEg;xG9gAtCO$IoWBeIMk{)wqhwd;ePh9X=7f&NBHd%N`KJIAQ=1o@J8-Q|x*O{Y zpW}ojYdv|mx5~jwFfJ+cu60V<-!_~`vo>1GX1x|;q%HA3>9jfTxWU3Jo1Z;Vo+*#+IcbU_(nk3~!<|{)^$)hKb|j80^{Vns$UFwpPP$kDU1tZTBUxN=DNO7lgI15+Of&VTB2?Q8aR$1a=wlJ2 zTn_Vh9cWHGiRmH1mR;LdKZd2>C0101`FXtR>aUk}fqZdVE{~S~?F*o)?{b_YtYhbe zA$>QvFHZgdG9=ZKV>mIf>HRFyrnrpwcpffYCkuJuiQJW{-7>@;psk< zBc^lf6Z%_zA7{>%8mGd2F_{Ol+iCwD8|$}%p1l#by)pgbcG_|KL%H&dA6lhCWRf0; zH4XdWo7qZ;QaiJLk-IwN9k>DdnZgKck|{YRh_~iT68{+2{4(HT-(wGL_-?+BJLTRc zd}vabe&>1=SU-GLyneGEAmf4I;$#Y?tdXEe@QIV$yv zTe(O5XhE)<2PsOXkl6={;R^;^C>-B%N+7Ga{erD@@v-3DwRVCw%>jKa<#N2;HvKBe z4ICvu2fw&j&%BAbfRxpFL`S1M0sStH7%!0Z)s?seWKRY29%DOGrCR0~8Q>cY^OgWJ zvs!nUVDZ2vl;VtYbD?OX1adkdKl+i#VF0hSK3$up zVfgNX$(QpC|7@0AFXS^$Y_x!k^J7GVq6cRWa85~tHvHIK)W^#6*xUp-7-v%f8)Hy8 zngWlEm3O|d$oj`g&*)?Q_pKzl5#kf-pl>6_8_%V%-R)+wd!ZgSkUKSYgCp@A>`t3l zKDihyy$wNa0sJouw>`CggcY!wyJ`1SFujr0lCgbE7snYJzhs&*lIJ=2|3AJg*{;st z4bJIjx?!iCKmKTp)ILWspgdM%!#d=j+3pWK-{jVFbHmAW4}3`fJtXyy8$LBKDm&R@ z4FCOQ1L)+5p48e)$Ic!2d5`}imwx_$UGr6g#`l_oRRM79DZ=;s_fELK{`xBnq_u!X zqMiEq9(qo%UMk%+#QRMFsFZJJXL0QC^>;H#WUi?3Qd~R-yYoQf(*2hS1q#${alEnhc z`Ee#1&VdG}3gQ-f3e?eYkRo7(^A;oiQ{?)kZ<(9z#$mCb06*iDGT;vQV(R=kV8#(I z$Gpti|8(k$EJM57Hl?)kW|weZ=fqlk!1BN1S0AV5O6M&)W7JKoF|J?=WU=#ni65w3 z^3>@`>aZcZCHt&SlHb06@_P$5R*d7eP}JD6CSTQQGqSPdOmK0$Y}o$>H+TG14c0t{ zbH^O)^SzViUwD#eW{(bsL_<@E*q9-uryNYCmpG;zM!illNH9jsoNg zt;M?iCyt4-=B-e56rYB(eBjw^m4&{+f3@D3&xo~4Nhk+EPq$ibcO4x#&66%1{UnnA zt-D&TGv&bag?HR+o_Q>;QMBT^{OkMvY3yki!sY^ESY=GZNo-!C=lgvR^}=_%Bxg$lDE@)_YI})ac&-(6vTEuJW9)8+_aEP2;!gCqt)4hKYNAfkz)& zz5N+U&Eg;NE|?i*@xOjoD%^i3z`@>DYp&m@fo&Xfvjur_yLGlt6Z4zDAfCA2)_Uo7{D9b4-25xwq<*of_)sdsa}#QlO|u<+>(gN)v2*$~h8-%3ERR#!9& zTuQLN#X(yJZ_A9frEPOeKE6lvH${5UFjy$z{G!{XjV3)L09{jxD08r5_c&U%Id*Iy zL!@fHwMEmY4hHe59065PaYKh!CIUbNe8P6bnV05*Usz@PYtap2(ARis(94b!7H$!H z^Bv((Z7%pxVMqND8Dy}WY*px5Ic-!!F&S}3RJ3Wkpve5vdiHIhZPy6*&oX)N8L|lZ z2wC(ue~Sv;QO9S)7x6Vb(yo=C0%&L)5jAD3Dp5>X63L5x>-hMI50jI}3_@HJ(srtP zs>~;4;i9zN_uNxQ0jkOlOay|yyax^i72{XH~g-@=MjBzky9r zP5WB1iG07>6cI{K)?Htqx#Q~5AEsP~hHv+0`;qz|@dsQv_$_H)(+`olH;&6h%4keJ zkMY+IhGH%zY%`Zxw=veVho&6RazOT)#&vxNX`5mg7(COW`Mlmi|rNBf5so z{?5rKb4?H4ZAGz4e-A>rb^~H}sOo%UYJ}-(TSI>;f7NKb#=04oEU$s(pu%N%-VQQw z_-j~>-fd75WZNF?deJtd7P#<87BgDZAI@Hmr^=`Ll*w!(<(;NFgxNUneb{cF$74(c zFBI#K_}_TWfik*wpAG@L-;Ph0tRZ%vi97opENSiad>96^kMK{4v;QJ~d1jn>@mC3& zI(D7s^eg-@j?kPRb_c{a7I#W~L5Nhj9{%7Ln$yc{j3IydQk?Csu3DGI_V&jZ(_`&Y z{|!&j3yYUfP{t+~DFVpYb+_dtNqql^5yiNPcQgJ&Yy)1R=Q%Z{HnydoFBnBhUZQOA zTUA>wEHFfrbxBK1f{#M97s4ikasD<|4F1PlSTP|ofBIeLS&3Aml|IfmA0yA(pN>;| z=4M!3#FMl!r2j{b8@9*A;U#Y=K1!#W<3w;RpyoIe`>59m#6daK2jS|El#@5CSqkWpT>IYSGnNxRlFJifdQ>yC|9C(R104+}eyWkJrfQ zPkEZ&ewO&D0sK~u2Eeda+l6Z4T@%YalViUN)sg*MMx+PkTA{sx((xZQmgD1_0l$y* zF`X6{ksBhnHu3nMtzpHz8Mn+L7c!d;nbe$@-}2BDwEDdbbGEyTX)SaCWbK?v65 za6HA1H2tj$f@DD+$0|*Q)AK)jBY}&$TedvfDuIzdw$Lxnk8Gq?wXc+3d=Zj%+ON*I zO!~dMEbahG;mzr+h3CE_DUElTweJKD8^+94=zPNmso`7BXr4-ZhkQlga^2_okGNpb z77{*mV*MP3f9-T7c|ex4yPJOB{Ik}4dVyfMb-qZN!-u?JZ z>-X-ceMiqVXMSID=hQohZfeHzKR)J>N?bG^#{b2aZ@wqsl>E1KM~v7Q-y0q7*W9d& z#^Mwook`!0~E*jr)K6H(8!|RSz ztFB!~C#5+Gqb}HTKmMy(H6PgL8hD!)CLe2nY5<5ne+1{-bT6uZ|JL(ZmSVAy6Rlvp zN3XM^AeR(_@t~Ims}&Fr^hw&pkm{R`h&PR+!gU|x#>WP+7366-v>5mmS_zEBrGD&E z1|1r@0W(Qmx1sHsei4>*F%CBKh;7?=WyT98u_(E7Xtgh}j)6NgMGxRP!t`>)_RHNv zd-7nmEUhDUAn_Dk%R-JW|3lKI*BM51+CY#a2+Met*fP6?_%3_^#*a4O4l?7;s+IoO zpdznLi)ph;#_u?O1}!dQN-@KDhz4mE>YPE0vB7Y4L9Q~WKKa|06<(0-Kk5?BSAA#9 z2B;v4PZmm1mxX!R7@H1NlpS_Y$sHcy?XfFzon)4NEE!|OKbWoa^J21Rz^R%{f9zVO zE-;s~fH=6YiSdf%nJ#FOKot_fR^uF(<1Bo6|9dP|Y$h}t-xxb(OtMi2zH}Wj#4o^D>^vp>Zb6Wj;hI6)?SCPY$+g-k)Od`D zPgctV>UmKq&R~(?8rsk^hshWTavd(m;l@YhuJym;--&Gc*FaZL&$N`4@?8u2l(zGg zF|NeBwHvZ0+NH<8vS_(||6x+p!%6J;VB?_EQdg%Q5&t#fI;n(v{O4>Jj!zk9Udv`x zN~-t)y=<%cIh;odglqg8kzzo<@{V?Y%1wW|@wEx$KQwS*a=(j$E#?`A;l9%I4ENU_ zKQHmmGyXSN)><|HNuG(le`==;guBPROC4R&j~Ho%TMBUM2oeKA9l5wS9j&SgL&!^A zznxfynB!~H0b&%SaTT>@>rvt#>seQ@YxB;G4LmCzC_F3lgHncevI=Yj_|w+q8V;xlnRM?aC_Css`ThY0$seb68KhzuRyN1f$* z-0jnMBcT3hD9w(~%|k_;ZEE%XeA3`ETC{yGL-RT61}N{<*I#qK6l+oa=>=Ys6~aw!JPI44?c2=cQY3 zc!CA%aK^vggSgvo`|a;R@49r0hR5qcG&YoZwO557LasK#Eny%~S|U2|e>xfuT+xnKg_ z8UWzigu6$4j2X0gv;O-C%x!~rb6V?xNAG~zew}@BV~PDEbloUOZ@J>La*R3^0Wfs4 zM0Ulp6%Iux%E`L1fM79DP;5q&I8n(Yrx!>wI|?!F0Pw-Vda*=+;sXhiDzU}$O0S=T zg0da=E+MZbhENdOa(&NNgU?pg%L^BOiYj~;ZnGmOZ1Ib)WH6y05>o3iLMkREtGS`k zNvvNU7}*$5lHSG9dht^LqA|lGNh*Z}mL)h>;5o5)2~bfW&g`ptn_T-OzN-r^zkTfS zX13T-Wop|}arPy6NMA!jV;0~3@Q(9!H-+A!E{Q|n&p|WjpCz4JUYzfQp$NFTdxkC1 z0ezhSDg8yz+udn8T&5S6ZEpbE)4;oJO}{ANE4wp+hy{Vt+eHiFe>-wIi5??c$FDs% z8fso$^v5QO>P_RHgKZ16t1&ON{7GCp=miWvNFDk5b-2MM{~R!Kpp}TicFPIluel{(j9@ z)iqYmF=Es$(}joo*{jM`BmUSqFZn0zidZ>5|6xGJgHQB&l9j{)+Cni)4N#(|8H04- zpbwi;rj01qkKhlfCsPN(*zRDQr$FAE4wy|hn%}J%VpZOBnfft*o^$q9-iQNyWBWPI zhwEe4>1+p?U=CZLGyJ){bnJ;=af+a^aCUFr%|{~s?DucO!B(8EgERRDTJ3)+gvm?{ z$7={2Blp6N;8-?2E?9;5bvS1B=Q?dZ`q}59c#p@FVw%rC7dCj&nWDKygfQ+CzYgm1yeFi~fWrT4+O>Bm8z)9j{bB#c)KfycXy zVGq$Qh|YLnH)28im2NoHZga#xa=#m|<3#mPLq_?UG6p8O>6L)+7rPF*#Q%Z67;e-W z#N!l1mo+Hw{J#GB&$>h5J-Xv2uvYiT{1gg%X@88$D;jwh5^|7Q5zJh9q#IF)D?G(KF!guUVRRlOP9>z0e>4>q!>-(5RZ%bQkk?*&|q%S;K4 z5s0b~)Au_lbIck`9=R>8yq>5S6XAc?AE_?afb_j{- z4B9H>ae22|z~g`Se}v!f=e@D4^A*Vb`81B9o+27m+a2*ADR(qx^gDBp$R={*u0-|g z<*P~lJ7itQj6KO8-00jL*Bwv&dox;xIrawipfAX)bwlJC@UYXn74*uuFK31=5{uci zrxze~#BPfF?SHr8)TY8d(wKu><}}Hr$iQSo3g;yUR2f*PAYBAXHvcGk*@>L(L92nx z3ZH#Rc2Cr$h=;bS+OXfx**Y!v%f-juwBh1w(Em#7CVtMO9(uC2l_o&T!mr*{qH^)2*SOHUmLy1*t??UT;8;nUNBtE*sD4$9jiR6DWx&lV z0^$NQ0pA8wIyv2D66`6G)kXHD>kXWpE*SsZ5U|mcI3B!vuJ^7dy zVZ66#WoV5A9<{LsdM`j1-GVAfoUdv>2{o!xrEGa?3;kqYnV^fA`{edX3#cP&)u5Lt zO(QG;G8r|~A$z2aOX^592SGcLSH(-!g2YILVZ-Y~r4gkz&a9OFhhLitgpJ((-TWY~ zZ30?iYvEIh@iUAxKGIuwp*hC-am+U7LgGV)FHdIW9V4#aZ4l?Lq6EB^Mz_;Vm_A)b z2X7CeLaX|8x(v>J?%(;D(JgE@-+Aaf+n_oI9%mr}nXVBJ)qIo-ce--LRDi!T&Z>V0 zZy)b4&Cuf3{iW$pF;gy{_px)(@GY2(HbvTTjMJM@5u89zesVHmOtnt?$nhCAxl*d5 z<<_Yr-0;&%(-QO69q{8+VctkNZ{-_)Y_|M#s07F2$zbU$xTp${}m`EC)L+~8`@;?5p zTWXy5g}dL^zbh;SV9_pkg}=(#PRYmK3YIZ{-6`1Og6;)9y?_wWRFOb_fa!6 z^Wp9Ew?r_O{B}t_Wf+VM#`PIJr;mEe?8mH4{Fpe-*u=Rlk<97IT5Dq9PUER=FnWad z*fOQrL$7gHh(6}-OWrutSMS88BmRad-@;n*AmC! zVypaSk8Te07~+dtCssXV>>XBjB>Dqr^I z4oE}aHo=a@Du4hd-C`Fg15l%GS_-HkG$aHVC@MwvF6buI@4FM6USp&5c=d(Q0cX}h zq8IL}6Geu`dX)u`@qlC+3dEq{$)LY#G1mdnUK#D=3StGULRjdgTt$jszrPC+ofLZ` zA=6|PWmGu*h~f8P_yl$XP2I;c>4x;?A&5UGHwwYfOgJel8kx)tiz%9&{IRk2`BW@XlJ6U|J^_uA-*? zm{&$8ODY#0Bs=aYTEwAB3w=U>0CEjGDeSh|!@)j0zVKEib1~K;+NOsq*NBa+nyEuV z+cvavq>kpfXpXoT8HRrj3w&~c=-BdqlY$S3AaOCg7co)qW z=+Jr%!r#|?RFS#XRQfQb@@v=>Vx#m1XA4dH+kOqP2+P{ zEYW2kCTog*WuHoqAvVn5KV;T6!&W7JN3{&W5A527?lssfr=|eo1t>~n0bTOtc&p)3 z^ZT?lQpRLZV%J>f;wy)27o6Ndcu`pTc_WzCB!$#^b1Y#J#pLByzX1QxUf-usXQ*9k zZO$9acLbl6N%ia01_@)0PVR4Ns#%*{Wr!QUd7d+q!59BPE_-2qJC-vSar#OP-Kf9k zPi8|4hF?CYVLjtv<{W!J#{0v$-B0cCr>0FX|J=l4qW%k}da+9DnV$Hk0dNY9nl?Ci z+5fns9l@813;Clzx~I(ZrtK`aFMbL8=jdB9jLnyWIymFsFWm95epoWcxjdVv^1A)m z7as32-*Gd-3a$w}mzexxDW~=xs_g6?$aW_3~p4JN&;}hhcOWo`X z(LD#-@xJx-vMLiS%!R(k@{=>9n}^yQs?S;etlkuAQTsy$W{~UXC;8hFz0TCce7Siu}8bvjBNiJu*{+8Glary2JPD|(gm`(1w~wTQ9l zdV5XriMb|cSl`YRu=?5zZH(Z&wOUMIWX71YNUR{fA?I563ev-nGye04|784gj`!Y` z^s#aIs4)vD;q7oirFoRK~DXZEdvLGB_n!a z9w6IotgsE}VrAo;u^sI@1V0Vw5+9OP+y2yJ;t|UdcEO3zHYj|68!4q;vSr~Ix|x>- zx-YG4iG4A(7}BNjpETavMmKK^|F&SnlMtWS{Kwv>qTV|ELsS`Fvov3z%;9qAED)18 zpM+iK6?&2k7^0&dY!_-78mgW)W+FJlUtrvHGUGocUHRNajJD~hSnl$e4jS{7XD_p= zok)(!SabFEhm4{A9}>}2WiKDspkc*{9Mcf0p)K7Ep)TRSz?ziB7q(NLEFhcT#@Ea^ z%F;DJ+*;q$!V&^Bss3japF7&&PQl@zXme-P+}uPx~7^ltE_(0%&p68jJh-W^Q9P6a!d!Z@>Tq> z299eV8cqk%BrzCE&>OgsdM+Zao07K|vCoh3+&E>fl5uf{jGw(SPZeKsz~KYCA!U@~ zjz0+{7;cn-f2cb-BUk%p>%nk)4@*!iYwsk|kJG#)((kja@}YPhCF94)g#%|5cXR`| zE~FEDNE^i`{G}2}4+=|w0H+)>YTF;L8oZi}5t)Ao*xO6{U;F+Oy^?=t>wk!|Yo8eL zGeGxOuZzv$H_Qjf!JPz!j2xq_MzC8P?!gpxCfm1ToX4bvpNR^2;CILQQV=I|y0FDA zlJ9LX@duXb>*^2S{b+poZsW!M1%2132z8tk#Y{q$gc?kkB02xhuppJft=ArUm>A_s zU43D`mcQj_O1r5%M@~>#L-4Rfz8rFI!UtW%v&c1zR`L|mK7U|r+(VFz_Q$X~OFON> z-hco8=UVs^@frgJiT0GJllgA^NLu2xX{rTMLQk`Si=jr`P`w z(s;Cxu2nU^t5MHkHvKAd`4x|~=QrR-a*6ynJ0Eiv8@n?kzGJwUtnYy7PwRR)&iBJZ zSxd&n=F`MJ`h*OnFRL$ZV8_@fhG|!CqQg+vD$7+VSkU$D_VFyMb5in)dNF*6n;e^& zwO}oGPQ;PvqSr~KO_8~&kRUb?gCcIVJpG#atNVW+zx60Shs3`)^n6?#*KZI9(04kE zIdQle>uudIg1@=Vjf|Ad3ds*iAxg%Cz9jxLY`y^X04G*FJptiU_?x_QGgVoZct7w# z+sV90ySyxZ#GiQlx?peR@gR91iDq3=-0$#wrqS(K`e;NccEWzgRvgmfcYdw&x>?Z)sshnSJ~DNGVi8KsMSTH}6Il90Uzs{6%vB zmjD#SHb;csO8QCQQ-I=CmuiPFPBzn`V~7y0PV&a22Hw!mf~{Kbcvqe=X0=RQybN3= z5n<1O6wqbj6k05dDxzdHvBcTa{Iaa*c)vf(v09X^-x44LD-4)w45D6I-_KK{*of#P zG-Ir21txUF%?8NoHEvOVnX$O^dJXijK?%CMeY03pVu}w{h(86!ful`5N8IASLndFH zH>Qi+p)|tyDmh@u2!6LuU|cI?67j#~`nK4Z#@t77TCwk4a=A89U;z1zltz+j{9Jnb z9Q=x{YRy-+%uKE!Nz{w5gbqt5za2xnXK2{0XQrNuZWaCW9Z_*$=zNv(O2_KE`x+xHKF&ps%yGq4EL)~tFAx!9dTuIFejVO-Tx^@z zqX61PgFa83Qu)F$7st1@Vv2;0jL(x_#!ZIF&d=p?)TEFe*Tk6JIFJ0F8zbFcXFCQ| zx_>yWIBlXj$cWw)6M^YZGC6zWe=+g@{^~nuEd7gZQuz?x)!!O4oH0yPltiI@l11}} z_n15nJB)nxxjJ<~7P3zPFLLl7qboRPa*<=DUt;F}D|qnF7vW0yYB%mloa@kQ3gPu1 zerVm|db(0JUZgd&p_vc6V}H*OLei)8pOlOFDLMuVZIBn4i>DlJuW4>Om+68_JLdjD z$@BD}ci40|Sl+%%+YHA+j;Vo$H#mQs_MXfUCID)eKn!m;n_+m>e45-Nj$!x4k_wE4u+!IVFNj+9o7afGlB=1@) z-ST(TpW|O5^m=rJspPRbMELUfIap6wX?GW3Y=JVpZTAltm{;&Q3nXI9lh8QJ_e-LBi$x*-j z$dxB1YTJ%|;Jf9BjWHccy#AzDe)C-a=F6(N zK9>JGXJF3r{j`6ZgY%~)AAZ}sYmn?8qmH|KW+>w!I2?`zs*KuK#2X#SPjur=y~_2b z{x^o_9R#nSPq$Mi)G>Cgm~th`ggdR7S=YSek!xbRq~0yFm?|574ce!dURblJ0%7wV zpQ}r4S8st27yQz}ST%$b{yq_yPb4;XMgO{9g!wR_)HZi3JU5wX zQes6m48mp1PwN94s^ndNy9PR?YgSBb|Kyk%5}&!ww^jCtZldQ^mOs+-$R#%mI)vf= z=2_PnQg9~JBGvf1Y|-^E@alc(rjh!~ezYd=KR+MpETx^VldRnH!Gd&HVh%+Nf)Lv2 zw47kdZM!WGjQs7t7s}lcLllaD#5m>H^EOG3M<@+W8sH6jkWHE_*J69)asxpTSk`h}Us`V~h&)EWQ^3dfYJN50Y9PEU90_*o0)a#O=puc! zQ^RpmWmTh$NisY<0Mr8h8j&=C_s`+1i-!{4QrJURkw>s%2>pLEraW)`%7MknIZsP?Sf;0uvbr-*Tq~mq*Zwg z$mems)n4Y4sT>rW}d)0V%Tf|fi2)CW z>H$OZnKILUhy41I{6PL7W-Z^9xWf2V$Jp$vd}*;OV{#0s1K?Zkqb|GUEN>QEV55Ty zsARVa)CAHm26m{uh$Wc^l&jI-j~~hX)-aCmVutgq)<9b^0zKrlK^HpOa!&+MAIZsw z=Jz1Yci6(!)!yewx!^zjszRk_yh|U~RAVaHonzeSUtg*VJ*J8;J4CnHgGn~@Hqn@F z{io~QShM5l`CZsjUAX!W#EDaY3=62E*lQm#cNYAZ3(#}Kd7uv9{V!ho%D;udQ#GZ*@hf5y|F!{6yg9Qk_c;vDlAvAU1Yj&LE$Bn-D{`(=CAELX{}TV| zm)lHK-Rk=;aK*o#g+=csiTb01IC-`OV>uq`(*e1+E|42`P0ZiDdD_qD`p{2GySTCw z7PApQ@N19Hi^s|u8csi$tJG9vk7;$3%(bZ#;TGdPCB6$)eW>r6wOPqs0+(vV7mHPf z2(00x!Dh8jSup{@7H!VyLe`e5`*IPw_M$h>ZCt4uI{irer~H+ur}eAxH>O|#&g?aF zZm11PkGif>WT(y+J>X<+{|mA2A|W=2KG#z)t#1YILgJWM@@cph8k7F}x90&Ry2r-D zjUTKNa8~!og(KhK!b13t&Dyfj$49{FdS8bD15se5b!qujW9r@2$gq3?`^Xrt%-C2` zb{_TFqKql|n9;L!cKnW1z^6Z~6AatNi*8)P-*>ntc$bUMR|QKS_+PdwVuQPt*-X6+ zKB12h;CgNiAC8bs&g^kh>6T$ZHW*m^cag{$dY^}FMsBZ6lmGqn`D_t#W8aR7j3Z{@ zd(hi^_YL{t{!3{-M@{uHi>eYnF-MUR!j!Ui)l%D*DyAcz!$Vlls6xEatiR8oG7xqj zm_DIN6@k*HVDwI27ac2Q3Cv(3WdIm>Rv37%h2~x;!#Jux{?fZLny1X~*D*O_%q(T~ z!d)2^Du_<97LR#_z%x+EJ}+4wxym8i=uzQ7=Z~B#-o9Egc5RmDg!N{NC`qme(vJW* z!R?q$-;z(WMcE_!${lWugb%ZDxs!j1JWIVE{~I_PzOXy-ef4AS>WKan zyxKTaB4;<;8%z>kAtBMnD|GXS8#S^LU*Y=1RY|=e5PK0`u!ee;@C&^H-QymL_xR5v z4Un~z{JZr#7EB8`!Jh#7Vpen<8B}MchG@e_j`%MjU$px!6br|;AJlu*U8)8<8n%5( zA*b=KbpjdMhokkzw1)U!KxjU?rPqjK(?Q12m=vlKXPx3)=5Z*;v6pSR z3Kl-}#toUuHHkw^)0}!SN(6F_=MIqp`r10v&6*-Jv13=avc`*Q5N8_a?Oka@#?jb) zFy!-elq*Lejv6Ne?X;4*OrK*=CwZ~spM2RASKg5rYvYv>vMx6FxDB$8!?xBekMYqH zUy%oH6JPDjg{Rr-{N1tE9S}Y7;~qvaB0ic^qeSeDoLw=2`U5$J{{`L32|APOOKbnShyc~;t95(%Y zJ{Hq~+Tzi>qdrz=v6lbq(~qOu^3qaYzxq#^DdY;Ou!U~uJyOE5PKDr6U6>;U5MZOg zh-n?d7M|IvdMHfB(uZ90f4OU?(6f!1Zk(-;uVa2NLJwU%55$7{p3d1AV8@T^!RlDg zlrXR84GUmq*nAjr>ba&bdQsi-?wWFTw!GidAO5&JjzaDa^;0(-YO%v?uzEx*Z`i6T zZuy(~+%ofVZy&5-R=2gh5z(8!yKiyTruCO%1I4^5&;MfUc=~fcZN6<)qMtq{x$dLe zeGg+mOdYl3ikl)5{~CEMG#T7TTc-WY%l(*SQ(gW>Z| zp)}nD?H2Ga#6RBFit|@BX z?JKMy$oJr9>#r>Sce@n7+_(*l*BIBw5o?|xefTWGYqRqCAm<7H8k*nn@R&c%ohyG3 z*lRDW=iiKcwzI9br&@B4>9!_D($y72JD2Dqu0<`RnFY=|RQ**Pajw}tF^tkq&^k^5 zmejGaTH11k2BT2bDtE>nzDdr|#h~t!CtUy^SuoMviyA>O`+GzkiylmzNJ&Bxbi3e+(1}cm z-}Rt>Af=yzGf0bYqbBZO}TtRqN} zU6>AkfuCgNtw2(FlB=6T?@0C<`|bK+euwdvv#d>(&%O(32S!Hm^7JfK-_~_R%!Qvy z&-LVMF~QGkv*iO8+hU2kt%^2aQJUg@Ob3ze-;D&X9Q)a|WLx9kd=oU~%0Iz3q?}PY z^sAn-7*KgbAa?tE8m8(;!K>1uQ+SIschUG~h;9XBdHlcZY)t(sA{D|@{I*(#q+BI3 zH9m4oosIKYZ~D+JX}2=m>^|Yj&F-`Ksr`G3t?)O#V$sZW8%=UJ(PcxGV%6(2JEJen zwjFvg3`FU3^}UM*y1c#MR~8yt_^H4%{%Mag!M6DcV<>K0&-@nZcN^iNQDjAPCgC+k zBJ%VT?FJ+L_c`$qC$y!^bMj2!DiQKRg(}OA_hxx76h^h2pt6mSGG3krFe6%E{j%+2 zNksHKq~Ce;I^^!5z->88@@UsBF^beutfK~X0cdmBW9GC)+|^#gcHw?}%~>TEv|P^F zpA9}~wY|FOUR>9<#5yN+=Pgb-Q)pbea4}l{T(Lp_h2y}NTiMRQp&tpf8xt|Sq<%IV zedsM;+oAgL3ymGWjnIq4XvXap{zzZ7}nw9iF@I=fu5=BQ_5EO?F_13f3c#`md+!4X<@!r*PR53(yg^wv!9PE9DN3@7sSK zo3G&Udv9N)qK~Y#>>u#fjZL@x*8jjo)Gj!8V0Xzg-KzDH{hT6VL7NyjS4V8olMi)3uYop}?r7aSNSwW)_{7YO>&}`L zQ!pCw7V<%F8`pq)>Q}&YkGtwSmo&zI#D6I+@puvP7_)mU&YrTddyQ32AK+o}znQGo z-Bz?SF!NC?e>>y9{fayY4wl7mk}@CtoxE{r=g7v0zp?KTH0ni%nyD!^zn=faxZc;^+0OU*IlTE!`9(q0h_Tf(lG(KC`;N9$okWE%RtbNBpzC-B5PsKI74#xh)b2~$sa}JJ2zTXf!@DG2{^@J2 zo_EtSbsUumx+rlC1opNe5G-cV1W@#eUSbnY<1J$8fnZZTWIu44c3>xoEA~xo8@$_z zfV^F4Erw>M?tlw0lhn2ci(AIOT$v(O1bieJ_p5>Zx~1wFaV|0VhLPQwry!k%voBxo z=Cs?%C(iq>fRcUMZ7;OLW#bjK<19XC(;!45If?PfWnk-;)*#Lf4Nru)zdg4P9$w}3_TSfK1SC{;)WK?XlU_VB{$lp%Z@%ODgtriVeWn? zq_=yLUQTUk&XE(hO$@Im?yvmQ_ssDl^`h6!FO}CQcu{fV*UZXuvDxxMGRE&rLRnVR z0JARbYqSsX>kNUG9TYl{x)eB6+fpa!r}3A@2s4Alzr0RUhAnu_c2h-{{_~irXX2O4 zlh_%#LyqsnOTRUtrroBa5#(D}RwuIA_6IN8sQZ#+aV!GHe;Wg7pKolp<=nP)Rdx#1 z;S0ns@P|0p_Ub2ncQw*l4SLID<@&Df@5a`64H+x?LQ#>UeuTf`A!YPJ$K%q#N`}tU zwu{Y0bLpnq_vY(zyo4n`QO$QLA6w7pHnBACkj$& zdAvv6u|r^cv$Hp>lB$|*@ZlZq1Dp=mgJD3)?+;vjAVg+84=gJ85!M6c_|W-ZM9${- z)QQVu^};^>?f);tQu>_lWzQCDWx*MF1$>15{%705elQ%mixFPH#IIfcT8p=E4^#s9 z@#%;oyj;>;CJm0Yc^Zc5ym3##l_9tWj4WRI77qxz%q@pwDNvFims!CHFz z4(ev$ho&v8TZCe0$%e)rrx$m}fE*`6lK1*5KAHm#F?Xlr`-j0vgO4t1U2(<=S4l3M zI3KR{_GH$G1>q@9jXwR}Z4D4G9)1EN(sdUnVa7rBg@d-N83PmFzjgPD@pr?}==@;y z0rg(n#_0MHordX|IFn7c!@u#XYc`pC{eA4&x*{eCZ_K~%*dL1rvnI#M1AA8U=Jk7L z-FpX)D~TJokPoXuOD*k?y-|YSg6cP}@c?&I+Lay)Vh8^Fu0Gf`o`p4nVEqF6YX5@# z^ryL{{ztI*yU!;i2(*@fRD_3;gW9%Uo2Cb?U>=#=14}F^ ze;U7bOD<3&#YrH}b~NRgyI%B_ykj8s*bYxVb`l_+&lud20vbuX{w1U|Wil#YiWPzC zu&rj91d9=4)|06>8RXtf;&93C6;7`+Ng(KA4b z9tW8tDQhtS6?rwldHZ6C91iR{%Tyu5<1!;WNYdo(9e{9~ydv&>cL4+mzV;2(`v{}d zcpHzuft(8jVeeh`D9@YU=PCUfHfiMTC(M`xPZoCkZL(4Z6POTE_;e!NKJ>vl_fj}b z0vW3dRglC=FD{gXe_q-O zq6y7nPm!XuUBp!<{*gyCbz|a_v&U8xu5_LHvc=q`MZ`iJryarQYrr~Io-U+i3`O*qi@^JXXMU%i1UnjI=@dUYrm3u=cWSM#LgYSb~A z5jW3hMiBq=l<<4Rzhgf2xEJZTfH!5yxhNmTJT`ZQ{qr>qJlTMch1y|UL{)dv!0&6K zR2xiX0YDT-MP_eW_wR;B8khHee|k|R>VM%b)LPPBgN~Zr+T8KXUT6C6t|?c0$H)t+ z``x}J2=T#Vz@TB%4_P>CbJapgWB84c7Wy}one^WG>KHA#SYZG_8nZ$dwSA+@b7C-F{}}%`_TS(Ec-UXRrS}YB|7G^lbpbBiZJMv0_wV7*y))=Tx^WbP*F~an1OL{|PK(jt z6wzP{a>$q$oFW5{#(xm+dEUN@Ku5C7U}G4ol+|{k*D)}dHgrFhr{-z zhOhl@n=#5y29HaXBRT0S^QS*!oErcj575`;f~BW8&ulF2u?smeFLKrRNZkY<-)41K zw#@C?50tcNJ(7nM>l~ME7brlUR^ryl_t+<6=2@K^yfk4`=DG~8-*cE!7JWfZ?q8bRW}`srg^R*QdmtlsCZP2+u*p={()t`moPEnxL4@!{|H4;5A#OS)?* z3c$e-XGH!@3E9qXlp{{w+5w~b`Hd~nBD5K-T|78wWbg-w_j)1uWMVq1T}lBESi_VI z+mq)ciHmaSlalS|h1teL#4yPA*JT8T!dn>NF>}>zH131;$ayIAYT{M=1OxPaJtBkz zw9OUl)dsARg%b@hCX6P08eiE@r#%@;DPea2@wu3!*NbX1&%8+q6&TiM)I4b3T6YD* z=&{Y(%8kyI*f2;3GPZwt?#t(Op&m{lTkixv41_>p66#w)fhjIfb-$+3vRb z+mvw2)`NmO>>~1`KQJ?EI7Uix zBo|3tb-2qWUFw2%hHc2Gmz&I`>J0O<3w|I*n42`nMZY>U4j_M_b6wrhH`bYa%X#e0 z2H{QOf<7;LYBgpup+}fg?Zt{jo>&vY63k9{@*QaQd+B&PKkeUTVL+&SCFzk=^C2{Nj;x#wAQ<)YSWxTi@-}xX$`0wUF zU#OQR!%4Jj&;iY>??#~1TJ{WLqv5-#($iSR(&@ac~HK8IcEJh_K&{v`&Bc5Rm`*X zajwgvy0n}4mri5rF|D8YUS=Oty^?{Hzk{>5v2N20?XBcXSzkOBu{4h%GRN4Z{7(#2 zX`6S%WKO;_skM9j=ZJ|LP9i@H%)w`^>tBJ%`|An%f9_+L2oI`!_7CKHiUDde8jzF;!@N5n8v$ zw)+#3Mzh0<`f04z^{CbV`Jo4Yx2imSuKXVVq|6Hzb$%Xmoz&muiEN%Xj})AZDy~q5 z4}a;SnmlJ=!Mx`?L1o#}TS#2&M@#X}Au6HSi9O$0Kc!n_nQ^pZ_t39|KH_3|T(#b$ zVWZ#7M|<6)B@I-{1$w&=u{}TgP5mpG&mEWcA>1KgAXol52YL(cAvQXl7B?%Gd+hmZ zLdtSq=tLU2PULljU?aQrdI9)H^Vx&293mTwScFRdGL1&_kDuHv)b*o zn%+bz{+3A3A(B7-zA)skANtPL2iJOG9Elssgf>B2Xg;jy2RHSR@K}@d#B<*RpJ2Q} zcRUZCv>r4Tvvn=sT^?vdl9AX7vewRnB{IOL>3fhp`{Hl{vZxf8^TsS5i}#24Cx80H zFUC=>P1h)68?eTh7#KthYX^&Ku0nnxWXT0m-xn?>c$I4l6Jl`t!5lkdOos$9e*d6C z`BOMg3bY-L_)^r-BDA%Uolr^~rS`c+^mNWz8}OQlHgB>%{!;N8Srl4v)CZ~$@P~m} z>;}Lw`l^(@&SVycXQk{C?(d6~T?>SE4>T(nA0xpDD#D77l{-~Bt zT;UabuOVSAC*j-)*tMQ4Br|w|T+_$c~)~Ryvg7d%*@l-;z~^1GyZJ}%`c1u-Rl_ZK70)T$D z?+6ZcQ4|q^=W7s+ANZ39Q{yU0z0+)u-Ed&EHLh&`N`0LFWOo~fD%nS16R+%X|#&odnT75UQwvGOsAL^kO3SEDYCdYTc zQ%<P*@k;8dzmI^Rp3-%=hlV$T-8x2?_^$75DBnDf1An)W z^N3)_9Cyku{ie@P=fA3|WhQ5t*QTArzJD^|*ALIo@!=^tW_A3ioGG>lw~OggQ%;G` z4U9d;R^`cyPtLH_tdy*0h;I>|M<)d)PHLG>3pH_KXmoUYx}y{KZQ7CCpI^K z%G1Pg8Nhwau&yMKCSbZc^2Ybk?&_UGuJPS`Bpe54{9|nCe&J%Y(|^StKYIH>HA%)^ z3e-k@CZ}_!k6bs$89XqNq{k7l{_I{H-(5$gEuqsVbBvo8TvKi1NHz{`AM!k-{B0pp zlGc|JRmru8-)#7x>Z-z1A`Ores_| z`tz`D$9_l(Rfmc2Vkz6kikYlw1~JJgS9kx`Xu~y9Y3JccVGcs(;}ZYX^cp0>FfrC$ z)_*yglE2)Iz8xO% zBaBM`=;I-2ciUd;{{vR4eqiZdtbk*B|@ zPi&om#@bBDmJ6}X4vYG;`Q`j6KlIxb$}=vu?y5q8BtL>#)4j3&SE80sdtCZ#hLC5! zdR=Dq%{t~1$+;GLcpmB}9rJfx(CZ!%USn+%x%H`-Nc=6g2k|ZUqqs|ABB|5Q<~5-= zlGuYPo=cpTnC`vnt}gK(5yP?l3*$dndrcpt>QXnUV256J>9v_Y7u1vJWZMU}YPhNR z=BQd@2#Bd9Z& zc*w^J@ZKJ%YMVbAvhK&c9d>I!c??%Pkj;MFS7T9>Se&`)`_KL@g7-Ze^F(Q@ZT~=1 z=j?amFC}qQO@Hh~Td}IF`==Oa=BJXtfD@}tznfyMlWhG?{q4+!XZ#^Bgv}@>V;P|; zY)wDf>A%OHDuTug#Ej8ZfE){hk-lJJj91*peO4pth5_8z2>%G`jZqy&Sb|IoHJ$|i zX>4v3?G4oqegK08zRMgEXCVecb9F$C`u({)o=cr|I!|2a|INhnobp!*ZL`_d@weUM zgR}YN)^jhk+&K{cI8_Y9I_-nLsdsj*2<$@J`NrmOGm?E=-Wi0;iTe&92rhu`x|j0( z#rf<4q{QGcv9)N|_vRQ$FfkJ|VzE@0xcaQQW$iT+8yFf;xPwYxpWwe zF&Lh6l~y^_q~woC7twW;ZF|KcEx6xi$#E;{>PWyVlO;Ph+!o^6d(5akz8-=;Zm*3i zOm)K3A-Gcv=D?1c%~&>;$F^y>z;+>3whxG4P5P)sn)iTgHCT(mRyJ#PUhu3ZSt)oa zL<|>Yz$;K30nu^Fv7A)RT(GVZ7=mUuqOvQMZShVH!hn$+Dm=B?!MhQ zJ>%CRS85HFac}qM@Na>5t}OQS?-+mZ(#O=#Co4G^Q3ossj!@sa`Eq$YgyUY9ZhCS^ zlybakIC~n`iE)Kht`jYxn1-7{5;R2Pe#nS5q!MIZhm@LS&zBlUtaX1KJ@t=ZY(V!K{~PUUE~?we@9SUneSD0&ch}50_zl`pr&4>K zCbF#G$e_Mbext-X2M;@@E5b@VoXZHyU0m~n50qdZ)!X{Se-n6X>+`*P2wd7VEu!4P_77+?Ioo$5^v(--nvxPPTc)b1NlWQwq`LjiYTOyX)X=AQ=_ zye5Y!8$%S+is-v}wp{cyn52~DVqKaV7m%5_0zm`|c4PQ)Uqtl8yqKzE+pN^_zikNY zqIGj&2k~>pKV=l1e?sgd*nzJz{d7r09;1ieN zC-}&j29BWOo#{O=f8@MXw)l7if78a~Apt}tB57xSym<;NMJ6GotajXrhQXBujD@kk zMA`<$ACvdOjy}%2C)d}8zf?bu;O=R|PY(h=e(8RCEGV();z^qI)Np_vw&g0?>q}$S zk<^1KWH0h16u<%FQiE12DkMhf7o~SMurnHiXT!UwUT@p9bkf9~TKn!cRko}U#^@<` zT9L2S>UqxVcQuw2>BQ}sB-#sP;ns*9@4kXbuxg%mD1{Z`rOsO&8>I`b{GL<%uwTQJ7cUr(KS=UEh)Q=>A9K2=ZAx}prW#7Ds9l`8Piy(zwnUI~>V54__= zRN9*caMNsFb|d6}sEjeq__t7PKB+&E2gyv@VlxPf%C8P`B`wJl^?%>n%Y(2LV!u8f z9&YBY(xo?dV!X<EZHJqwW9MBi8vbvGPiDGD~>x366LHn!d8d~fYA}9T` z<{mD>8{7m7HF@MNY z;X0c`OT7(u?eZ4qQpS@$#T8KGU^VASYNG@LHo^2GhUcs5H~u&Ag=K>1WwI zYyzqAuXwQA>VnK^ItPF>Jk2lv;FXNl% zSiKXD)HCKP?)hhrQ8PCT5bUjxj22OFw6I{byC{IH+EvKq!0~R^ZPa;0Wx~78SxhIF z&yhdkpXpzG!@IG~zslDKia+vRq@g~2UIZo^0>o>Hi|Ksy>HUU_Xb?tQ|MsY)h_-{c zVC)6RHJtxwbJ;xV;s-ES_9!HuxQO{E zdqgilVeg25#JAc9Ur>>jNhX% zeP*v?Dc(SPA1u7#m*(*ucQvpUh&Tl9cuP&T^wluOff-^4tmuMYvK_JF$ScQJaZo!mVAr;<}}a|g?3#zXq2l1(G9_~lL3u+%3@JppaMf&Y{(Wma3HaRWPNF$!2(TjOT~ z_;|kj9+nd1TEkjHeXxPmU`rj>g8%*mii z2K}~6tw8?RaBxfLcx%l`#ju(BqXFay*iR!X@jfCn$;MENyX_8`@tY-$u*Jxe%pV59=lDn{NH~cLd^T&-57e{iq+wUSvq17 zcGy@6U0M9&A5F3m!)F@-qHyCL^pE%t0TZ$i9bnPLN@V{~8Vi`+_M_39rbmk@;WaH0 zmIxIJB89?GX%K^+jbP-lyEQ9*e8W*RLNpI`kQi6teH(n#vs*VIg(F^{dDWr5bQhYj zm!9)BvsP3@4SCnNTI4y5qX5PETs~JghmCvXLB@r`%H@Fc>b_xAtk6BYl1k0{IG@#CKF?fk$zQlnLk<9Flqg)?%Y z08v1$zfnwiB+h_Mh%bECx~j(TyNP`ciGMKrRx{W~Aj1HSKnYMLajX|M0Xff24&v zCy#W2&s|>Xz4(;~u))97KfleN{=FB}so3nIOP1F5;7{&O5r@)^);fx}kl2a7i$z}& z|IO;g&&>p6ScrPg*}0~4#DB6zj{%fPBbV!zcG&SSV(7Kpe&h~fbk+5bR|%zSSBU?I zVc8o6@csTRjodO}lV-In%9<0SzT?OuaVZvsY}lu%AoN5c_6c!&JiYjAj9qqT44X7v zd(=7f`y-%r?FQrHH_40cOh~kN(vO&Hm50k&Z?;b}XIlId0IZ%#>6?+R(nO4jPd~zR znS{nK&kP(y{O@(=z*N4-qxiLwqJPQXw+$YL2Oe>ObGAP>DDxl56}k1>cVf}k1V2{1 zX4`W2Exc>6gy3ah_(cP8z+)Js)SY+yec*Jb|x z{JjgVp2zfFn+ELJn?CE-BwkyD^7OiJ5Ec0is2Hvc+$y$-PLp*1fsLIUHUZRrGIR(L;1I(fBE2!W+P}T8{>qpH7ZcLzS4Lu z3%1QG5(XF)-dH3s!ZL%rB~{8r6f8`CR+~&;jN>A)lM4e$s%NJV%FN(u(@pYR>ahC<1nV)vRmOyTxF)j^OfoKVAlq#_B2sBS`oZGK7OW+J zZX2Ot6P*mpr^VBhUu~V{FM+g~U)T6|{uS;!CToPohlvPG7}zpjWJ4H)4=}g4-8jK1 zxsn(xbr5t{@t4M(Vu;~0qAw@lZ*1@}f;elT9MN;7Y5`d|-@`wMDK+E2PW=+=8ZX=` z9>-&9v!OkN;iO=lOQau^l5+eO|9Lc}cwD$E=htM?HT%_{NX_RkUf{0M=f_vE252$*0$>5azkkDu-Wf3{-dY4h$Hpo_><@tb2MA` z;6_f(D@JI*ECw%X8-x2tJ#=1N5DKe4ZcY};PS571ZZE{iKMKXGFQqKFmlck}OU1FXas)D&u1WWMFAI9+JlXx2@M^*FEYU_&uS>Y#t zMLbZyC$XXZcg;8VZ}n_i02bD5;tvIX>kiR&3RfV;+x$QWooe*1=7?J@p_|}M8gh*> z;m47O4}0y^bFp5NinfdT)BE=Ul|VdbHC$o`;0@fiG_Oiq*rY89dwgy2sNp;2w7$AL zR=&UIi7lHi*q?R$oS*Dt$|vg$%LCci5ia9_^Uou?&el_i+k>y_MQ_Xz`{@Lmg4n0q zhSS_WT@&xau?h23jGA6qG57hRfP zC+T>e+8Y<|VqeGq`v-m{=+>!@C18ZWjD?lj7r$XMZAth0V96?j_#efKteBBfF+pTX z;Z59`v8OTd{enkUen$MWo(^j z$(kBYdGsqd(@+ca7-`M~ZGx&Btr%#tWTGgce<01Z9s4MsmnQphTBd z^h`|U20{YM3SdV+>HzPgqC;AUMFujm`HO^K5&Uud5rSVU&6wRu=GCIJ^Z7;s9Q9;#<&%Jjp zp_nkhNPb#fkV&4-O4g5H~(f`sbl!3~}MB{1k|FtoE@H{){EBc`D-Y zr3ip2#F*I?1%dj#rq@6CEwI5BeT?s$;r@ruj4jYJl+uCXrtG}%6xUYaiNmxSgR#cZ zKhf^++3{mX#bURi43pzx)7$)i)7RtWo7PMe7`MU`NtENG(DCoEEw8H$xT^_O_+O3UnWK-&)KL}PYcuG_^Wt+vlSP@BknG9v(pW$bxdss8Xp7Tox0OV z<>=;Qw=DYm9msdK03bMkaWg%srd0rfzn%}_5IGg1PBM>)4_f-)pa1&%!(ac|#~e7< z$MLkE=XqQQ5vQiALt`xlUu^#BTz5_1s|w#j3dq5l?j4c+$;vRN#x)*+{z``Gc67sVy3 zXG;9G1>prlDRo-}*Y}vm(T?Xo(VKrQ9X@fhP;<&LM|b4X3UO!Emi!-Axe&8fzg z5_?R93E>bw*HID29Ehq@*ZF8Y6GuWzu{rJvI`W1RC;m)~gV|2rxsian%YKh3j>l^& zS@kLYcF~v5^7!Z6y~2oSWa4p-W;!z2A~FXS)_L1F*w9hBwh6X%!L_+Wn@4hs>U9sV zdT8OH!06|kwU9OLjz2eSwtjE9nZLar#BJax)?+$FmzRcAoN90&hUQ-$3;8ZV2IsK4 ztX!cBjCZbU6ehZh>rJ{-g_}a z9d5PsxqpIW0Z^&GpngK3TMFa`AYnzP#@XB$QXR+8*>fD+iAUl;dkEf1gZM1+!CfsI zhx>$r#(Ndv%$q}1q~AQoa^K}T}ASi-;clbxIu>vFEkMGe0F#Vb|>rz=8nNiZhG zFMLtFXe;HjuWE%z(A^d`QVgPnSHoK4(d3=7MRbR)Hbms3cLHp;tl@( zbarT2-yv4V^`jEi{PqMrCH^`5W|&&qjazLRsTADaw_eCr38r>tRJPfV6-a7Dg?{O} zC{^0$(yqqd`A(cUSb(0mIsG8=lHgLbVaC7o4jK?om%nu!=3kl9-#y+x}EcuCX5;-%qgQTHZTw?-d@i%O(cwcAuJ1w+}b~5s# z@jv)L+etdbvDH1ay^O}X+GxZ-y>7P6{&Uks$9#>x4hJaLeaO9#DvR{j+2rf)NYMCkE*SP)ke#>}6a%FkZ}+ z)1ktA;74!c=Y4$|tIq;?@P<(}R*-weR=VJc@2gwC|1th`!RKIp;#GJ|la8)i=w@6= z*K)eVHu2@^yDge_gw-i5^5j_cc$x5e8T-h0dBu_;yznlE#P)v$7T|;SY1Z`z&Lidq zvf_B-)5CUkvx@?~o!d-(wr-9%TY8(1yJ$P*-Cw}3&LadP$`eoP0KcD{V&X*2^s&06 z{kEk^{A0czR>w95r2klXTrSDjj}NmNac>APjyZ2`d6q6dVVg%P>$W7+8d@NjdDbJK zP@f%eB=Z?^zI{#kD%A^gmBS8-eC!~PPcb>Swo2o)-)%!Hs@gR0~XxQsZpS1v3@asZcczlq*(2Iq(Hw*N(do~@7(>m^^%CNdleHCu_{^rc% z$B+0gh8Wi)+jXfkq{Ei8Wz;-^_{9ZnkRSd>duEvLtxdtcn~01+#HxKmmj-l>_^*ih z*uLs@GVsUPs*Zogpwh}5@qe!Ke42&?L!FDbslC2$Rb@WIcpjaoSSN(Odd2k{+=5~f z6Vxduy_@hd>>ky0n{9_8u6kg9|8)d$T(&@putiol6xjW^kPM0xS+>!@bEtfLO9$#A zr|Vz2(SwN}NI^X=Q}62!7S&BK$D>ingyw(}0mb3jbYC&U#p)&z5c3=WvaBf0QJ_QL z77yWY#C(Szqf;82Pt`k~(N?X#prdHO+jz@H8>1~hmGT4dwS*k5jK-RTj5Zo*M3~>h zI~e!?rD)So7IppQuSF1g-~+DP1$e!=RnhU!W8f>=FIV49<#|UkcM*0tPU9GXhTkQC z`MG49Oa*0R!N%Nl+jlrbnVqzzMcg!|2{y<&n4a!9q&R_13}p?WfxAgU`crd)Emg|1 zkqXtcZCo|Du18evBhRCWt$8VmqXr0%|5VzYq_X1$;lC4L&~_+Tj>RfquIbD_*PdI< z$LEoUnZ&3O`G$>d38=i_RFpho@X`41*JBIpFwoKuitR7fSD`Y5(}s%C-J{@pxxXBji*lX(2!U!UL;gB9pP#4YzB;$1m*$s9)OvUP6%t{vj1iH8rS#Ep?S zzh_^e*Ppg&f9C%Xh0D0J{`$mJRrjlK%-hFP-=lLtRUP3!q`3?h-Z+Z+hZ|D+KldbI zX*`aE$5S`FehpnFL)4AiI`uZlt&53bLq>(bJKa^5z`cUN1yjyP(U zCfRXWR#yDbO^813r(3H(^cDveWQ+pfNBiBB4%ppmG%rm`gN%J{g*BnNNW*sB{2Ib^ z)v@WAa`K3IWoVp>yWPOZwC#WM*>J#^7(sco@#8)BXs66{ALa(-RMt;h-^R=1Ysavw z@47*HC7D0Z{TzR=ij?ywDyKE;53N!I`{;?k#=btcupe#C#f2m74Gg0H!%s8BPf}=I zSu&Otn@D@}5sH7MK`3;lPcWIbd~bYhLV3_A4i~e|J6@Mycz*a~{yuzQV)^`kHO!8Y zE5_x(f`~Cuuw#^)7~XVk0k$HJ&C1UyMCKS%V^!UfzR~t&MrHwkuAjJhJ!fw9L)H@C z$qOzK1X}mJt3d{_3nE0=GyX5hp+W`>)BC^Szv`RY_j1G;YoKS;yizQ20X$_q${LcR zX{GiBsPr3FS%obMD`e?1N^rr1%n@WB#HF|OV@U4J7w%pWHc)fAKe!H+DK-Mq* zWQ^$DM&2P{<4C^})33_k{ZlS>+ObjxunSJ;%>OAlcFB3_E?V{qi*YXSe@`onZJM;Lk#fHX!@$8T_pV8KeZ<;wdqC#2&d6Y&I?7~VX1kxm>U zr4hy`L5`5!xM`4*+o5Q19B5wEsXYNm+w3@s60eB{A>M^y(Jg)9u>29DUT8-Z^>srD2#0 z_u01nJ0i1Y?n1A*6*a`5y8Bf_KuRcYoqh*P_5F}ArtSAF^q*!oMaYysotx5Wh3g{( z*zgrT!|+d67vxhP({gFAbDQ630z@Aq08MB~3PA%fWH4@SjNh9GJ%;jBUO43lb1{z*-J7npz$UbSTRO(e2?CU z{lD*BG?xFv1I5J?ED|3w5pR>Q#;U_%KnSe}M9^3D6@!XTvCPN`KJ)*^fKAKuzlCIv zIdgEOH`?Za9E^Y9l$fAhseDl4VawV@X3A&-zOG$5{)NBX z-~R;IlkxbWqrqlHS1ybg8X@m#yZQ4^&S zlQAuER{N(MYhUcE^M|B=j(@9_W-Runf0Zu4%hfC?^h%xtv*{{NDL;O0?JTFbz27%H zg8O+q7Dd-<{u1O1kCP|O?^W&JPoKY7OK@Lo(^;D`b<9~X&*WlmpK5uwZYXO7vBvFE z{I?`e_6GdkdZS)1{#!M|xWpW&hxgqK$?0C_=#;TxBLy}Uu4;_$^Z#XrkMl&l?wnMi zSYJo{rScwi)UsS3iPl#y5q3-xOGF!L&7dyka@L*KU#k#6NY(pT>C*0 zElc4C=hH{VolKc63_f~}*#~I{!3f|dUf_ zj1}1UA?eJWw-cvWi{!NG_Uf%kx_`ELL`YF)fc!D{0uLGu}|Lu3tIMZDydI{$Jev@Ge#G*H9q#5*iLK60dtBdf8fa34JZzd68+Jhg#|aK6YVm{HlW zVm_{T+CtUus{f_?AZatxh3N7b^iH0rx9CK&npXpVh9@G*yM$mJ*_}04#8ejKH-&9L zKwxfLJJ(Z&iUzTYv#H>v%}2h0`}xqHEQm^2GyQCxJY$d1Fu6AX1+^wm3; zY-e8e)o=T8Pj$FV4D7(TF+4|dd z3>3eG^s<3>`bLd4DHZ#z2cL)GuXll@=u&+`!(QJtj;YfU2Yq8kMqh?079Z7m^H3}c z|Jzu!b9JJ8X+Cm0KnQQ@GAMw?kTGn5eF}{6`J}{a(+BpbzM5|F_kUE+t*+hxwkzns za~_&O4p?g9-Ak!M_V>M^f@k>tdX;!|J49N8X9iPt42!v9x`QsV+n7~eNCg)wI&ibi zo9VJuGa>Q2X+OAqd;EXd5bHds4PKbxu$-pZ(wy zH45U&fJk2$$P6K;KPkVPrB`+>dZofw$3e>z?%<~P5p3Xl_$Jk&e3jE|HMVEbM;Xib z4m}M2jG>p^#}*@pFn%WeJAdSHk0oz+<26qiKh#!rtTDB2^0zGMS7~)bh?7YS+Xjr} zzPDHQ6@gkyO}v;FgOu{~6!b~@& zPsL5B`*A(5F&iD06esSirxEME^z{&7e)&5k9&{q@3h5d?Uq9*n7y^zw<1dYIr;l8| zIoKx#u3M*|tX2R>;B+Du{_^;|^q<$rDhVGp)~_j>u#?F@g#Wb;vq9s4)zNAk8~M*# z4u6%T(~C#`jy%x5u(M`5w^!L~)0w`n4S(p0@t@l!6s`9E$UYwbGpAhT*7%pa#6>K+ zsp3niP{wQg4`E?;gN#2~9d^%w--^}Kx78ml_I~({^y$!*Ma>vCF3GPd4_=>ftfssf zU8@L9>G$TMOO5OJQI0in8?Q`X-9~jHeq_ZM;>jW%<}_}nU!F2q{kR=Z&lFCBiW^|WQxMeoM>EvYOP_nfddYsdp^ z9Ci38?1@|}g9X<^W}IFjMsrq6qw7E4BOg3wE^0izqN!P2f97q0%18QVwc&UDPo6f? zeip3dF~3kQbUttEY8L+(uPBRcW(8f0x`i%s_hlGYV^!|EF#0!ohO9YMrFig3=k?L} z+Wnut$YVHaUo_s@E;iUF1az-EYy z33%sDI@7~96Hq4~6`wPhI%*(Q|AjDYPT32fG}O1tM>jvV=V{Urv|jA??83MmiPMq> zq6z#ukPsB}eR=I9GMBf$^-M|157h z94cBZ?_Cs8T|F^)qk{$hv!emvWdL1plWMjjBtD>4>}ef3!=PIfG0+l0)kZ;_o^lZKQljX!Dnfc(T$qCWZ1pJjLXH_dDKgI$Fv z6sGJSOpdLv=Um%0Tsy))dZ*uRf=CSW9oTIb4$;xW=gxri`I1h(>%dMT>$1kad-EIr znaC8*@1mCLH+>ki;%5TMEEx8FK6R%mQQM`ANc_nGb!DF(dHfS0S8z)geiGtSM`tkO zxE9MA2ZIIb1CtT@(>4;*!CM$C|Ij;Uw7Ar2x-u+JX22lP1xc%i49n zQl+Mf|Ncp(j`4aiDKs@lyMp*tr)OiXcI2+#zly+yg+5+@@c#FQ|KDGKaj*m#I7A4Z zOh;(;X*Yd&{I?3YsXm4L^>`Ik-29?~RE_aBPN|*}{#L)~XS%unKR`qta3G zeZ&C3bBms50WkTMO$XF_M5Jhc2u(kN0f$`UbDS~WY-U2NZD zY4!)m-7=KW<+ANp)xTJih+}b>-y8k#Q@g_@Sm8rWywhQ zJJJo8b2D{fg^nM;eNkG^DNiqYkN9V!icnl!oz6DWwjpWzdoaq5b0$Dl`~>Z*t?P6- zYaso;3x|;>jD)+K=g}>XeUFf$FAkf5FO`oDv>Kqc*2^MGWc}aczy0>#m1iE$9I;fa zgY(xA>X+gIxa^|)Tz`y|CnBhCp_eSsf__5IUQgr@FNut^ZbO_5 zzm$56cUZ_Huc60PM^vQz7tt47Xxqh-V+`Yd<0tEmj7@hRCtk|8y&jqBzlzU$BHQNa zbui2c7tPPsy%C^3GF1}MeU;2DANrj?E`9(&wLZk0jXq`@kHD9MXFvW;YZa+COc!E< z@9|IIE~Xr^jbN{#(@=!k{Ryv%PaXe>-*Kt6=0`uk`d{?M5Z68jj=rPII$H`eAJlAH zh_Y*90Z2nX0e{#h^v=kQtsLVsbb_|9x8PEV9o|C~w0-LEJy4i#iFqkGB6|HlO6u{p zLr6@-z{d!==t1J2){=d0evthsjep*K^=t|t@jQk>RFJ+DTdQsSaX^iBs636W#^mm! z7L})#;AWmiP)3>X5Q>};KL_zdyX9)0;am~;f!$Dmst4WHux{FD=LN7PX zr{$m%q_oLA46^w#;AbHEFyghsdzWrKX{+wc?P7@Kfmi@#ZtunM`fNZ2?V73^V1>IV zYHZpm_;WSb`quqfgw^WVKwsF1W9XLiV0m0BUAt>41%T17g22&NGKkz|ZURExPI$<; z@bFdh<^l1w1uLQk{0X$HH&D8;YurLXlY5-hF`FHeFIXIGJ%Ha-eb(v6B|MYuaHTW@ zP3tmg!K5E@O*_ueEotcT?DJ2FKKJ;RMe^i(3?Sao;(VrmM2BloogANfRIFNhv<>Cdy<*DeM>?o#)e^UmPq%o@jqjUj{Q3- z(#g=wmk1y_Oc%YyJKA@I*|DHPFKO*AShSiq55^cYmYUO=j zOxqh(oeGP*bUCb(E8O{*64O-6)XEJ1&K#c+y6GD~na$`3e`3=S{^gt8T}$fHP?}u3 z8^<|wH23>XU*ENb@d91{{o&vFX;Ky88?qt3Jq~V#jnK1H-1UAjg^Ee!?+6D89*wDT zzV_$25F=aQ2PSjjvQ9dkIKn~f#mjU-V~>kEAw;(~u_{IpIs|?(DPj&n?;>$Y3=F)8 zS$q^RVle&dRYR_*yIpiFW$ng0;wi%7Urp2PGOpm!vkq~nZm)~ttpjroVr9&-Dx8c39E+YPMLH3XRvvN~)fd?vMDNaS`rpw{d&1Zx3kfZ|9~? z#YYbO%ageJ(@alOXuXF*xB#@da?ufQH(010~_b0PqvFJRMlA{J?r7~I%o6? zpu(A)7=jvAaJOraRdsWNfO&tf8(@A%7juA`(;Z5SA!X! z(gpXHvt_ywl=arVz@M8aaVobi3(Ha+1mK}U>Ph+809#T-tl~fgb!!#N2ye=4anQJo znx3&$Jw(s_Wqc)E?Ooj!1fIt1&u65VjVH0je!?$&D$QROe(H10mfIS0*Nj>JzmmgF z>Hd^j|5J~(S!i9o&AO{^>_#y5Uw?Yr7W*X@0FLB>qd{ zKZCeuDXPN#j9BzBd+CK>#XENBPLh**feULpG(o^OftiSd#y_%P@Iaso#y@k)-gtcZ zUAp^-j462AGBbddUu3WKeEf=MU(LUi170$iaPxNLH&sH|)kF$?H2 z0C!b3qwR!|&a(rXydX-*n4LjAAcIDxdRv^5Knyx?sRme-MkpGa-?jWn+SSsf4qpA4 zONF(U(DaHho3T`evLM7bPdb1mW{`^qHxY~pE1 z88x%$2v=fzh5JJFolZ-Zj)A@$AdcTvI!JBeiEJpbN8b{;NH}_e(Z`^J3QdWq&AaQ$ z|AL(_rGI}u7PC~W(22o!pD2E82VP4t=F6C!2>yh)~9q{_U|WwpD}+ zS;nH!Y;1s9gon{4vlqvH!BfO=;)nx3W&~9X0KogD0O;JXvl>nHd!t5NnXk4_T|1br zVSBTkZ)95c?H73d@>&FesdJ234LGIOtZeyF+f{$(AQWW1qo~(Kn23wdMM%xs!|`~A z#XtCxa@u*l&?m|1j20}`pndT|4+}(D;dq2W(n*nC%6T2`&a(N0Zccy{%dsg2`)kZ9 z5bR;?)@Nl@-{bC=(aRo;{wlX`4V8z=HNOAT%fK}l2caUeL5;E6j;JS(O%VlG4mP!u1yGIo3m9TxIg)oK@|rz zSEzOk)41gSxuAG;VI`jKM4Zd04?qyhQQ3Wr$KH(UTeT(bIA)qJ#xJ?^Ji+*{c|Hzz zH=nI@K@;Z^ZEWDFqaPrJI0*MUE&xwYL{Tu~>ZP5zr(Jd>@sFCajPcMs z*G8`JLQe)tvFC1E5ivKC4>`s`u2)oC?fZ?H@A}WXN%Q*O$LfKw&*!kuUUdE1|MU5X z`t#r=Wcr`u@Or|}?lav(i?Hl`(21&9)cU~sMx(@1du^=#5VLE~FOG#`+UtVnrMe8C zJAhBJv5bJvSR+fzFrv3nKlP?<(HY+v(7xM?n0U-l=MPN8=3~j$^M6q=+6wA65P#pF zumV}@__zBfI`>5AS_l02`_7+Qh;dO{oML|s z>``mk0ej0WkLcy|F`FQs)>+{(1`K7y+&qH>@Mm4aT((@8A&s}LdNVt>4oY<#aACRA zF}Hsr-yRbv9bmi+qk?k>i~mgH0cQEg({NIh(U{R2m)fv5IiNdzre`)(mD8h-ZyL5y z2%4r(bw0u1XT`s+`}597_U-#&+V(9Yu$4DOggm*fEb$4mDG5;Ni6A;axFWa>N+V@& zC_qRo7{PJKg#i0{&u!QeHrPMg6)bwU-2^%o?`cK~1&Rfd9VF6-{^Y^Ecgr#cuaQU+ zL49I(%mmqip?YfIEgQSl$E7xt6=TMV+pq_`sA^$kUneMSzDvyzSlUUIN=j z)|N@>ng4CkOPz7|u}I&Hkj3ns+0}aSQHl`3{pYy3%1W#{b}$Y@FaUkI`cfB0ZEYvOPjkw^aD ze{cMUmll72{(ql;cdiz!BYsDoj7JP0jRQN6)8bFPIKFlFc>MQON5cr;_fK|5&8M(! z8e~U!_y?UyU4I*~WF$h~j{i2q7@&l1NTCg%jxf1%I`CHXK)Uvy27ow~tun3m6hELC zT1KUABuFA5_e#&0l|Egl+X?x6Yzj|m^p$P9ZSSKfm;7FOd;?6Wk~L6vyT*d{F%xGO zCv7*ES&soHN@F0?#>~yjRpxo@G69J@QXC)8{?T@?h`RM*jB1y({_Hc_S^t3E!vA*P zDFIm3xTg&zsjG#-%~rSu`Axnk8@DSjX0g)o>d_ zH>r9MTmrvRXRI*u`2YD*`|J0~?&kRq;UCkA7gr6CIS2lySGPCwPTlP``ffR*ydHSH zL2)E%#6*S^5)oQ7NIVP=J-AM?bBR6cu(b%^@W8$FYb6`SUr)vj|2k=2W7zUtT z%lydZwc#HfzqPJ{SSViZ_vW%RBLn`_dI0tQFxc}wv1|r2pzK4rbh_&XuwI%!K1=;14uWy^i?zd zF=*n0VpI%l2#Y;HnDYOAKD#Vm-4=w;t`X0D1qGlaMC=Wa>D*2R4`Ff=L$7TgY8BuRB}(L)K?9Ivsk1f@c^ zGR8pzcE}jKNCa%z#>P?FB!9QnMe9dEFfDjsiyrf-sSsflNUOmZ`^iG^mks{hXoI{{ z-xNFh1L!V?kf`=|*IG3HE0~LR5GT@&Iwlz@d`O^URRT2o>ju@x!9RyeW4GIswJgUnG!3&8K;V(n!V6dcbH2om`RV+p)4I`L7 z7Hn3+PlVQ4&3^Wx_j|nd@45_`R99v^Iga0*TG-~zQ~Qhj+`uwl1i^k&o-_jMoE1c8 z=#)D)bVDn`Cjw9OCcwwVGrU@DL(j+7naH4zn=2@|t7wk_m});isb^Bl21U1gFU4yzbv zw%0cNXA`FGdW?!8Dg>+c35CRC^E75CB~J-l^~69F2l^#=uaip0H?IpI+xHHdkLDW) z<^nlp4?V^3wP^#Sr4q~mY2u5iAbTtkBb9L~V7GYuNgAx9qnuRe;9j zSKbFM+No@LQw`e=9E}t011-&2$+?18KTH~zj?c7d3Qth&3xJF~`}7gSKSqmdBCt;M zx0=JJ2jGhIxX9>r?RNCWbJc_SPER5*Jz*>=J)6LteBaJ>gYxg;VK>DwEuX^bU_qe7 zxhXH&SwaP}=ZOEww{v3`4p{t)KnSW4?`_<3m@Av6)cEm5iBG+R3LwCc)=zO?!payd z^HY%A!->ajudi2rI( zE$J7Hf%y{v(0#|hv^y7as%0|yg_eWLMVwZMcCRU$p2%s}7;PjjRWH;3DZ+?f@P+e= znYrjP|8t!99VdFO6OA{aO>@L=+pNcyP7^a`|B(29Mot)Z$*9wvtL~6tIbd(9i5~t< zju3N;U=84#o5XMa{d|TijjP6Ck0*QHCv5c-S7dHJYCNm8Xx^kh5EnE+cY9lKR8?v{ zXmh3Yos0e7Q+T|8T(H^t`un^9hUbQBA7X>bpE% z+2SJ$r&w$73o9KGH(lF+@EF#R(^HDzj7<(P{7Lh`5rp55nkUA&QFmlO-@u33G7dZ_ z_;UMr2@U0Mi~24;WA=8tn96D|U}g2%qq=tpR`6UEf7cj176vC1B+x!w@P*iqnyA)o z_1xs^d!G@vDl7bat|2xf(PPTpGdK=jR~Pth8k`Z1V%>4AajN>`oSCuT9#z$zRXUcl zL)&Yt>qVoy;DfOhNBo0@^&KZRZN;4&LgR`fGukSKz76ln|1JrO&&NNk`gzbR5mqAv=d-F z-M#nXD7&vDDLOb43#{COe8<2KI|WWv>wOIi-pg!PBbfK*Na*H=Vi((oZ_dO^MNQcko};lIc$SN>SMiOBJd5$#kGpkVLl>!=xsZ61jr4#lxaQ1MmIrT z*4GAC4c8WSI*!bKAR=<*wDnZTM%tviLzPt_iC8BpK8Y_Ldp9(m2&)nX|2^KWR_OPD z@;LoiST8CnNlpSbmJfY|hLHK{qjvnWeYEXLc)#%Goz_QgMrP}xZ!Jm_o3zzLTAg{9 z*mw9a{=aRWEd%%i-4Si7jx}UeN7$d@BgS#j5q|51wn9yvxT>tW05tg6jFw;p#;CaC zPQV0ZD!=i_JN%%NOvx1vgEzNaL$rTiaMmrSjqx`jV6AO^WtC!Zz;bHXq$|J)4k zaWjNZ43Y{x#TemN)pSe&OS3QbvOw;D^A+}CV zlQfK$!1s>-+e-@Qmkoy8imm3omClLZAx=vCNBgZ}%1yH2?(fttXrUCKc1wew4GcpcEklc$W4ai_MAj^vzC#Bv}we_qxypa zr`7Sdz@=YTSZ=uqd#Wlf>a#KE=LTfiwzR%-9t8lIjKk?T2@m)0>#JOdywwIj4SXKA z_&@rT#Xk#d7BymDRbt8cX(tTI_z<@8;%REn$=~4vYfP&TYc$Nees4!B{^^xMGk^5D zf#Ps3VyZ-V&i>=P*=rx4a~12KgN5;3+Vq72_#VVYlg#S+=+8`s5pLwvVaRq0kDRj% zyXm4w-7Lckiz@!?Bq{CsJ;!|1EF^Vqv5jEkHU6WqLF1o#Nl~nflPS*+j=1IzXiRaR zeh|N1@MiPRJs!Xha%mFEs_m%a$@8c5o0zk}vIUdiawWW~ihgSEkI}*;^nJxcTyViB; zOU4gvzhrrT_#Wek55f+6?iTo$bD#+W*ZALGrA<#SBtWwDPCL+V!(;lpM)9BjTS_B#~gZe zwcS9g_7fr2#6di9@zfk^ZimO_~6c0IagU&XzW@F|bU}1MFrArFykI zGlp)Lt)!38r_36MbATd2ajG<(auY#3bo0gl&5=ytXBiUk%IFHF(tet(6zHwMkl{V) zRME~Q8*D=-A@SEdwF<15Q^S-GMcJiOfxfoeV|;=483|^IDKf|UG4ALvl(s+k*`SJB z{Q#Vg@<@O$*Ma)v_w!R?BgFqQFI3ivY4iX2s9zBmG|5i0rTSzrLKXp|M&Tee#Ama;yguJ94d2+HiKVHoBU1)RLDtD|I@w#J?mW? z7XODXSI54fA;He}S%mH4{a9Q_EmhH zcFNHmVCh-UA&)PSn)qCttJ{#{gQ-#U#TJJ@P`xoHz79F<{5p9eBp|Xh2NG|R$F<%= ziW#tXm05LRIcJY`E>@jTJ729jjjCI#?3x&@%D~VA$pBrx?>=bS$f>em)D<`U-L{Bf z5c#h0pD{jn-yCDCxSI$4;y3O8e*L6jiMPE3+Kh*&fnmur8W(d`wEn$#$e#?XuX487 z6(*E~*!6gv?+4sv+%^n*+_F5SV0zo6x#q+F=5+!>Xu7*KR}cMXHP+>O{zJQzb{Z$J z^^S*sLV(=1FF$7ChL}9Cxv_^Qcl*=#k)N6*{C6!(RD)g3zA2ao9@FfP_A9Sf_#DUS zd0rGBWDzie`}%U7#|7V81%l~{;k)62^4hsOy6x!eke6{3S=D_*=;`8Gro{T5BgGy+ zb9n6MhuCvoLY`vCzwT~Li~ktd8mI0KJXxLI&%6Ud{VhzN)PAX4dMQ%IpP<$F5kvk} z`QC+{@L9>XmX9&KT&BZCU_BK)k=;f@?Ce*oon6 zBOv!euVE%^RCZil97L-|>>1wG;nQrx4Wh>mb743;j-Pr?8sI9iS@p3q;m8vj3(c3~ z=UVgd4XO4g$Iv!SHV&yp@>2I;zO~29gbdBoUMYxD9={ajkz}c~q4L^LKrBN{V*F~X ztPq}sMcO(XpRJgQ;19dJ>Z-kf4i)zr^%_4#1sR6l|9|%Wr1!S#$`izX>%N{nDfSd8 zQC%n$jY1hwQR#GMp@16uJJ_&4fd`&=X23Aui3j$?fDIUiJ+Y@AB@8>OP{^htGegm; ziBL~U6h(@SNIsH}ysPdxXEndI_CEJLDze1L$h*n^yZ4^6_u8x9Yp-=0Z&G!_QO+Ex z5?xwQVGtW?-Tspn-^2H~UC7U%F8KLjPp)tuwVg_NC%>EzYOFgDAA_*$n+j7N^&Mzx z4vAd2!wVe=Cy2bL?SPCUT0bRSSZyuye6%eYR)i%^-E&*J6BhPc9 z7#HJDFx~0JA`c>9OQ=WSusKgH24}Je$HPik*e>V=wu~}R7k0x>LRL@?ChBG(`_lP8+kXxN~4QvW6H43%||W$AViiE~N$QE|*E3J%22viXoOi@b7xWgz5W zftd*NxX&2LIVC)cT@SWb^uT;XxBpm7G;PpjA&tf$(D4mAHc81|*?RX8%Wev|9KJ z-X+z!GRWMRl54e2%s+J>sOQLD9Mn1=x#*aW(UUv`Vd6&hApO|Br1?wEohA~G;d7LW z&*x$leUQLT0(A&*WdAEJ%QI`~;sUps^-sbvRH8}dZt6U@$cU4_&y&p` z4eg?vre|*dH?CZX^(<@zMSa0E6l6J&ExIo#b}yw=6=u$MwtgPQf<^F@lvoIUC`tEQ zaK30?8n9`Gl78q`fDQj?oyXw{EHE*;Dvy~5`8{R40WZI) z)r%!^ba4xYe~_NNATo&>8==ZmA36gtDkO@zC2gbq=cn_S%~FtSjrZfVhkQiH-+bR@ z0+gUbo7;YLbDK7i-Q$H@Xl^s>%T>{QnOj*fKnG@W@k z36Ov3pQJ}A;G{xiIOg+6fM@%+zS3aXT%*oou#pYb^aiL?RJ`<@yms1DsgMp?Yq!*0 z&ELV}T$0EPvLAnvJw)=yk4LyK)NP-xu@FR`y3>Ec`=MX?)SdIPGYS)*(nIK&4m(^jMxX{#WwJNWE};`}!cvKczTR8y`zvhV%?WySnmkNoF6Crvb)j zRl4IKVkVC}nN;&vhx86y>`}6x%+(t_*Z<--?fbFvv*1SN!tONJ%)Fq5*E)_TN}zn$ ziUd_HHU0R37?~=W2nZ$bSw_aUv=@Xgi@x+9XnkAp6#MSpPg2Igcg@1r)?4j-q8M^A zeN_%{i=8=tn-Aqb762!(p{dIDsPWNXY#)b1=Gr!$qPqhyu_q{+(gjTgG1KS1U0lCw z7H_4wp!5|=aTTb@DrNr6`2s_((R@z7+b%}hJ6_Tao87E99fF*2U5m^Qtx&Mq2Nmyx z3862NdXpGz$(qOqIiCF3M#std>u+~=TSb>eC_LdLbUN+dJt^x(u=dFIPj_OuPbc}g z>1l~G56LFxOLj<_&9}L~$_t$mxSGFS_qo0fR8z_Cq*QGGd04{!!>211TZ`z70H?u8 zJRHdRnaydplW?Wf&-}=t<^R`8`Vpmoqf{V@fQUn_|tT>z~Y3v zJM*HnGp9@QMRB9S63`W_TIuU_dZD87r7w5skU{>F`PvIQUceYPC6YuLFS8gR(icSL z!&Hu%G&A3{%$PEz!SyTgGUk-puP;^|7RxUAeRO9jL2LAmfyMZlE|Bq*L?h#2D{4)$ zgA7{3{==?lanhJ%vsNJtp>tZ{5uZ%#DYIXu1+~$}hRP>xqI8_K5LHM{r{#YltzfB{ zldgK+fbt>cyR#*@S8=c}WHQb()hHYyZsw?Z*JV(=Gm5Dsng&E_@EH6)k`H73ZS=Ib zuJ{nP|L_^glH?Vf;F7=c4Z7JN{*?}<`p z)RE%=vOTy7@7h0@N6I$5*}wX6#yh$nV^L?lDwxLF7Vgs66wcorv;Cx?HOMErwBjF+ zeDi~fiO;pq5LE3W&HjO50Z2M63X;yd(vOHn`sWNrl->>Fdab!uX|*#S%P{$rB9T?j)rZ{+^!np_FCaQx8mNjA}jmEpU8^o~SZwL2|jr>H!6PGA)okTQ)5 zyYdEsdqL81n%IA?r!-VucO{0p?{>K^=hnX9dRgKP>fv>++1zwYVHd8iD5=%cZ^#~n3WVp(*B0|p<=c1$4IR?0b< zII!?j?KqtV4Hcq?*8dn7I$L5KslaA{?Yqo)9IUK<#$#?JUowoFwGr*m<1L|PBt)l4 zV}?vjdgxQ;*ByjVjBsBMC+BnoHS~8}ca5}zlbz$cSWUbYPvlCA_C1ke`wb7^x+|>P zYzz{*P}VpG#4!@b)_%UnIa6DqL##v7K3e=1K=T&fGzD~!s_+XK>ZDzO+|maQ`{-n7 zZId{vS*_tBj3Ru+u?Z6#!wvY=#)sL$|BL^hepwn#;YzreM%e7xqW{)2gi2cs?0Y`8 zNJh9_-zNL902C_kydhb}^1b;^iFFcnPCLHYvySwt!F9gr_NcQZSsOg0Mo_hb3QbY%|Co;s^EoI6sqqnZ z%uTCKV6)eZ<5G7sv^xgR2IbSui}{vn$dS0r&HlG}Me>M%j;>9nYbJOP$mkqSdsyufl??Jw1 z9;(=RXkFST^k;wGkL~5kod3wZ>9o-~ddivh{kz+OrODSm_6V;9rz5?SSNeu7E-Eb! zr}k+mg?X9(iWrdWuGqiM^Au}4NIW`hvj@cZkeR`#Zo>;Chk|w%ITQWlaq6Sn#%2PF zYFb+8jW5mqOD82?<*Yd#Y58{>GJ96`381@_@>mu(*(L`Gm3>551Rm-3FNs6V zH}~a5(_Y!9o|va}Y&m);$k^agtOzHbQ_KiSqXvXbNyrgpz>^8yn3o-reTyK{`M?WH zE{5vIH~h`atsmpkI9+LgKP9Cbj&EC}9OB|m9N!#AH=AO-oZyamg$gV7Uj|O8J!$HK zfg}=9@D}mzUYQj!9OsfyR4yJ(Je(%2K6$#$$`81FCGpOA4Q!{Lu2Qx zP;g!2g`c&+SCSH@wxs|jxd8YG*5N2pn4shOmwxiH3XDn9V%u){LkWG&YQe3-6Q?yHJAg-6uMO2 zxcxW%3w;%ITVLlJH|&}s%ASY+R%buVgtlR4^=O@n-KqKo(-%JF1ZdZU&Q9y*r)|g(Aamn%p1b@`f?YI zPwzg-XpN*v$XDzSgFlF%totwG9XC=j`>k;t#1`5QWLxjX?n={J!*79Ap0}OwLr+n4 zp=@QzkF!1bNcJH)DWPKWR;HcQLffE8gn{DhAw?GlhHD)phGRu9lN;c5OjDk`32+#> zrm!jz?}TUu`I1VgU4@0x+zn|W4Y>T<`d@~!Lb<|7JJ;6#OmNUx)#4{gAD*uJz*+0` zqMHBgcpNJSh_~)^WTtP@`Wf`X8X4A4Ui&M~Qw6Q|Kj4Y+_)Ny=_Fq38*E*{D)&$lk z?SRdu=%vaXq41>zZH;dMM=__d!DA@1zO0_SK89n^5rl90D}8OwvS5v0(IB{vbF9u_ zMqO#Y3*d=8?3f7K)*c(VFNU6Srsve6h<_-0!AmH4d~8-hnxSWK8B{ft3dMk=b)i3A zLc6cb$ra4CG;?W#G@WVCk1|=(I+v-Cy#-AB@JEtn=NZ2l{jP*{p^tqaty@#Qa5l29 zpD9@nFa#N!I2_3YKhu^V6d85_yeAHrhQo~f@D<&DCnAbCPGq9ml1Ox28~lsI_qha9 zAEbFegbPuI*G~K&eQ6!Katg=}O0lOuR>$b7`v-~#4u=|tgY8hO{zbBU|k zUH&Ei zYKfbc&zkc&Hk@Rl2bx3{aCDI^s;*|P7He^4<)|=8RHSkH?5e4x!-Mava3p5e+#fm{ z3H40}5^fkbW52+>LcDZj*thYEqR+u}LXrCG6Eq{Fp3wVsmkn8sY; zoWr?jS&SG?{q2PUkxaaskTO4)f`=~#E*s*PRz+PEqLV~x>w{%2A|0d7)&GcyutaSHz9j+3L@@agDeySB`!`JaH4#dnMaMkS* zZ(Z+r!FOHWrcAw2a;8d-I|_EHD8(WAEre7!Jz9`9tJgx`wytW@-|!6>O1w-%_f-wO z*yl0~T;1txiW>AgJF+l<#@m!f@Yl~9;G~84)_4%IhvO(!E}iaX|0u`uI~N^`?u_OS zbo+OGkj?(>dz_V6qu6=U7w^I z-L)4RHwDqoQ^PP8CnbK^*_1E6jJ~ZUu~`fJ+m!_Z4AF-Yt&uR@6_& z(^vDFBq6wiU%=oWOUz2c_|MmWBaL`9j*Ye_8cov|vL8+oHkWL8%3%MAgsXB}H=X|A z2jNiWa#^7-A&}ufGkfXqwer6})c}xSv$PazCUOIu=IxvKv@_O~kxWI8H9)p0VoznnI2DrkX z*y!h&WyD1a!u^7jGSBSyj6fwl3PLN)P$yq+igTR6CHvT;h4nm-p~Q~q$0UAh)1e-F z4tNOet*PFxsBaGs!OOu*u~X5y$$k7=0f*x1=qz5L=&$rVe=L8jp$(`!b(f zi5B+Rn#e~IdC*JRPm7jVAsq4PZ+X<&0lC+WMEo(=mWVMli(-Y>Xmb;MX2Y_R^OvlL zIj;CC@r3Y0rM2%%(A0RdjitlEu`m?<{m@~3K$9CWF5nNjJU?%AqyKiN!(*E7;e3Jf zDtIqcR%U;t)t_&9g^kAJQHgeLT5!q7Z5`0_f17v@5wm9y>+{gwv#ei}@4SboC?Mk% zloP=^VVJBB{6~YN_4V-z)Z{wA`BDXjb<()wiI&mh zltbXeg_DkQY*LW|9t#SyJ79F+k4AA-V}Yi$D^a#t`g*+atR_49X26`5^$QqCBjx#m zXF)u}$+^P750-T1vC0cjF*Rm|fw!fR978OufxYuKA2T!6rQ%qmI5(!%k2yW=M4j%= zpCVh~J6%Lrx2rv5;yf0H=2t_;HdX*-+BhK)PJw6 zca&!Q1s(@IwmpfvDwH%{`ywGIc2mE!a65yr8vVFGRK<|&0O?CHXQ`Dgt^IAn=qh1} zE{n=5mw)g=h}T-sHnFGdijHJN=AJfD%tbNnM{`w4@}%f`%Fclz@e-zAgO4SMjRg$p z{7jMaoG)6|hXWr0n5@m+W+9uGWN}9yc84nC6sXD6-q{ixC&G)G`7V&m)4x>KFrKLl zB*SAqxYgwzce=3Ah)6*h-33!HjBD@wSN7Eh7C*x3}$|fa`i8 z`@YoaJXj!sap@I+t^!IVi9D%sWw(DiCn)_?nqXXg8RzaRi#IX+Ey!0gwZxA7g|A4m zE^p+E5c+-naFt{P2ovC)Nxse&c4sv{(zy)O?J2tq;fr>*YXK2%ayE9>f)`Aa#A67Q zkXw0u2qoCgvs=?lWH88Bw*-U1lskQvuLm0ICK7P68`HM-scKmD)_hv%TGOXENZKM$ z@CKW8ELV&=g$T!nGTKi-*711QX2mVsiR%QMFX35Jo$OfWL2OE#?v9sM{J^yEk}N_! zFpvNJeE96NS4{M==!MofTvdi)P58+RkdL>S2ilt4*%=VdQe3T=U9*oSkc0nsyy--d z2`P`#A4ZtN{-xRVxWAG8bJ{0LeINXh!HOM&>X^WQWb7Cwq?I>35C7itO(vqAY)P}& zXqYTnN#j7KRvN>gT5HE6R^P%F@IG@!0Na1|o3uUJW8i-Gfwj{)Ivtq!y8;Eo_#EHt zUD|kF(`ukCl?07W1MR{#sD#HZIXS0)QW%xaQ3+t| z*rAO@TLOlaxDc2hglECW*15QY*ul`6X*mGXGnapreT}ngv3glg4jNNI{RN5k&I#UA z1&?VB2#pJ$bcl6U%}3c4b_2h;U(sJ}d=caI^8b}d{L)!#7pL`peT@wK>0K9)Nj~Cq zK23!A+x>N0x7r;HJ@4bpi{&G+9OAVD4&dC7%W0EaGR&pc_W~t%qm-OI5&}wWw>4Q~ zpKWvGCITrdvifqq^1iSTQe6qzv*YV*Odl7(V!Cbq1N>b|rfMiVtm85KW%8)XX2s{| zK#_MfrGlG{9RioKCrj##{}_EsoRe%`Z?Ht2r7Jk zqHA)GgXY=XXCITlD$ZlF!PWj*>5z62F?gN}^*W?4==rhK$2=5q0>~GN`BXW8*B*b5 zQRup`Uc0R}oHoSMPK>s+|9Zi}ismu#bwam&;*r$DR|>WB*s;()YZL?@nObNx- zpA)d;*idx|u3IFCqL1jhxgBHKx#N5&I@)l#Md~ETGZOkA$(EYgkj`emzl!|r^#ELoF@iIUF~=gWZwJy zu6RnD^1gMCX_1yE{T2Hd7Ygs+A*`Ze?EkvYL&#vCx+Nwa?VpbTs` zN1!otURlDhL#ITFi*bIlM04?^Wu@u1FCwY2aN^-6SIkxlyGLIoF-cuGseesmr9V;- zuSu8ucQYRFCMPBmI&ZRb*~dDI(dG|wNLp>-R0@`rgK3}Bj~kq$asb(Q(Coh~X_|OZ zSCYHLrB=(w;cy5X{WR%R;0z8P(7w~$u`yv&g8L=v%+X!ic!IURw4pHnpu1dukWr=W zB?vdt9bukhyNgMgp6IjjDFUlB|NP?JjYUVh1=)3P39@e-u7n(&ED0hd5n;cbb{yUT z%{tKI2pJQg%wl&v(tQk4T}&;Yq55G!JPpXj0nM*xr|p~vq$}m{21#k(ias_N+5c$#DEkP^&~NKh-+Q>N6;d1@bC}{hbsf~kKsGM#<9^t_ zyW=hKf5%x6{ON1lCu*bllMM2AIWN6`J20TJhnG&irw@p|5z-!92hw+L$CO}j5+sCU zU?Zk7c-!!aea%cR_*~5?nvfrMy#VQ)YO@1iSX5XK?0mO@#8I0c@3QFzf{L{8V`-R% zD$(MDyPeG70;7E^$yeL?J-s#iNf~M3sjv+h=)kc%F1G(Z$BYK;@L*Rp8^{FS)_>}t zT}w!Yf%`VdU-Dl3M&p^#`nc^K+(uCRg->&39kY$!9`UuoOxKxyCskgoZ^rb811BLh zAB9BgZE70np~0TTCB+vXkypkCi-;Ds$Ln?BgocsSs#s-bNrXXI-?eArs>Ll?z za68WRRoo{Z)Aw-PQr2<@g(EymwQ)QjZ7%Qk%9`7q@!`PafMp*ch9G=KJn9dcDy3VL z9cyV!?fd^jg~#*{`!VAq()`ofP}fu;d}OmZzZ)v!wZy0UlE_OQ^NAY%_%8MSnsQ(E z?CD35IzqCEw%{U!>p=?5;`{#~io9W}Qw@Q5?KGNQ@ADl|8$flrP&~Ej>Z&8eMe@hR zHr$u`;{(HoOFUM0g<{33D2mwpLNQp8u{)@}_XatQX8*}w$IbtQ*m(r&R6M>8CV(Ty z|IPL|PB<8jVZ#SdRtD~USZ>w+$?hF*^U3bR4&r&=ENnS951i=MvREeqiTB97zBoG! zkEQtdkQ8k22`c7Irg&`XCDTAb%)_m7uPEr<=jf5K&S~FkPAfZ2X@o|w3x=IZggG4> zp|P>w77`f}f2hvE7JALODj$^=nv#rfcvQ`(N!DSJ+Du+!ep_UHfh!vz8!_QW~2;&+{XB4h2u-P^A;}pE@sYhwsRpLU$8ZF$dy>P}bG?vwB|Ctn{q8am$OfcXAMc?@RazskdRs#NVX;>uE zn|_ysY=#~IkNM=mK^LK->Kzv+B$sutJRG)gz~#rmbejDdT2xq&2pXN+;ac)4ET5l) z&)8J^hvs*QMT6X-F*uVRB*RhfR!HLg+5Sa}47cg3ergJ43p$kS22}@1-|Aqcq(Akk z+n)UH@C)CAr=d|2i>~9+eN0yj^Yt94c1l-19*@I9QEY>JO~4HyNx?r|oRkj`<&0BZ ztH?pooJZCdYX{rl75RnkBXlz&NYZ=m3!hhswh#^33^1%UHaKoY<~U=s{|&;;!xgo) zIEGc80PIJ$U>9Vk0WsSkPlv089|&_b(!y66`rz``7-EQ!Qt%X^96+7j)-UDFm=>ET zCzkxg3Gj{cD+J8a?nK4S@S!cc5 z1Ub;13Bs{>2W2EH4B?fR&(NlI%AXm{AX#@*m5B9Yw6T|9g0y8y>ECTk(bF>dsIz>I z6QE3v|4oRYesWjZciTC|mU*}8+x9^6E=+d%&X6Xb6XI}r*R`llntH60g)i620O0@U zWNw!x|5f%%>T18^yThC5xd6LtDn76YOdG7h1|Sq_I2r$~TKFWy?AVK~wx-j$s(ZMoJ!P&<5pxU8A2FK{o#BYvnnp-89&Y=(?RekUuXifgv3Rd%*rtMGePNqq z-80?{q%WR&yD}_s3}3rTvjBaOOw4L*1Zq;~kMqT+YtdJ2=Zan&n-6k;{N42oBsY-~pA?&maV+aZxv-I^ z=EtZ}e}`8JNgy_`jhd5W`&Y-!Cl4A~KT+0+!10(mjR~7Wf4%Q=n%20IAC3MRYU4Mu z#NM+j4>OJYmGHjB?0@@7c`Kj9KpYM(6XIi$>k*u5OFolw91f^)v;hjeNG62{U8b}i zru}dI*R%fEv;)c-prLQuyLHk}X_S@I9tZ1XBF3iVfZCbqn7vINE5FRALe<=IR5(#5 zq?||H>IAD(D7y|lJ4db;S|8tWHWM*#7UmVIs#Dn+R~Iw!apOXhis4SaD?puJ-A`+u zhm+uZ%o8M)1`I8e+2QsJ&L<_+Z2?VBDowc)eqD$|zJPKuO3LC``6_iO2`m!^pP%b% zCaZOQ?%rlAyl|0|qUObgwI{6_;b*;{SlAIeLYdG)3%30>P70&XGEEm$3n8o{Y!ZI1 z=mX}oWrCH)#uCs9YK@o$28;=&K!A;lf6zr z^mqJG`RK>#2hB}yXq<%@qOX1Pk1#9P;2qCahY z6R4v3tVBj*dRi=t57!)9wYlEmSml#A#d+ctbyRfoM;#mRgo{wAOrYQ)^v)4u}o$x^R6ucboS~Sw& z{{&1SdzI!_*u@m_N&Zd^-ZnrSN5IrLP!m}nbH=p7?W`F{5?bSu2-1)`;P%sal;?!R zoN#$IP3C|%Guq9c7Z0JaZcWmBi=C9VmPX4Xs+AJfqKE5=wxEbF$D!wF(h~{ z5^Rd|LNt-{Ocf);<@JhnWI(RTSgKkx>_o+Nw<@C+=6@jgPp?Bru`bte;H{ zyhu}LZg@B`vB@x-@4ge5tp9m@N}7(e_(_=_Px%+~5Y~I#rFHs9`GgIUkQv6034f_h z2A*sh))(%^g!C!SHDwef4iylzW|deq<|btbnC|u5fM$>j3T55O!m$!5wq6W+yaSZ| zVj&2$eA>F+e2@hM6MxcD#;h#o6y}^#nLpeUVJ0C_=$1WMpOZP;iPoXx+;e^KbE;$C z;@8WZg^^$d=E$}BK0BfbSV~ZkgcS8kAjQwrK_gYJ+J&#hz8Yg24%H53`oPXea#11g zEzn_HL@vD6u&vG7-Ryogq{IZH??u63Y~hD#jg>eCk_FBvFUg+b4v)`P-w9O zZI4~XEMA6bBkg@$KU0MzVL*$!_gEnKz5Yq+0LA|ss6*8UJIA!UED-Agu?w{CRI;ZQ z|ASebP?GmU005L=Q|dS^K8r5&J08h@C9j=}JpZt-pBl8U{|8$qB;R4-{D<2OW2Iq7 z>5j~W*zGAI|3SRBlNBgPAIN}B)9cIPi3ab_cEDZO2giOr z>{vseIj2?j`eu6y_TlNz(m5nQR&`&y&hJ2Swg>6#26$fwG=Fyp{6e?vpWrPyqqs9J z?$U5aVN;3JCrmgmg)lW51847dfcX(7itV3lMi73)`C(dPazPn$Ao~~QN$`wulFC>m zrhxbVWd93aj%dr87BGYToBvmB@+_hqeb)N*SPPcK1_(V$F7p+JfsoBA&!+|c+K$Jm zzn12eGOr0Y5V8?iv3{G|*Kck7UCxy^+KCWFe2|T0(wgijdEN{r5p~7QY5n%Rvmfw|*!d%F(sEjbnRuM(owCJg_3&0z)#h=AR_H$1 zaw}36$k}4A)sCc`*DOHH3TU1{@1B{93&zQmyJdNDlMP{fd`u~Vb@-}X--j_M;ZcVb zD@5Xn>NEwZA4+rP;)lBM5FRM%E<{&iryi})cwTJ7iHa1yFwW+H)svG+Bcw};KZRCT zE?RJ#`6Qnwc{CQeq7V?PF)Rqmr6mg?*l$9#*cT2Esqi(>H3q+pe(~^C3(xI%c0jxy zAWc&Uelyp=+kiOi*zCk&S8%1cViXRmRNUif&YLCjl+}?6rM%6N4cT1^myRvkI}p6krG7P7zfX~|C?gsmxfr;st$3i>taZ~Ef2vJUWml-UP5 zPv&p@sLCYVnQT1!5~G2-QDB=8PS7P8Ok!^ofAkYWUnLZM4rRJ0V+MNy>7_$0e$yB~ zz!JJro((U3usPvj9A>gcvwx}Qcz8c9-Ja3>VW9BMB?_7^G zWMjX2Qlh2vj zYjT0}1L+TtJo4o0a&J;zXic~W4u=sJ5S|bsC6n>%Tw;FAaZr%Y=vVyvN-KFxLa;%% zlK%KSEEDb?=YhI^0Wb|p$&be|tz_qMC4NchVft?yYX1aZoDZRg&bLF@4fy1-)++cqMJeXgMefk%C7^bXeoJhk5$MZ2~R9afK%X4Z3w? zqLQ9T+ZI(*%~WE+yf@}hwsr^?5tG-S)8W+urF&j<+#5YIgfnHnL8g87#ve||l!W(P znk{(JHr8qhFXg1}bnIQAbI>4zGt2RGE~m51+D1|=VAOSl*XQ8`zLMc)VPmc`(`55b zPx>aa+~1F}PMEf8ALBTC|45og(nogba=CDSA5%Py zRGfwEU)g079T8Y-jw9PCI-ax$-}nSiQ|DjOm-sV|J}?)xoIPc0xFlO? zOSIut^h{!zMk$W1i~NxkU5j0T*B(08`78~$$}c5-&F`dF+Z{+q*-IhJQf6eXAp=F| z9_X}hptOBAwhuJ0jf4%gvjU-W+g($zpvMC()~oOl$by>dN${9_>%ddOUuX`;$bC%F zLGuwe4_6wj!X5K%6lW;W0rqFi`0cz)Gyn_n0fHV8KxlqRdYNV+P#%n%!n$&A$NVbJ zLez#)imdV~5k%Ni(H*iqj{}`ksOZvkn!c){VJRn`qRFs+HRTY7PR63tr~0zgeSg8S$cU&5 zjr5eyv%eh1ktleaFpNfGX|Z|4M8CVy=sv(=|9;wJ-eMbG`z8QtW12CUudkhG=oxtt z2Zj1-*rV%rs9@+q16F*)zWp=m)!eN%C2YSkDJsk`dX3 z2F;`gwg9I*HE^&^XYg7Npkz9dZhwTTFGcQ>&DUyQ08Ku@wj;&pl0KR>-}%i6U1eB~ z4)6VJ4wv_)mfh!VeU7w#E@!Vgoo@el9{Ca3)>k5Udl2T(E30;iWr=sN~Mu}aGJQ}BdAz^{Cntx zaU(?Ldlt9BL-b>9kEE_TzB64pgzfXZ+utG9zkunU&wYmpLqI@zond(CaYH_7e@L?u z*Kg-7C`QzLXW=AvbD3-LGm7GiU4bNjt`i(mhU|K z*N#Vew~M<)mWO&@=E-{U7(Ay5V<7u=B?MzHdF%vN-Br6YVw0&%bUP80Ll!y3=2-rY zWdEUb2Pt7&;OE68Ql26+O%?==oqpsT!oDedIN}{Dt_LL#XR=V%!Ik}o^wCF)bNKOL z=F`@%YW|apAI|>rxUkeKx68H2aip9EF(C^(jF{t>@>zZ5;ZQ>_iXWAycA5Hnxr*Xp zJHF1rciUu#jZS(DnXjcbXDzNt@?WI+1ovA4pp8NDX8Am9uqz`t2u;2*2NbEj+c-Xd zWQ|l!BA^pk(G68naLv!JN4qabHJk)540E9MyT}21P0hn=-R)%)nZT2wVX2*=*wtQ%<(#A4a54N*8pYHK!n9rO&%ia%8TUnZ>@V3#i3nMp&z`66wH#bTx z3F8qglT#dEpM>Let;xwKg0wLt8;q@ZiuQTF$sFL=Ph@UGnHO*UW}D3JI9U#Eb0}kq zUm#{xd}Qp4oJ!A-sNw6($pe{4hsHa4&gp7_H}PNmxWd>(W?(5kr&Ce@3R#LYG z)-{o?7v1fOZ*ao?!S*l6pq=QFTqWYX&P3|xE%@;92eSWC1!=lnHaANAG2V=YjTx0d zhE^l}{>jCLoV#`mUPzj02?n(BA2R3y^RXk$_V2~8;E{~J!ueqbfProy0@zoXjFsjD z^BrXlpC{%cS-|jHZtK1#SIX@CjaL-cP3N36d`TA(>$}F_!n1*Ho{ambeYjn4ABr{n z9Iu@UV8-1sNUq<70Eh>b9nWBZ1Oi1?%sAssq0w|B;qo|%e(N+!ymp*~X?7m9IZ@Ge zYuMJmq_H+72bBdncUPu&MgHku8V`pi=MQQA_WigYW?9-2lluD`-cZbb9{jhA{e~=^TtuF%}&=ll)_y>0r(^J#)bAkT%Zqaa#7|A(^uN zp~mGLc90)+`^_zCcN(qbWa;naZt;Kmg1>8%$@gzIEDPjzzVq(iODZGzp`;xe5qz1{!1Kr+1>gyTr*JElZTYaHbtth}YYUFGj)(z*_vuU!P19y$J zT@f>iC!Bg9a8TVtp3$EcoN4W{Z>ANt_Q#MSmYwHCLsw|=b4FSJ%7wKfAP5= zABl+)OVv{J6JlcEmP!C$jo0_o93*Xl<}{aySeTAnxHb({lAsdovH>Uiv6991{vi^y zxDN%%BiE;ersew~1iGHz9`_VB1#${PmSbGb7qBY%{}PTc|ARk@qT}Jtt_FQtf&^{qJnHh&>0F=m0c*f5N4qMa7EExS1dL|Y$!;-89=8NN!>Ib7 ziD=nFga+h>kxs|j$o^(F7j}+q3PsN&7W!y-@v%`KCIbTRy~M!Y@jbWJH;QcoSYF#D z`ustlLW{+s$q%82o$$j20!9&)ib4dfC9bRHRoCMZSK3t_ilsF48$K|JXmJ~V z57Td5a)XO0HT}_0aGtR#7Cr}3AVamuNN?hbU0d_ctpBxy3v^%DaV|V+Cp(rKyguG# zjI@JUxFM80bU+0yW&2ML)YdEU?;>^W6*ONW1%;+@rB5Hj{iTiNd3i{Lf<=dkwvaO` z6X;m}mhi{hxV|>>`r`<8f1l^25kdTva;Wr+VLPmHfp?!&$?_ zG=2#C-)mw2sH|r+n;vAc8AZ>Pd%1)3K?X-%=>x9rGnI8m$8~o%mc%~I=f>E;vrR{U z!}&FTCoJWfP}`0z9gYElHJ(+|t=6Jd8?3|nzkP`5K1flzXX164#@RO=Jz1J49cLTd zlA#$x_-f2|PHIps<(=40yc9nVUip;Mn8xz(G*=4%$srKh|EO=cxq;IzZc-Vj;B|sJ>wRnPc z=rJ#x4&R})H(llAx_O`rU7=~~K`+fAl0U3iz5F;_IRw4y6o&&SC@_5?pI}t@KIGtm ztX1ZOjfgj5M|OlEH=$T(`*x%S)Ds&1J2hXyi3M$+hj(6mPzD{<1~ma z2BQ0Lcbdko#vH02Gh;q>yvbmDvKaw^&e`F^;qG`<^2qVAk)mDEz>E3LE@NH<*v0}y z`IKZz<+gC*lSmH~%#O!*+bnzjiP~g16$G}Q@hyJuC(0|tj{EUgbxZH6YaL=ms_4TG zpY~XkoBcGkZvVMJCLS!$y>WFO5WI4R2^!JYjAJ^^Lr24p3a7k>H5ZzTd~cjQR&9a6 zPU}Uji6V@Ejr|P zM=mN*A`I8Dx!;l^o1v+{^QX~AcGG=m8%{IYSlQ&rg$GX96#h?e=B1|uo~Ba~GAvrUVuNr757t32PvF-nvi;`zFB#6n ze9*+%7hE^b8gohg*mXoBo6r(k*jZ?P{qO1Z^z&mRd zdDqJf1-1|6gWZX6tY})XJ!jt62DVv=zP?sg4W7ghBJI4QdV4J|E)=$D!qwyG;9@bw z9FvK}!ieyH(S%i2(l3^gJU8qLV3-fgn8}m+f?DKJ@|AHsr;k~}WSUN-Ta)x$2Px;O z{eWUQgGqO|IE?gbNuRHU9RYV|Lbe&IwHZ$zQm(Z3_$rGNsCF&Yuds_{J+0n+gCnHZ z()>m~_FtHCf+BG~)_;|JM2~Jonrcr7-?5B7*d#$xi=q7SQD_`;y$D|vG>}x6<5wi~ z_TX})z2UguljyVEsggK5PT_|f-y>a+ZE%mIx2v8X>CH(VD+HcM9xVO(BedL82;HRv zDY9^Vh0gt>X!c_kyn_^n`fBvYm6{aWbUFQY%T)ceuhEP1Zd>+y+vkB?00?ki4f*Cs?Xvc;I z!2#)nm>RI$TsKsGRZyJK(rtpfYp~$%1eXxpHMqOGyE_an!JQB!xVsFl!JWZ<(7`Wt z>p%awx2hlZ!>+HshwiTK-K*D1Y%Tq~!k)c&@f7pjSc|jNzqCUYL8?$Ga4VW$0lpo2 z#Az3Qo_6E+JZYeXJc?N-#r+;n(=LE3P%2Q`aJL*(XFpEBdfjT55*=M@qrcVX5wX|9 zy?j8ak^R%Gu>Vo)jdxmRne}U&;*}YZVGmDKktuET*YM^0s^2hof_aAL zCyONJm|1eT;ODQ@8#+7n-2|k%Q2RzmrU4h3-R0}KX8NNj%GW=~J8R#j-s3iCTFvJw zDm?9LCZv3!43M!Dew#=j1{S7B)Ni7-dX8f%S403KF6@85TJD$ng*foi~fg zL;w1>KdlSC`w8CVDdrqn+gIQC1elwbm5H`|cUEFKW#Xv*eb)RL-yZR$S$gUT)h)=} z!mYve55hBe;yWPMs*rfPw6DZ|w2O`+p4CTd%>#)kFm*%X^ffelK`rDGsaKf#0sV7hVK_*b*u`oX zz95OWKkKzC%kf}W+3U3PWdJ$}?RxA*W@l+2kdWZeI0GuYJ@!vHTIshDebLB1H}}?K zhRfltI=X(BW1Q&(=g;xTYyl2pZUcA%_dVUQV-yvop<`|4t{}%D*Ai2}W{}^WcjZL# zut(0B2Te=-*cX&^zTm!w2{Un4%a|L-jmJ-(w;+99mRqJ08SPs6l{kh0U3fSJL9*c> z5DN=ii1KEqwElHFMyz(yvK?K$W9?9BK6|G(i`zBth=b+{PN0e4Qu=h7?UC2ws+KeR+-1Il z_|VzciLJl#RC!-~zi)fOsf9b1jKJRGJl`rev(P0WQs6ZN)owb12mSN8HVM<3h7v*J@=e?T?q8=CR%gv1Lv0H)^D!K zdgqMeu~BSY(@cr^82e>4ceN46ja5ydlOf!8dhabNDc*jpL!4m@R((^zL*6Ae_E~~S zywJ0AG3|j%YXH+Ss!D^BS_t7fR#oBHw`FR`lcy)1dka;7bts$!*k9mYF#JYdImb3fs_5;QE?$moxX8Wr zL;#Q3!{Sp0aHGa$X*TWEnS0ZS`N1UH$ig$}zDgOTWTN<|cKJ9!OcWV!b-@kB;T(>- z*5+tXn?dWH^s3iLBaT(3sG2J&#^Lu?Y&w`&_ljPIA4|V*pbr#bvpMXibJutcbHs>5 zCc2&mzP0FofQMslCZ4St)GX#m^Tq_{qI>d~qB8H+_*z6-2tnY?Sjz$5S6(~T^OJ;c zaldmJ%})OXR4JjYrfk{8%`h+eOgA314P*^@79^#0GLkm`A-*UJou%`txXERuyXf7_ zoip}eBz{Ks7gixU&;R%+7zOORn?H$3Eug_zmfpb>u9>R}HY&df*Z+N=eMW z83b%F5*LO$EWR%l(mJgOY`M`ailo=w{wPy)k`Y>+7h}O-J~yy#TiQh{bBhP|(E!20 z47f#p2RP@XXj32oTGp$@$jgjgBfuS@8o`-yic0OZt9yO8aH*`_RG8z9Gco3~*HI#| zG`yq>=hQl0I%l*JzaXY_^qR@m|o1l!th{4q#vUI%B5StuE$fWEjA z)5^|XEb=49VR52FIo=3a}r0s!hFvh%ZDQtHv1!X9OXRZ0(yIQ{+ zt-bH%2SC4Pzwf_8<@;Y~>#dgR|Hocw)~?v@r5%QcgIozxGZU+*>=y>)_aLziUpY3) zA&ytVGs8gI`-eZNVQJlI7ej>XIu$N>$EoeJ)dHmmFUAYRd0S|Mc@8pKKD58ay$6ZR zWVZPL{`3-G-#+dj=n$3{Xvfp50vx$y)gM+r7=2IZ!O5K#8yGY9ao|K5tiD2D6)UR{ zmz*2u&pq}9$Og-#)wFIkG?NHd9`HXa8{f4!7RLoF(I~8*c3S0K31>pO5k~ulN$3a< z+v`&BlZ0|J9uJZUOgb#mOW3WMtt#@GesiGDC1kR(JjvuzoW~(SKi@RQbJn9VXJb0v zpxrV|w)qK2D^WyESW~=>=kyRH57KP0&(l-K?nKFCow6`LADvOXf8AOY@ZpexZ&mY| zBgyNlqmfZFOnnXBCbc5|Yu`!VV*h6|&C{>@aK327sPTN1*P&qI&K@*6D(%jRMR>UW z7uM7vtG#nn2RWgkXmsOfp0i9_yJltU$OD!2rsi}Gg{B(M*M|-UHxn=5fcIin+q-e9 z!fqO*_abl^U*07BUEUdn05NvwK zNat7jl`>;fV~~y5yQ?`N6VI|SKfB6hY-@DJ>+yj!rZWa}Em)7dvF1H}y)-DfOrs-Q z&s#gny9N1ieQSR`fMqGH9S>jS6a8sTzqvnkUh4OQDi>Z;j^m11m&um2CtAKw`^s}^fM~&FY>FT$m0IAEHoyf z4evI>yMNS)=KV8ptO)S1rN-Pdrex?qCB6N^^MLX{lk~WtW!~~3!?4$ePe0HI>^hgf ztvO4DowIx8Xf6q4D>oDGJM7&^*Iv#|D3#Rt?vP&IXvO=TT(=Q9fOR;X53K3X+?nW zL(82;Iq4^<`iO)TNx-$L&b6>$#NlxVULXt2JilBjeXf@CmO*AZ&*N;{c?zdAAJ1j2 z#g@P6ke?l2V(${>DPqv(Q)@ji)X~7T_8ihKKSq-c%qXdlv{9}LWn6t5yPsux2!4oI zPE@w>N_BnZ8LlfZ=|@`4cl=o&m@v>jkm47u9{z<5;V~rSP_(tj{q6y+T9bwHK&@#q2-Xi6 zSV0c7T=2`A#4y%^Q{^wvzJItVG9Yr!ykh9Q zYa&W%28plg>N*5IGAx zc+0x)az0DEy=P0#_gXwLtZv4Ux#$|pI<&s0I{2`H0lz%Sma5C>IEvLg&dHcra2Sjp z!>zrOF;e+Gu0EgNTD|Ydg!Sf0q%66Xs3o3J{Zk6VFzuXSUElVfO32}7L9A?^v`zpb zzpv6SG7A`%FgymOE*Eo?7{GP8ukOC~T&TU&lBv9GUBVl5<5<3>I4TJ~VRS?K8(Q5z z@Y3gV|7!vB=gP_H_sgHQlvn!NH4_vFWJ6eYkHna52Ali2Bl7lYpB-QwiRDDUyNnk! z7T+m+wVMCK4Y*aXT0x-Tj`S-{yTl}TuvbggL}HjXZw0^c*Ss{LZ&5hIdTKsWCcvXZWD>SZ> zr)R{<`{>z#W9SXiU7v+=;ux0woEv0p@zY#(Sww=u$=WBco}9ICP-`ep7AoEjyHX{O zU+$tdS$2xdZ`PMT`QisoImTR!S1`c+N&8L*kb;lhyfaheFjc$X z9#HD@ne^g}wAf@FcMZ8yOr)U8!mBjl_DLZw`)G;g8*7RHPA%Ap) z39x&U_IwXd>b$E#77}7Cwb*AKLA<>w!N% zYA@CzbqkJERl8>o+q*W4r=hJ)RdgY`$6b{ z#9%_uOZm#(u{-EU-v|@nEq`WSRyRQymAHk6vDX%l4b#vc>m9X-0GlM}+Rh*+$#3Vw z;BZDz=!qgu^$2h6y60oq12f!x5%~hS$mlgu$Ai|qqv-!qLW%^klS|_h0cGKB)P+ii zTi^flH#_1ktBaoV-lzi#jqA1j5ongX5IeeDKVf&22W7bjEh+pSrkR{PxEGhvL=7+u zv|i=%p}$RHpiV-OMCK>ptxO>sbBiua$F2mO-psymv$fy&wAbD%I>go3osYoZs(q0zi+JdHqecn$Ff4 z9{;iXYzKIBqn0jW*t68shhfd(mEdz|!aY_QaCbF>CiRW8Q6_Y+Am$=ZC|(#VEV&Go z$=XoHk8usg-`N_WeZEmT$}0iBb7sqGY=++j6TM*8b<(x2)cR9wVH--ypx2MAvbE(- zh(fy4kiHaeL!t1ZOJIItmQv;!99LH#ser_XQ;fv~IWjqYac4!=v}RnJI4DA{)^e&$z!4O{jW`k|Gd4Oi3HG{?t4j$1Z%z~Qa_&-%BRyDiiL%TLtj|b;qq6oMgL=dlk6qaAVW2EH4i)X}B?g2xV7V%lfJ6x8GmEJe80fC7`hk<3cKvNVygj zVZOF{TvKcAv*psJlp!{QmM!mNzfwpXkJ|i`GXBu%(@ea&%v-*D97%^uix*yg8LJEX zwlm=QQ^t=OF)VhY#&7N7s~J*DKCtpeSi7nPN6AOExn_TELT{A(WFku1o+?o3h&oDa zDLCURsny*JELjR{e~;8)Sk%YvYZR$^6+-p$8}ocLU=2b+A;4|A>@Gm8fnrbjO`rG} zWhgl!0-q446e<;a046>}_aXP}Fy511SO?vmYvQVyW1{<;&L!nRPTV0&vGAy(qlPTC zFx^LMF1Zru0KX=(m;d5W=yr4Sso*iYEO}mIIIkl^;#am?v8A@{Hcjc);BqQSa&m<} zH10D#n)@?Q`jU@-RTG_d+0ubQv0eTt;PCe0z3cOfBN^P=%hPeo_8bfIYV5R7czK>5 z)PLRE!#ZD5!0QuH^fz>?wF71-17(-*bfzOKpKZlD?Onb4%-S(EH+QELAHp)>gjH|w zc6qOIdFtVT&JTlfFAb4oW5d`ZZ=#@UAuOCnufIX$9NQqH&KHgqU{%Mt7kUB!_qQ%R zk>L?%=S)gPXQ79lkY-FY@$Z7(X9X%2K9-cOB(JCr^sq~fAL~hbGAP#3+jkIf#X$4w zfjlw6W!-nGb5Ad)HAJtmb~ragHK}bve09>RQv^5Ay-$B`30w z^*atfJ6>RkUp!D3e9Nz^K?hV<@_diX-QwgLfn5bdX&smfAPMjr4BG~<$W?AMl~847 zb;;{R1rqU(nfZGNWL!MJ{~E5lZQ!5l;C83{#qy4N&)W_WSMQM?AxqOMl&|;UK6o-d zWYErv^1_CqR5SACn0GeGf=wSgt*&c^0ddy3yol6 zkM-E+L0~+ACrmh`#?Xl~$N{L{p>VLe9JWS#=BS(KQFZFHj=;aKAI^3)m|S+UiwLE~ z&yXczO)CKgU^b{)LO11}oO|XAPzmv2>2Dwp%C)>SHNWtHLA!*otPso|dL_NX@k=h! z-{w1NbbfNLwYEl%WhVvj>P=|k6+?4iS2#y83pndJ)x6L?K5l)Qkss9vqdqrIrAD(h zPq@v^VzT+GGe@shkF0q$;V@Odt+_1JxC{9dtdc~YwIt1^+%vY!2v@&XC}zAPDIW0m zG*~kIZCw2f@V)$Z`R?4a`wqcae3<&EqwnrJ41IR4-?HR78vnhHDR|Dk$q`z>9fg3e)gp%>NM*fNBb_HLL3?D- zeQ17QWMVe4`qTT{4zp8d=8)@hLnn1CeBBCO8U0o1<5)!M?Jyv%>+gXs=$Vv{lhD0q zBISXdoV7ozrL{gKtH4bPuab)F7w29*B8ULgOw%OW2+nw-xYL$(p>|W~s8LFS`}_$` z2uYywNZc6{``0c)olLKZ*_yRik^>4XDgAAlD>hFmNLJ)Ct#Oy|f;T9j?pF^-o;BS3 z;}=75UhN+Jps^QcB0if^`}^GdK`7U0Ju`sWbSG3HYQZKn>&o6Jye%oQ+?PD93>K-z zes#WjTA4E{OCrik{-}sNLfU7moP5^L>Nhh_Z_Omik8}gAMDzl~N(RX6$s-a=#(BoU z$xuIn^tZ|mkBEGVaZK)4jlBKHBOqKG=?p9_HF|u|J+Hh$;aCCj8nNP`DNA3>GrwA^ zIX(<@k6=tTe&yHR0XCXsjyk=MQ-2z9=gEjn>fXb5dA*$M`h!)Ykej8dyTgelL$;Sd zix*vl@#Ws|*c~eBr6?S;!GTtHDJnMe0D^<^xHBVB_*r&_0PmUw5s}7H#~{k?P%Ty` zF;<-vi>8sMdZ3G7_J`iTY?;@Fn)kw#A7i6j=q{2cWe?EDNeNR%Woq;y(ZZPdiS-wH zcD-bTBA6$t?0Exi~I!J@;Y+bMCApLx7NgE za;+5v>^qjlay%{~(g@+0#Z5yo1~p~El<7xlsi(y&J%KNN|9uGzPzJwuqeBQj60oT+ zj>E8sa2YLUi`drW`9}!?|a8 z;J+sqlR{S#)*|g(-E6&UyEcZ-`04{z&OpLfm4n(=J6=Hhbi6AjxA819>orV1H+9{M z^YW+kheTALm81I0ez(WA8f;i8@)bzK@saAP!s}=N5uijgtxsvk=LDD`MUm7YAVEIyrZvnY=-TF!-UAZTqwO(Wr&Z=lVWQ?I1KX4B))1LOJ{eeDQ5@bsyy+IQ; ztV|9ao*qr+gh|4{w}wH#1Hkvp{DsEol#zo!2|Y-{$?Q!s-ZR-{Qx%j}%ul2NYd_+- zxBffJ5LCCS;%-g%X!W!EkRy4OadXw5d-Us7MkVbDdb91`VEbul_PN>^lH@7;WHz3D z6dDC}6xg~lj~>kaNi%fxQ`^M{_?yBkgRDrBVkwbmR?|u~8)1+B7Y`=|~P9OQ|20 z*AwshTbR@501}Ed-O!eM>UYUGapM1~`dwY1z{^0pHm9~Ekm-c0-2OZ3;4H(E8;t#{ zIkY;C46X*dv0tW})!a)$kIB1$@P^X)WN@?Q@iKGZW!~GPNNx=0`yJ{>YCdnS^}DbZ ze9Hnl?K`z~o&2{^6wYmyBp;x0c`a-M*2k-kD$PX5zasgMT58>Fpx(oFuQ9T>*>k6Q zj+<24T@lqwBLqwN=M$DRR%Mb|Luc@AsgS~DDjbrdFtL^7gt$pTjQlFR4Dvf*M@73NMl65>8A36 z`Al?I{IKkqH0Oj@e?4t-d0&L=n&gakQDMyR)YFZI*7e{C3I_hOW(lWnl=P!Nj6!#| zOxrVs4-LoeeoEWwi`4i&TF6|-dgm-Bo7E-V{x9q{@jHD9Zg(8OWw*cL!E~!{h+0lY zT%?pQ%xTu68}f}Z#$8c&ap~10NoWmYz_=x-4BtUkTDTZg-$xI;jU#m;O9D@E6kaBX z9b8vNgwev>tGxcY;7lD_rLr2=H)dSz0LO8K^f82n3tBdP7LdID} zDHRET8@Om==>|)_4{%_w0)?9D*%A)gxzbA~37ZE!mJLPg)`z8>_?5(PqC$6hE0Tu5 z^o~a~D3=J)t>(Ocj7PXi-Dt+lB?=Zb{oMnh6h%sG3(@C~MKz6g`#wn7|-Zo|^Q@ghX1ugY=Ir5DK=#59T9`oOk)qICH;4 zPK>8Ae{iUtfCKq4(NhuO(=jGD&5PXNQx|IppXAxLur+pcpNSVER?{PQ-?lEcVmQgT zJzn^?%&$oVfUtork5hfGRJx_!Nrc?evq28|SxZMXC&wyvw>D_1` z8SuYv-1@8K3uxx9Or~1K@%*1yDpOJLsbgKG6%HJa zg;L{F3+%tFSui*M$u)4iYe_v1T?BHf)N>fYkt8s3kqM;f7MfL!WFoQUq#0o{$0YPP z+PGh{5GPw&C+O}@JI2D}FGA38Ge(`hd5j*|U1>$w2qJ6So5K76KqWCTphWX7I2SWN z=G^SxjQq_~+^kYct}f**9c#7Of~mMB(eYsFE@Q^&x^kt+$(ibAQmg+%7gA_%tbfpN zW-*s)1g~Qr%gQW@K!SC)u6mEqPKEFhg>?Ec8?mJ?go2WluJZqq>+O6`d3{-BM@P7I zFCs(Xio)lS<8*PDf|(}V*Vy--R7_Q7B)D+`#8u7>OE%jMq@8ytrm|iiP|fL+n@aFc znJst+FVz)+8;3Ywu%jO>q<#b}KK-&UJ~Ev*b^ey-hiF`%KR2+P}CEt)YN#ph?w z=KX4T<~AG|cD^<5(KJifSmssd=*_Iu8huA1R8#)lfUR&q&^+Lt-R)&Hnil>l9Od~n z@@I)}=#|QESrW!(%^pvRBbGPlJ@ITc#u3%Pk-x%BK$KD}4I?<6ruLsF<9L<9k?LFL z&^$tD!Z_*L94%Cd?j2j=emUdcXnzRuk9Ao{vCTp={*+gN4x8Js&S)Nv*>h7)?`hm} zDhaNCl4?UU@cCm4Q1?xaDLk`r{Yv68?X_%q@mG0q(f)PXJJu1ZjtxWODHV+F?Lg-s z&J;c4Y+(8FLH-$|;5>S+lJ{wh9|!p5{4ksCuk(~gP4k}Bx0;j3fkRX@oZo9xRObb_ z9kG-*vPXd7(?Nv=@avzUce6k->^<<26s^Ldv6!S~rMQk%`(H(>;jMVj%+cs02tE(a z`-_J8_}0Dv&6fEg?_0u6Zs@a&Q~O$`(wwCu%KwdthyDSjh?GrSP2qr>r=NZo4NAK^ zk*t^bZT~6YKWd*^5<#DX!Om+qJL@`d%6iU_^XiceYE*$esNSDB!`>#62eCPF-KUGW zlN6u1HHAxA`iEw@-_zU>(bpZ~*XAqH~0&guj7Z#BOmgSu&3>S1SCC zM&TMQYeqq7!p`(MNePY@D^VEpU6S4l_m!T13DS3If_aiMYL-hw5pw~nIEwz0#B2YR zBVWy4oX9X1CA!9jw8_h3$pnyCY`hK|E~0NCr`l#Q@$0qtM1&TG;Vac;>~sa-COLv< zp8F`}dHOmVX}EGAA_I)R35G<}0|=i+Aj?CFn!kBc#pQ)fFzw#srPI#~)Ko7WO!PIN zu;0obXT6B?S9$=)+1Aa0=7OL9nej9o3=q(=a9f9}B+yp5eD+_*9CQs{*BeL!wB>%O zg@j(ovO5Kvotml@t%57Y`S1K!Z|knu0{{U7VAE%-yx&j4Svp4YRF6agLdDEV1B^(k zXTTj^h`!g{79iQB-FyGUuloBvXgViQYpoBB&U=#O4oZx55Q$f2E!6~IuSkwewE#x^?AD0}d+_F}BCM&DZli!_< zDZb9`CW)OmzTIBxZ|cmtW=&e*&nd8rA|ndk71&Zp-?@n^4&$<&vorXE}7oa=T&1K0Gm@UA8sOaAGSlgNk+h?pylb{Ef)Z|Z|Z_A~vQNrpI@R+JtJ!G3d< zCI>iHhC?S2KGD55?14r6&|x!7`YS6XtDe9id~3G4-{Oh>GcIhl57Zq?PL}Z1<&-X{ z<4E49B3ns#!~Ji;SIRfkA3%C5D@4Dys`=wYVwTELkarECDt0cKHhUG}i?++)GfFSZ(@Eqvr7veCB@qW_tUNL1{?<9NjHQK#E{>V^c9e?-dWs+{?&e{>FF`G3nKuW zz(hfpBK0E8b=FL`Na*-lK(ZwK-b=}qhw&zXFHzRk*@uQngUL0qKC_+h>7PkLzOC)| zhWFkiuivQYCjW|OzWw8792_Z8DhwU|JA#**4y6$8uC(L=xLLEt7UXSyN@^A2h43kz)c}c3p z87L`9Cgl$djgDp5>9ds?_?c!mMhHL3riwtPSJs^_-&ms6oGz@AXfxvl2S>fT2Hs-We1`!c1?J;2tV_l&9{pTuW1_k!A%R@aQ*MF=i?weY2i8JgfNxVVV@}% z0;si8GaFvyp3Xcgry~z1j_!hCq;n2V&ykWp^pcUmJD7ww@6g;v(X36Ahc$6D3EI*0 z9fC_gwDLka_dD6td*JaW$!q+xNjplHN(FmYtq>arMU#4{vPVMMFljSa*tlcs(+|wi z%-dU7PAHN==TiQ5h{cCbv2E*d=zgB*w{7z^u8NBFtbxwj-Bk9}vlf1= zglZ%YTgh+36Nyvb)@X8MlhuB?<8Ot_cdoR$=Yi@@Y91)xNWLKpojWjaFt)tQ^4#b` z8>Z60YBW)vsCY|qA5?n@b?cHdI)L*CMoV(2bi?PFWbiSXiKEH;C6ryM?K*T0Mt~f{ zS`P~C8^8N+>iCWZ-?CY58r+p}f+re5tH(2+^!I_=Kkof3Q%)*cD)=pLv5BZ_5)g9N z`cz!}`0#mK-k@s}uQ!}RXy^Oi#vu_>ehC4}GVrMzt!{qT&wtD6NRQ3@I;q7^`M>GD z|5-3P!45H$(kFBFP^h7jr~935)H&x{9`5)##+2V%gkuN_XA{<6Hw!0r zwy1Bra7wt2k;w=WsUxSYJYI|U-&t#*1AP>9rC!6fh&JL!IY`O{t}NIdc`i5{97#od zY8!V+uX+hzf}R~V20;L!xNM%9Zyh31A{UrFu3HZWd_Y|zvf6W3Z~fIvKd`so0ViPh zznw12`MjOxcv-Zko$ey#rALyVWH*E1PEES`9Gs+yDXT71g1dNcRu0Z-dxS0PX8HbzL z7YeBo7G3y|?&^Rlks3+V7nruRdVy0!bvuI2{F-UmWnD19!6FT8`&Bqs&&YIpAlOgz zT<>eecG5eP^UiZ9rP#eeQXa9}4KiY*mjkaL*~EEP^y&{7(GizS2dl7BM0pFH`cwO=fO&gI}a zdoZ9E$w6=FbaugzUc?yw?+#1s^gg)}rh)5D^2K!_zWq~)0{H3RtZX_2meovuiNviO zc~EH-*KHq|bW!i5%T?BZDmTD>aCXHnbV>~DJ1jNqJ-U(iU?bKFMnXoN+kQ?8z36a3 zb@abw-@U*^G!Umf(4YHZadZfa7)h%=t=VxW-hm$1VH+~I&jUnIEkbB&rmIcPwvLk>JA5}scSIe7jI2L+C9Dw3)RRar_eru8SkiDoGg2b@#w|SyT)|- z_6lS1s-d&IbW+r*<~h)IO@r>1P}*dOP==vmMZPP(LVE7(Ju^To_gl;uK-PBVQ<0^S zLj$aHv#b_`;dzDJ_>%mdYM<+4aQdZpSjgNS%GzYoJYs(1F7-kqW%T2hmyDu0|lG+ z=z}A2Xy9IWi{SdAS@@lWVt|;Rv{uEY23-zQ{gx`&>NgFG?H| ziarSP&yuz>>Wb?QQ*8z^e7z}N(o+aa;9XbFP7ZeU*J#!_bh;%@8|J#fPPuud-Mbq z1Q8ieepuZriEuqS*4R&TlvZd>y~NkeIe(R@F@E76RJHTNzEJ?oK&GV$;EW@HP9^VnnA(oWd!}?>^N; zA5Pr6e6m1n?7PH#T6p2KVjg#iE+I-uL`e$$+TZNN7K>_IX#J?alzb~xB;)uM9p!}> zAw}>jc6)JeXq-@}V(XvzAK47JFO%+rl9JJ%_iA5SxfF7wx60=Bkl9-uu$F6RllR<5 z+dT)2pFdC661Nl&1;%p+EsC3pO*9-X(fCH#D-0=nVTQe-;G2IM2*(Q-QEr?+ct7eG z*cu?(Aj?QY48?TYyehdE7(mN0q}QZB?Qu>ykJ+EBCs6rVZPup`U6~>_lm9eFmN5Nf z=BGyl<=0J1T=8`cQ0*|hSM^KK@>!(G(GdFWWK|q*o@U@OymYD75cq+2PzsOy!x#s+ z@QXtic`@>*U2U>ma^62lbKlEVQ+c1tMOO+W3lGeh_jhNV0$^fXExcvqX*DbL2AKd%*eXH@z+&+>cm)pXHvmt(r7FzinBd zM7}HXmlzx%KD8k3?HCB^9EO9NN3+T{jR*xLInxZSuLi(#V7Y3(4CDGWLxJIP#oFrO z7r*Q-AiH~Ynsq8T`H8R@N-`6#=lc*bY0_;N*{^}LFPo| z;Wn>0OoG$)O3pUi*@Dj&z$#w7z)~S``f<&tL_eA>jeAMvV)^~_^Juq>rc5HQgOyQp z?7Vf}-`&BbdI=S`*$A}{8Q$!^y)h+qA?VR5R69{H!QlYRDg|f10>&q5TItWqXUz8v zUmrCN4k8CQbE0_`(mR;{o`;+8ec;$_RDkWIeDuxy^eg3LOTBV%TKfXe;j<2}ddsZK zM><$unT!Crtm%X&k*X=F>LDxExTKoJA=!!|R``h+4I*OtW_{&iiSt_T7FxIoD)u?p#_lk~93aVe5C%1XDWs zbkb8^cwz!{6l<N6fjWukz_lUSqa+%8N}Vpee;s&?}l?^ZRM!pYpIZcn>eoxoj`F zJMl!vU5m2}!-a65i3UBcydBpO;dEO#P6u`=?vLcDfIC0$$0)nTB((79%-M=6pL)1E z1}odBi4EUn43qBdL>i&s>puDMH_mFg%U(~cX#BFKWTbgdUG;HT%#&gjaM8e&p(b}Z z$!NFMTUTPn_R7H@$Jh=lF6Qqk=cJZJ_(rXFe-4}J(hw3|nwzmc6%c&Q<_wl(w!g}$ z_-loB&}U)mT_*|q37l0 zv@U($anOTFj0hVC?wO;-rvom>!^+H^aG0c-trG{T8y2M88N~`EjKb$m@W_{#=b0!E zj&e9QgnqUp=vFoMdOqZF?}{yJ7V5)BD}N;OhmiZdxw3ADPYcIBU-n$8C-UXQuxo-h zeJ^*)MV|RceXc$W-tDEdx^GqEE_nvrp#|KJF+#?Bp70F(Unl2P@4y#+RoBi;yV?nN zGMc6LO0R5&_^(|0y)dDC>y=W(-FIypYCSIvnpdoELxHgm4qL;FBJZ&2@Sy=9qQD@_ zynru(Z}@@HfbJWfJvo=|(2e+Y$MwyO@iy1P;fW`=Kh>a~>;4AFx@G=A`9it?z#$*< z*auIxt(y6$)WHn<>*KHARV&&W-&=nHGwzJ46o^S7cGmwAt$0O zo<+H6R?2%46E-0t9&~okY!bqSVi#+X#d$;kY=<_?Jm@>jPb+@h7Mt=@OtcO)mG^2I6dHkreE$V+Xt^MeeLMfx-8|?TpIK}jRHe|(K zF?O=yYHu)Ap+ps264YpqdZ)k2&W&Uboe71(I_H#3Ou*xkboQG_XyrEC3-2l9c6qLW ze?-v%CLnHEeIJ)UbEvA9uh#9T0fZ??ohQ}Tz(W{o z+$Z*wi>OL(nyXMc!;=O5Jqh3lDvK4n`qhN<3*8KRwmO5d8s$beEr3JC2Ey;46EC1c!) zheE$+9nbw*6&um>oP9U=)SVDIBWYkF+)!}UF!qFVuf$(D+02t2+d(j(*iWNkCdyx+ zZ=gpq$)w{5%7bNM zRb-@IrDw)TG2Dx|MhNId6SO1$Dd-nv62%iR5@$#=8CzSA#tx>)vQ)dRDi|DfU`ZG^ zgdp1eeZ>z<4L$9&s*AD03)+YXMb~l97$Ud{Ud%VH;Z#T&aNpr3e(^2RITI;g&DM;l z{YEj{Zz<8VvCLL4+`tlP`p@QFy2Ak*v$W}D8y|boae46D z=!UrazGxUIhEAr`6{UN%;NcL+iOt%DL4A zwq?s7T?8@38&hl<0gL=W#w9KnLHdDeV?Ykq(1Flm`BH z3r)PYeYpaR5=sFF?1E26lwObJwN-#apMw=kr<-Ba&YLNL(>lZM$3@v`&7SKawH_(( z^|;6oAn^KnY^yxq2g=Y3>{@=K39feZC#vmvJQ&+x%}o#j4}u^=tOf%ev@ZrPFE$;t^V6O?3Q}HNkZ}C{ ztQ1);~|CQD9ttq8s6X`%LNWR&$*>*(WY;?i7=`83c@TZnX~*`pzwaokI8(bC)^ z$0ZbH!X$+Bp}9cHl2>6nfjpTDGIwwOLooC4nom+2Wn1#ERa|o(2-b>|KT{DAQYSKl znTNJ4ebzzHu@P%6%X)VIyX|MR>EZUtl^jxB_vKEJT==N!jQ+&bd@E-qa8>p3D+fL4 z&(aMfEm?pGSi(9>>7?0s@ue_{cr-u?>7DI4z3v43t>$p%481j z;uliPO#?(61@_{@A@GL)AC83t?KiQK3qLiB(L|i=#S$WZhphLp#{*-1-_l#6``e?r81lhj__p*_@H7I2)?gGQ% z7i)#k$DeNGo^wK(R=jRnOf23_gXx_bZ-$nvK=2Pjufog3NyOC%aKimlgY}xmu(0?F zR5|$lGICif5~WhQv%_w#^U&?hO*bstG|Xdy1>V))8Gr#(VEfLBC!`=`D8Zg%q*Lo# zj5)0&c??4L%n{KnsR|C~)ruJ+D_h36@{YM3A$c<;(G=X2uva$FA^;O`-Es5fC!SH@ z0*Yx+wjh`0S9kB)>o{-kYL^eOv(IaF_m46TF$|$aj^DkN)T!*PUq2uFlgM}gn?-MI zS=8sh8O5QjcACjaSa1Q2Ww2I@_q8m}V$+Q7?|O~`$9!|a!}QMX&me)iw+{2Xjv|32 z4C~LC4+5VWz~b}UHqrTQ6Um*u?C|)EP?UcI-I1WV!SG)V3BN}Dl;Dc_jaepUhhV*%1!<;8ll_Kyl8e7M4#Bgi7kfV!u*xseRg6Zw=oWh^tWb6jC=9S{q|LL zF|~wYq2t=>3R`$fG5f9-j5{0l)P>4$rQwz!%bmFqB0^a-%hPC5DiccWTpks&Nfuee zdW`?&45Q=#=EuCv!03K#5*(0Oq&y^NX7$ed-=%$HZJop6v9~ABh^q5D_}jKV;c@h( zKT0zJBsTw@xclw7$CV-M1!e0o`w}$SvZ+G`YP!`&;t+XW`Q!Dh?gkkUd6BwbZV)%} z##u$qewP17lUA;CREi!tS(>GnOw}$EMS+W;|z&Fh;erhKG1#7q6EXIIs7X~3t3+wgpL>_TU)&qLD4d&&Ue)w{)21%;nD~KE z*d!HE%DG9ii@>Y%lVuIFd%DZc=C!{N-%^Imq8St>%(=s7nE~A>%Q+-g6r~dbq}Ptu zZhjo%Pfp;4LTlqlF`YCAgU0p7Vo1jtREt>wp&@ zlXH}TXy$^R>sQ(`p{$lwL~0sn;JPhTaI#B&|G*S0$kw5!aUYdBAzb5@@tJa`ctPJA z>MsEl3FUCufEZ1GbAWkDuDF*;dd*zv5Ag(ZDNrL3g)L9r6TGt9j~Ii$HQYkeWj{AR z)H{WFDX`o^sR;7^_O^JJT2&xdA7vF0yD`vX(xk>!xFCsh)*)Xr z&@A0$Qg#bA*W=)0*8V}7`IPKmfp$%p4HvhYl6ryFCw|!y975yEUS+1??h>Z9azZ<+ z>{eu|=XEv&WM(ew`tt~j!9Rr0aruL`bRCnXGr@|csSfi5IP7`ICV}>U0IEP$zrQG@ zKZ?RNXBnoN&M zOoa9EXZc96$>u_vWtQ~^7<|k)B@L|fxe*VdqVb|TyuuzU+^05pYMZbL6LlAL*Bc!X z12|a7^K4_JjzLeyR3slkOnsC<+X9QpY(X2)>~@fgQeT+;CK*%zHET0<-#K><1TT9^ zbg)NYlPNZ?gg?tu+XM_(a#`GzE@xPE{-`7VGP8e>&sPk_>|kZ*cw>+bY9&RLs=6xj zom5P7UIP;Ynr#-TI=sz&1JI&xBQ3yRUv0F=&UZg_g8S@KPvGlc{~i4B`#-{8edllS z{;9yS%yi>aSXdDL;FK(V^X<3s-S7MjzV_9x;OeO;(!hid(o-Sh zLHzL_ejT^&yAS{RPyRh#fBlV>)(0QFA7B67udVNL`P=XQE#ABRKE8M=iY)!E-?)bF ze)s$M#V_Ajad_x~2k^)L*{RU+?6dgW@BeUp*UjTkJdPW;uCEs<{JTH>bA0gr2dh4Q z=?gF5_fBx1d*(^}^?Dc0)%DI6Ib6Y=kCr=hzJTXncz(rwJ$@=QT|NE1__@#G$x|Wb zd*AyWUi-!C`0Y~>XMNAk>D=+LBVIq@^2(`*v^>`BzEe@=_G!Mi-+KF0!1{PCWIcJ~ zCVu()>-h1Hf4mm5-g)mf{;U7;pW=lVK8M#%g`97F>&JNiMC0dAG`{fs3#S6m7uF(J zDbS3|VEwK;=UGqWF5_h!`@&P7S??rBV+Y( zSfo*Lm!gm5%7%-jIP4eR+qLlk_*&?t&sES>rCh9$3L2AQM-Uvxd;_QjR!32La-qcEEoCx~tcqI2yVI?0cVT^U&TJm<)xRRJo)VF?U?$G*X z!6yq@;EmYwU6u03EYH~4vHr(NzVey(xkavpQ=!2HW-1fG?Q)@HDxWWjN;X3!UdQ~v zknjX`nk3|EvM=;h46luqDg4bHTCqT~zncNrJLOgUhyqW{-*@WOH~=mZK}lZ_Hq3>Z z(kc%||5K75#$%R8c3%4k(Gx`)cA!OP8(t*=TxrZltth4rAp1xqEnr3gxxUXUpi(Tc zanK7bL6d(p`#?(?)jpJP7baA z43BVRxm}kl_)tGiG=Pe0Uk3mV_2RwN<*qL$1+0@u-(vc<_0jt8a@rpe27;|t2o{i! zWJG99N}VP8QT0<2LlY9p-6ZY?G^eP1CUD(-gx(#kqs_h0btJoD0@MOyd(51l7UpF! zw#|y14(AtZ42 z{Q~B9hD9__G*XZ-9AAUA*mBHEQ!I}+`_|P)Uw130)7`jn9bfs%mvH-3K=`x2{MK5? zShiZrBf~!T*=N>b!%t7ei6w5ieJa%a{O7OY!Bc@|Y_eYQe*dY6@%FFYT?;lZoW?)& z@I&}l|LRZh@@bso@&4-{o(dPQ!;d}sFy49RUHrvgejBg8_RGNc^$*@S z6+M2AuYCDS>)^*8ePq3Jnx(^@gcE`$ccg;KR zzK5IFuj8v<{jIg@Yp?zSk3ab&^ppf%@cr_saP!eecktJL{T<-SVZAeFX|MeBXZY9u z-JjsqQ_*I*L*^g<@jt?~tJm?1S6^H2CR*+m`r7Y(ZN1|E2S5BV{?)(vlT{`!JpbH! z=gwPizImek->mPdS@^dUm!3NnnwCP;1E+a^@fyhp=jF8feb)cnm^SwF&pv_AJ^!13 z|IBiy(Q=2{<7KpT~Z$K!G!qXOCIo zYWD4uXoUCf^K;-=k7+qSAUWV%XUe(u3U?qmqG-EJ3u`&?T>e*C#N|rXE%+_ToZO&V zvO`DY)UhEr!v>%vUhC=BRr=3fgS?KL_nDV%fI{IL&jymCynVs7%5NJbSo6#=XC)BxdQkRtCf z@KPsgq_(qjz?>}8xHG3FtR{`{7XKc_BXZ2fn4mibl{Hu3n@%L?Kp2wux zYe_x`6>$L!30Sk4Z4u*n)D|-&o-!6{ioROmsvTqcs$GVy%6QJ^>jj9+_p@5;u@16OTXy)(PFLfJ2md*Or_0M2A-)~&G ziVr{fcy0$r4Sk=TkNI|5Sx~dp` z7Urfos(HGivRe6%!^Ex}5c_U$Q7+Y-)rdDau6xtOJ;5oa$wa1eM64Z&9X+LMbONm2 zyVDn@At#RS(UCCLGNTel*x&djDAogVdm|nr3W48Div5fLTw5^$Ml7$D-e$Ml8C*OQOchYb7w{ydCC^A55OKNt_|v#w9e{6Mn+S#lNMM(u z*OQMwhNqr-YJI`|Qk=Q(*3I>OF*i?zn=6L{9(dqE-1+bhe*XF|*J8;14?c)lThO@u z?z{Nl!;jW^9(wTpQ{w-#c^_|f{C z$zDG0yLl6LPQ{evMe@sI%a%gNatDe(O3mrJdMd75xpHN_1L)e-Yxv;(+w1r{?|*=A z{N8Wl$tOO8?|kQPPJIq|?D5Z>=Dm*Ro_iWkJoyxU_VQ2HLez^dzJOb&0?+bZlz;iJ z{|#RL*{du32OoFR ze^kaoF~1n9|L#kv0%1%>vY3R zL2%Me^d!;@Z@^z{7gY*AM2CWJ#PBP>H0DW|>}zy4@j>~jOxV$6P8ziC%eouMji0;C zYyy--mJmLevpoQ-AM+$&Bf`7(V$5z*Bfyx0a~(n!P|}g)9BtZ|XZD@4KA?$)zTr63 zTrDMoIEet&QKx0ExH-oy=p+8Spo*%b&Rg0lBq7*a)A*pESI~-%ID7nDBAa&MbBcLe z*KyvYTMk)RX9wj+G0SoXPxK4C*$C)v2bKZ%b*k7O4h)InOz49UUm#VjbI_LTj;p)7 zeX9<1#yri>@%;%>fB=kIRarjg^wD{qGkh*NhF(NrpUb$#x|t7)(q^A4|3fSr0?g*H zlgfvX(ez>i5taiz^{*!B$nSs{!3-Kev%Z-vTMkyoam>%i+)}d8&#{vx8vLB_;hgQ#=r1S(8qMO)K+-d13x! zMVtB7be%XCa00H9t)q=2{cG#^+O8e0;Hq4~M|yPT)}b4jWu5Nt@;KYbS$6+i4Bb1I zL$YiC8g#hc(E5ZHKpJ28s;f37a)qhesW22CGBY(`@IM2svo?{l&~cT~2L}IFk_RSE zn@)eQ%}yOriG_T@%@}3-J~RK2cL=|qAYgIW?Kf8fX`|RzuLqBb8^_>N1_-KNz~;BhF#r}VCMe+6lmBtR1@LcM{OLBfGFueBq8` z+`m1F>vZ_W%^PcfnfRxV?M{_VJDJ&fI_h{c9nouM11TXeop&@1|KEd-V8c9$O1Dx8J)Rw&ZO&x4iG=rI&uX(zM+5 zvfQ!w$fFP8g%@5}Uq1eWQxWLdXP;hac;HlYdG7h=*TU4Fee*BY&nKUFe0`_Pa;MNQ z-*_`%Kk&ePYf)!``O-@-uNMqFb)sRRaVZ@Aa(N`1Zg(U-aw^)~x$_}j`q7W^qtoBg zmV(U#_usd^&u6(KC;5%3>)UO6{ zT3pdO#$m*;j9Jv;C*PBo@zme@Z6DI^o^bvM#eM1=LB=@~euyUh%JDOjmkQ*oFFoHl z&O%HiU}OB%QWDs^IEcaZ@cn#$-?!!d20LSTxo4*H?ldXbi6QAdoIbAfZ84R!1AEvF zd@1>xZJFcvs6`CZ|z@OTsMuE8X93J_H} z392ZGq~7#6Id~?R^Z9ubG)snhPJk;G1%sZ+P5j)|6?O0vJDa_X-!(t;l;fGu9M+V_ znkGI>H#2gQwS6Ks&6YXn{t;Rdv7tx;im4spql0XGHaMHMWYRcS|b}BMU~ta$;w;>lWg?5D4Rk%6v@mlAM3(Oqy)eEq^Ej4wf`8^TfJ~bbxhZ zokcLTen{RH``>aVl-zJz%2_uj=15WUM4W<}C{yRR6@N4t;=W)k(m9^W$r<7$&}=PS zip|f9vDpwY-Ur7WE{PgIT9Yvv<=7~jrwEwh8WM(WKdHtk$Qb&>oPOJyMUo+Uf1q`XXrKXw?^x zwuHS5J~*%&^~U*He*+1;A4IWVjz{=P9O2>NM3cVaBQ}9#UqxL6V)-yEG#1 zXWlz(MpUXltt-r=k-CMwFTIb(o25`={x8Ibz8p&Z6#65x4_{KLMuDPqlzldlnhQvy%v^&b)7RQs><HG3> z_@(Hu6jzq^{`()|2S52Ke(~Bb@zbCG0)O-UAK~5imOE0e;%mS4rS-0p-WE9T-+m82 z{_#)n;fHo-gdA}7lw`efD)z_Y=}v!3f#Ss%K8vTHd2)TX%Lk|V9{a`QXmS z>!Z#V+&+6M!aVTML-^LWzO$bD_*A@+6MmmL66KS;^~Mc+@ylPv)6abt?|pCwA1&|L=yK8X^4jf>Hui4gtmTZs1}+Zc+|JnYeo;Y(hz zP%d>%>5J_W6GQSTWT8PrRY zk4SFFq;6J-Nm^{YY-(&g5B2xRhl6#mYQ=WCISo2acN}CMzw}cY zC%MwKHpsHg6F`_3%WnFRcbvuMp2ml=B+qm-xF7Z@AsW#2U<{(ml2D-`% zf?#yx3YKwQv5YY!X96fG7JuyA^5aNm8dK1P0d*B_LLtPVMW!*lqTX!GK$0qNHd4WC z_Gy+BVoG`ouu0?1f{Z>E?uM`@a;2*gg^z_Se+oF7$eyKE_e>XS&-s$t(cY7+3)Zt5! z;-gbR<;L}Ec=VwMPlcHG)>vYB{MKK8`@3u5X3^opY2XXbKZ~#b{_jo`>&x9LKROj> z{^ol>jAP3S;Fm{@ec_8Q;`ZtLQW&}K)-8PQ#TW3<@|d*KJa4}F)+(pvF<~Fxeji`{ z(u>P0VDS1IZ?1))<$W@r|NIO1<~RRhy+dUwl3c%W?NkK%0AD>7i+=dSpPY&#@8R*s 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 TdfkJGDOD6fok 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®U8#rDmf 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%0As|8>YvED>EBYE zf=SkaP3=1VBj3q6j2_4zkx#I`tX?zd#HQ7Ryh|x~o^jyO;gX)LE`=`t=G+%5J|Ty4 zrn?_Fu+WuT6hQE_co{6c;F&zQcWOWIOr-_WBOi(7$((-o=ylUTnt;1YsPP_$Tb~Dr_Nwgfl1h7LCeQ{)%xV* zProYZlZ+{TE&S+S1Z^T-}1*Y86oMv{H_mof=Y)Y zPRe1yO}5gpVo_gNT7gP=u>~6#qtc0Wh?~HI2DBE-ab`*|bVAXu?$oK_=yL!L8uIun zvIlAda+jo?A>2^0OO;RfNy!niPBddXD_S≪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%0A{r;Sr`TXeiE9LE)X{+ z7eHd1D!%s6IRCFZ2u3@JN`TGsSl#s^gszaJ?S<~jC|7N*wyXA5iMr*y z0+S#(+p_5ODWBGjXLdHUVeuzd2ch2v8$=+h2&#j@ z>REa3`69ClnSfQT8}1$4x4v|mcdGZq$H%#YBrm)2ROP9kr^tT|cCp=S(hXN!O@N{; z;A%1mLY(QMFYRwYg2e_`a#YBQ(~d2r4p(K+m^g^X%8a+y^kYhCX-ts(y%e6mu&y6@0CV$ueQ zz4p~IB6R}3mpqSF=PvhUQ3oT);KD9X;k?|}21l?SXG$3=W>J1)|8~#@ihlAv;gf}l z(bpf1U9HrY7OJA&(43v_r9qX-Od|tT_(nmmY&Oe*JJ_;{VYPO#G%ZZPLQ-8X1GWdc zbk}g~A>bGaU_H%AH0K#>c(1?F8sE3__!Q5Vzv8u*r03`WoUx2QrDUtD*zdM>QoNt; zaS4Hrl{0sQdC?G~gGaC_1Uq*B@1Mh_+aJT;kG%;iA%KzQIg=Td?tdmR-oleFVB5d@ zGKPB(;lPi-5woou(=L_4k!6gY+m}wm*!ZPevEv{ACv5rcuXgR&voHM}?Af0%9^LmO zHh%8b6!;m3piNAR-?dOvvXC1ArSJrD1GEESzzb72?ciFn-mM8b1=$ywl&Heh(iBhlj(f;A_D z7Z*~%X7u~tz{0P860-|W$N2yLH!%6>x28M@b(=Y%?nJV^XJ1Q6aEd1S6+ZAtRp|35d+I0Y%hncFotA(I6>*+@(#iJ+VV$Ks8)JuFe&b$?QI_M-m zd=%?xJ;fAt>R?DGj^|b;;Fk`7U)-Pm!=a-+`}c>E;;!IH9v=dauYB^Wm_G9Kt5f%n zU>c#^t1>9VzofELMAP0(pwu91CqGat8@fTCTPrTC<&h`A;`}IiZK|{K{^YOBLgLVHqjoxsUjX6>XS*G?^e6%VMuN$%4slO^a2g--6TvOCQRgpo$a zBjl*S_BXY@X-3sJ_UQ`UYS%~8kbh`!aKR#953{*5v^bZ9Ufr`{J0WEEE%TCHhuIUX zqCpgYC;2Di5Y#O+Y9a4p$;*hP|2>b20?+}!id*4(L(>+GMNf0ZzW+^H*VQIFZCKH| zw1?~8K{;6`BWZ#lMLtmWs|l_9$;yDyL9XY!e7ZeqXGB$7-Da1H4~e)79Kjn$lC0BvN>YHvO zyC+m$@3+l5e%Z;0<}KSc)Nj6APxn>2S$)Lp=oo)h8p%7L|4Y=LrfbHBV1hY{cj4t) z>+Np!cG|9qJW%HEfS2z|$HGinrj4xmAPyP&fckXEgIKQLP^a-M{b@BrIo{97qtg(j zr0huQv>aC)*vLPM)xe~BTX59j#UiM}yVM)Dv~Cc-FMTKN5TI0tKj}!(aHTC&Hpwtt ze;10$eNtHvQFqm3V5Y^5o?yvXp#uH!rt+z>y1V?clf`ljN*ii@y04HKq;eMbgJFP{ z;;eGG8=ooX?@VHTQ6-pWh-{?+L@lyCDbIjjbe9&wOwv-Dohmq#@#c+gGbYU7yJ*u zkuwoi&e(=MfA9S`_?Ao4??Z3D9Giad2)2IVmh@l3Wy=Qa`^4LD=sj0s5b#>Q>?~~h z#@*QcYrhFzT1bJD<*U!f;g7yP<)5ChJt465-+mtWcV7Z;2tkk|E0~_O6O;2#!|>7P z(r%jZRi}ZspOnxXgzuyKpTg|)ZJ35U$g;QagNHENz6H||IEnYyti03Ucun@N7IpHlj|<*+Bgk%^zDyykKvt`!Ql##u=0<7 zF7(wD!*Ab%;mr@EyK@FlK9AW|=XJYhEVX+bK<>4+cdZs>u(|_RmuClEMkKQR+$mfX z#bW~Yh40$hMEy1>%~u?HUhd|XaQudh?|3@Syz6L0Ytv48E=hLyYW^Ol-8z)+1F7?b zM)|Hed~7^|lYD&Rtr&my`-x|x{$Bc}_ha;$^Re>f?_w4Lh8zC-kA(>1Lf81{Y>Yvh zVVJFrh8MroXLs7FAV#itzWi0@M1pVCpLeHj?Gk0SjMPb2NjWamil=Ipaf zXp}jTwMa_ofrX)iH&l-v>X-BH=B?7u`ISqePN1qoXrMqgY?(AEB)`HM&Y|Xh7sG9a z9LQpL{L5smfF(tP;>Ii(msz&mE#S;NZ2+oIc~0G@qw726NvR-v?^N3i9M`t`qm=dU zp^?l|a!597K z47W70))DxJ2Q2(i3X;R6lAF<+J(h1XOG{HX3s32Z24(vC;EBe%lu5KGN36L(k#xUu zjgiMv_?wiDvH0q8rC(<%FWWpdh~ryK=y|~WcM%|<*N*-#RjK03&XL9$PS=MDPgkx4 z2?#U?AIFqvDMy`4ai;PKc97WUAKN9Qb2;d_2uqFvqQ<#Na@PZ0dOin+MUCn&@%<^T z$&OCZlO!0`nHV=IYlTX5Z!#WOy9=U>!tMbgbx_N7x~;>9~#JgOI&His$L(|5!g++ zFDW181qDrbv6NFXj=muvG}k5cJF3zEO(Q7`&4YH_tt3Dl(0fVAe5Rx4kV@aetmJl2 zroL+TQ4bL!#g|3isKoI|x2Q$?D*sfdsU2v7Z$UI)>f~^1@NoS{-f)gcm(#g)5Fiis zk`JOaE7ppSDJuZf5lCptB7CS0!VErX36?&Ppu8d}REQ-7jko;N$C)SZwEx?bxyXloWuBPHtst_7OopD5LSI ziwZLD&$e#Diyyg8hO`ZfIC}nWjL+N=0v(&s%`t;d`tq~!+&}m+Yz~2nVLWc^yi;-X z+6yr`_2dLK-sSSrFT4-qb9ZC$p=U7*0h;AEU4qGlXJ8f_EfL1y;Ov<#En@V{inX(!YJ?)rbm6Yg+@*zca&G8E7$~Zk@$>dA!ok zH?RCE0hq388*u3_5RCWF%rJ<%XY!7QdBGX|t_7zI;?qZ;!peXBDwh74si^)BY1c&-z47Y8?@bdFPJ5I*<*83AbM`!xr z%w3>O8!!n@_}QKp0?feMK{lcjbo9DQz(K~Q_dbg0o)<9)`35J2faNHByW#@O_8r3X zzQ-`ze*lApC5)~L0mj|i*OmQ$!xWw6)9~Mhg%cF$2x2q6Dzkx%ahWMMDC8@KM^VJ4xHZcFotit3`?JQcc|4s?| z?=|NE!Iqc=ejc888V0BDOgq6QH{FTBxu;?F?$(HZ24!lb9TmB#3xd@77Sv#zXPvr!0WW1` zlCNN-=WbP~4nFlvr|1e(IO|paWk*F9Xo5@vYmlYXZ}IM)xz6jlj68n^QQDbdvz}}! zgv;U$K}s2CKEFmz*Wa4Sm|1Er!_rPuRvEWFx|4^o|=HWYgp_Nz;P#>jDRYzc%<`TyMD>#0@EQ$rw60D7e&M zixFOF8D+PIrc-4RvP~+zP`y@K{8dmwak;9{S)Owz2YSN8?Xm_oxp&;p6Xm?}>nb?7 zZnV(y!wjB(!} z6H8mSZf}=s265Oq5}7to^Y^^A+WzUUq6ci?fXr(dlQ?S`PU@SqXO*A=0#=4hYkENt zp$%EdL~R3gd&ly6cM|r}%0t>TfSSPfW}T9+&jBr&C^|2zTZN;MZ!XtYaSdTrQ8Tp> z{2N~ne8jlN4)b=E$Qw3!HJ`#b=NVq!{oj@XEN!0k`!~Lyx!Jr6Ec)k`PN=^L)a2L7 z_eDcG9BLj14=RwM`ljP^tws!gUH7%_f9mlw zW1jrW<$_vHq(0SQ>7JTd9_y66XGCi|RB&cKjet73v6aKrgRD8Z`^^=d9By@eApNge zT7nk&N6oDWs(HNxl?WvutNF3^d2xs~h3B^71ksMK5QDJ?C`nP3Qe zJun#KFtsFTJ-w1dbDm#m`QwEf^IUNLIapX&NQ)X}DnN6gRK4IF-I4*>X$>3-ftSM} zm{IcU7(#lb)Lh&l6aOPnwM|StA-HoW1Yr(WXSm7}((IJYIQ&y@5y=l9CKsQPt0PR$ z-i0GSx7##6mO1*f*V|?WC-%{wd8?J*5HMN!U2GlC zOx|;K*G8hw;EH$rT>o0kuD?Qt#`x|h-;60)xzuB9RRT>jOpVBumfXunqzkoD(FUqR zl4=x-&B7yxhXSJ?>K}(YDf_DWOjHr=AD}sUH0MsiuQ|t?t(Hn)#RpDW0Tmlq>2{he zjz(B5Afun>1&dOOau=L_yu1S5e-JohCzgKkBZ1!+F!|oyz;k;sxc1V{nR(a47=Pir z!KuD6IJ}pz{FU3V5Xz3;dXKl?Ujk316`m?4-Lf`ZfU-;afN zU4y{|XJYxczX0q#6r7Q}Fn#GMEZ=k=7XH?IK_NIax#9cZ!z-Y(cVgwsw_*C!9&Gse z_jkK@*3*BJG@W%vn~sJj##tU$|4;9E48!X$3%Y74?Fg7Xzc(oCl`h!#nQvnD^z#@5 zUR=5HZY%~pN&B~8&4SJuo**t&Yter(}I;;W* zGP4xZrA|w`pU_iz&Yl&b>IbWtxfowHNCRi1I|3Ryy5Nj>4dmG)1?br%^2`=8O-4Pz z#7;hng4r-0Bp*35XDSvYTDnJxOqcF%hOnXU!aXqpc zP8Y{qp+NeTTz1(JYIgltx%Wxt%d63d-8+RZX=kX@=mZtqEA{al$of}{A2sMY+Xs{$ z)wr`MYinY*$F|wvdjCnc$zm?``P$k8kkSuq%jkZ!7zmtseQ0D0on-27)Z+qAd1|zq zj5A*2iW-Dy@e52HC0_>B`JI&f*V=kKWc8n?dd0o)nD1kUOWD~(jz4M+lJ@q4L2U6U zJY40!c<}ptSu;A1jyChWU0G}yc}GT{78y|*Fk{84|84twCMBFMvl8a&vQp&vK?ec) zeWX;qslN?7k227?G_=yb((fgpDuKDmYnaFH>~}Wh;7p$eSt?EN)_%8i;YOaEO9$)9 z5URdgT3Ym3VWas_Mk>vRIcO-2Gjor-hvP;I*3)05boEu2r@v{%tdf&1X(u)6J8$bC z>*D5J!s=LIm0>`CY@Z3ufE!V&HCg z_Gwsn?=@KY^Y4K^^=&MM0O9D(R{2rJs2>ICvtLfBg?IeAiXUiAjSYjy&~Z zT2am+h{BTzmVW9T!AbratV9R<<1b*t|LJ4FnI3{LKX?E~Z+i%Xb56zh8@B{!>3(eZ zyFY=!?(LY~@coKTg|l{pg43FhE_VT$9b3~;QPZ364S~XK7+!s07w`+t^p($tfZx-5vGB3C zf#Ob{jgMgV;8U1gbXMZO4ZrkJ3}1U8CigrHe&kuuJFdd$>WkAcP=j5kU_JfiN|O+@ zTWH*|^>WiJ1WIN>U*X}$F?;4YEM9+I2yC30c3~a)fBzm3g2GEb{VvdkMJ)f}moYr& zbPO&%Gwqb&Tkgj6;lOKmKL$GW6fA!HU5Rg}j|D#4vI)~$9|Yn(bz4vBf{o9a^;HCtmf5dF~j(&NtFXSF9d5iewM83;%pFgzr8FKUj!9I za((IeHuRHq)!2tRF}2AAVsK5HXY2Tf`N$UL-X1b}ixS_cJcGuckKS@2D#dFU>I-R+~_Nl-=M z!>TPPArE0HQW)t;fx#2nh!&vb*-oFjPSp;j95u{7gE|Y48psKjDF^$m^hu62R|2@a64$W+!t7r~bswr0OgxJWzB}-_VnsVT{W! zNWEt?Xbt7`fu;IwpF>K{Ub(O{Ju$@6DxF>*piSz`{&c7l>{Y$v;D77bp4}+7wN_|NTPHW)^AK3 z^6gJyREuP5uiAxC>13AHEs>rhr7Kyi9ajfrm5f&Mx=Px=pSMDB(4}}aWmH!ilg?%m zdaObw!v2B_C8_JH{VUjtL4hj53_-4T( zr&^Q~qH=57tId8(@9NcCdmpt={n#hvi(mNMzK7Tn&+cxyu?_i67Bap{#s+wbCKvU)t_BVJPR?P{k zD|qMA1ziDc3{%0UWgglbW-Y8d%bn$QY)iviPxkqE@vr`6dHG-Z$K}zV{Ib0DOMhL? z+a2fs_wR^)_>y@1>?ijh*S`Dax8(69A-!xJo)c``EvdB{kp#Ng4l2V?*8=6_LSBOfA=ql{lTmIQ-|AY z(Dv8sec@B`p?~fl5W5tB-uUJ~i|42?>{bTad zKm8BMOaH`Qkw+Ilwyzx*-P7%rk=yIZE`M7AMZWdjy-;($9FL~}e^MU(_~&=Ov^@bh z{GaZx96SBk$1h{PE~g*=%wC|`UWs=1*DghrpZdaHRKEL--@5p{&s~a)FJE-^JC|z9 zrP%!OSLE)m|CT)Z^2JAf{?oe+oPYmY`|s4~h3E5cenTGpxj(+^xV?Gt&#%3HDQGH~-!Le1EOl{xsvQQOjTD@u0^W@6l$!HIFr7z}dICcd#s=9(pZz z&2F(s`9)L5wZn|xeG%A@5@~QvImudi(wSPd=33Aq%)5%{(%%wiM3Ykh1i%tz4$Cgg zfJemA7LpVKSG=YjBhrp{n)gq&kTKGtRlsF@oU?LHMzD*C7c19;9^U!V=K?1>Lhy{b zqWQE9j~f$*d9}QrX-b=uJM{I;cT-un?MNOlQ6Ezw@S>CG$1OJZ&X+P=9;6^L4pMy( z-(i;h#$_W|j0c$mTGaSFk8T?3e}A14Qq~!oG&Jkf6crDEBHAA_wRDDh01U1M~QP)B*S<=+VXNm9n6$&tp7qc!m#;kB;J_avH&%@*YlEnD7JS01GMK{ z4Qs@?k)m~EZN~FoDduZPH;?JB=G;lq`@x4U6d7Tk-)xmpBqFzi`TI~r$+%P+-E0BC7h zIFLOd?dRRb_0UzYy*6H~SUuAZ!x>lCNX`1C z+LRew;;+Vn+n#a7pqRDl| zDSPtdiPY8===?lBJ%himfQ6i67`hjPwsAhT7KiHhdad@k`|WSaTmSKYBQN~Dzc`YT z+pD53iOjvQ@{K>bBn@8}ub+B)C;Gx;dHO5ADW~sUiZFluH}}_|J^r(QT%Pyn%!M3Lzp8nD=Uy=upd*!5EzCXVB#Jk`Ag9|Tj$gQpI(ZBGCpZz!X zqobgu?pM0&_1qldcL-$wn&0D^516nF;6`%tJ{)s^HpES|0XTve2-Koa6ZFwn<#C=L zfSXbYUQOgNX&7v<9Eid0I|&NL&0{ZCwfKP66C}FJ0pVRX5Jz;Dpni>SHG_S+?!^i@ z-WaHaFhkx58)Y5BXWW{YGI24P(@1+HVG(5d9Q$SjC(G7zaZkOXvS``>5av3J%97$6 z#R)!J+Jp%?0wIORxy1rUr<`@7mrOJX8NMs)X7tEH7?Kh;8#7Y)DR4xabCaIEc%$W7 z)g7q_8rULov>B-_^w;O|aF}n6nGz-1ls@vX-j&Drt7{07#$1>cC8JjkfGyM%R{gBL z%o5eH{o&XOPerxW4DD-`r2UX=Xp*y|KtJ)A9r)gft4S;*KA1OUSq&LtKcQj~YyJH0 z34E)%4}~?Ug$?ix#Ao?lCZxJhluhE-b@wZ+wYb9=v{u+bJNHJIE{{yKsIUeiKRhqt zp+k3x<>Y6A3ffHAM=yH9M@kat{cLJP_KZ1KIWh^+W;RB5#8nG+eB52@sSE*805H-- zI#EPl}1wa^99ZyhiCEi3bRR8*=}p z(>!bGBM@taA_WgDx1&!Vg{w5;sX7fl%XN9VLx$JX|N4bDTf-LDla^KEHA$B_$m(4*QUkwOEKmA%~$38yO#vzr4aMz^PiR%{=PrACm-#1|48g~ znWv9`SRVcO=f>|uedC*Qclp~MZv4%!~5k z|MwSn{juMF^^)ZN`mQ_M69q3^&OiFeFYG$7>BX)auYG?nz??qu(OnlG|NK`kN$}6^ zo5k}tF8cHJ3*6UVm(%AyBQN~je`0?U;nse1+8b}ZwXY2ydg1Z&(YdXl{I`DlQUtsd zo4@_-{VA61_hhyL^5Z}MbMp94d`-^ZeQkf`;-k-fdM|vOzj-Nu{LyzVI{31@@aKPC zPM`dk$oHRIiq+d|9sl5B7-xCmPyY1&1dTpE?N7j*zjG<3{L%L=eP5Bsf9X%j=_9Y~ zuO`zMb$`-jJPGqzdHi!<*`E~L{OzW{_O0*izoqozU;NYiE6%onC*%6Gt^J}A5bE0E80Mop4*IPv>^t=|tbUD^n4Ii4wo0*_=Se9q@d1ofH; z=R73`toLpP%iUihGYPV>;&jY@1NHVgyff=f!9%&VhtR+TNk1_MhS1?GEk(_Db|-z_ zOBNE^F|{8*B2sXdge`PEfO^0~p<~Lm!WsR}^T^XI#y0f;y6ZG-3AjhHx~j6hnM19m z8BvNfq)2X5@GgJfT-Sm`ajUVlOM5Wtx8RiPF2LlvxbVE=vw}woZUH#b=|Y$b`#^tK zF!3i9LsqBw=GXhDT#Wb=Fi&e})a<+$%wlsaEZ-_mw71nRS6bFtU0Y4ZuKXRrTAVh( z+>2nOmCId_f{F42E{Ha~u0%%`-T1t83t>QMzL%#jvR9Rh6h4Fkfccx~G~VH@w%sm( zG1|$&S3gxA69V&tc8=#o^icjlSw0Q3eL1uJOUuW7ZS@rWlR!uG9eV(NI&HN{w%>W( z?N2&e8vUy#^!m@^Qb!S%tn)O3#f(SL^6shQ1sYyXOT`Ac8ilYm=+X4jUm3WarR{;Sd!PN+Zw#h9#xxT}V-n8Xfz6UGVp zI84V6aDmvMMFbW&Ek&E)V|akJfT7?Yk$&_ydQgxla0I2N>$R@00jpY z{N!RIZ(fp%AAb2mdy%FadxZOlzWr&T?_P>buYGs?UdNWqp05|HQVos$o3mDm%iI?Ic%@^ z*@e&_XF zH^p`D` z+n@N`iYJ@j+nyo}Klj2T(NBCVUa`2nzEQsY-Mvt~pWpOuYnyIfiYEJ-zP)nn>Cn-w zz_Jy2HoUtYZuqyN(>%6Uzq`ZS#_WZb&DXtt!F{183NM#p(e4j7zr4MU^3}md*v73b zP5A2GjhBi?O>@qVE=kBSw}PwJeU|c7$YKBAX)lqNQ&oU zNqZz;l=zD$R|YKx^U1-v6&|$kGOmxu#93&bLK?u=$;hWxKv@^%VTJYr&SD6D-TKG8 z>BkXWPLLWA$!l8>l6op~?S~!fM&W8BW0VK#nJjWi6=5CB`KQ4X$4M4_ZE=Y>ON;NB z7qV#A6+x2L>YfM=Y3hUmvdE3qVE@JVt(qK%*Y`0~tPE$Rfy`|tjOo=&vYIlE^`pwW z#H*U5omX;cfZvAU4X)5NRNn<=lJLniJU7xiD0Fr3s%&Vkil3@dWZBVY zycDZ@>Zy9=yw0+Ub1ITIVW6^(>$N~xXs%kw*efFE4JTun{oWorZ+T$ZpnY=Cug)qA z#WBHr^-&$1*{Apnj@g(WhAGm|T&Ia^aVl*Cc?X{=si^2v4rEwb)v$X0KHaT-?khyG zPa^#V`BwW_!wn6KF~wCZ>B1uCQPGT>;o(%}j(0g6hjVu*t&L!e;&H7}s>)p9&?j9nOG~1)5W+`6#~N_z4dHECm`L7hm$6 z+s58E%!9|pkP<5g9H7HAZK@V%mZZDX?~GftcoHpR>uKC~=-My8>%xQ6OCBQsS?0H( z1L)xnqLUJQgLwr4=Dh8%5ZmP_AjcKf(RYB@@HPJZ{+n-J@@d~&`qb~WKy&TfwW7`U zFA2r%6=$zpiXo5SHD}nL_PhY=h`x8NUFg31)!&jg{@wpv9{)Xmmz*w%(Cu|r`q>|o zm;R~0vL`NY?Y-5`7hU?^B|-f7l4yR(3m~_4Yd^rY`LAzZ3cj0<+ltV)c5Bbt;wLU6 zaGY!2e$MiI1c$VT!$3pmn#1&K4#W3De$D0{6t`KCceWgl<7#eO3++e)_VN8LU7vx9 z^NX;%+QOjEA{mj4L?{M~z(^D*5*Om9MRs_S5D$t+|M}a$^ zpr923Fo2gu6o~*d`U(Vy5qJW^NTSa!6pUGHE^JQ3{?rQG$%P3)i%2@<%}n#ZBo5qZ zL8#6*P-=)N_@4BeC67Ix5K73V^0`X~6x@@ugS1o7v$eC#-_fbTtCiU{x`~`=Icl(3 z@!wKehtw0c&|(vR>g|x%Qk-%9bwfkl@5qzfumqaM%_3i?X;3P0|QvV-pAUiX+!M85zTFV@M;QW$Rb4QX8{*hZjxFC*jv0+bX18Tv5h22}O zIjFu0u+l#$ZJbpSLG=qssRnLO@cOjc(%rQROiOS+2S-+hDL8I*m6HTO%Y^VerAaBB zb@{}HA$NwKSuy}V4DcbHFmoVBz->l)HGF4KHEA^%4>Y^Dj5Hzp4}EMadj|f^fR8b^ zE;p2*mVP3YvWeNH1HQr{u0r}l&=!%M(7b@wxNl2ICa>kGRCUQ$`}dBTmLki1EEeHc zjE?GDZjv#6C6|LdaeZ;(*g-hniHAop~8_R!cjk! z7Nwk)3tuE?uKcth&x`lRxzVuyz^vEkA{HcPWd3Jqoh~h-9o#iO;bXFxexJos_|ezzZkf_6wsDA7=#=yCSO(sz4Pc=arhrw;#th|!I@*XX zuvkvHpYT1A*+E~xF|tAyX2$q>15>oiIz+}MO0|%!pyzQalVULz?Q_2qcWbBY7d|3+ zLcHQS>NIJ-wo8y&%`}0+b(Fg`%o+KmNs`Nb6iD|UX@>zK%e~f#Cw-6m7EsM8w@47{ zN?YsFhf*%Ii=SfSgx4 z8sodNboe^JAm~Oe-GF=@@l6OUxKh*(q|$l9r^@(A9ffmwEGZ*`6}qZOdrEZD5IUJO zS<|QAUxAEm71y<^4Ls$EPYDJ_;SBql9-*YxV{37)HqYJIZwLwj_@Aqc!FY@bs~~(o=$*~t zMGNfhuFrkUjmoMfIFE(nz3W_%0-s*P;|DB5KmYXUv7f4N*L|_wv*+dWZYNvf^1dR> zLyJJ~cH3U<^TOZz=jDaJ_-FUun~~@F!}GWH+}jqb?7sDfs57_r!D`#nw2vO0eyD!x z)_%0xNhr{RN}oz@q*N&Hwd&j4z?cZ$U1@&KPt10nCu`!=@>W(zKti&Nu9=fI1Eq{` zBj5>wB_q)skR41os)`Dfa8p5IWg*NDqn`$yMN|OLKcMe{J*!q8b=_}E(iefU%Uj~E zZ1LpQ_*(8@nKIJ|yl|uMcWHZY>zi&Lq#Rg=sB zM$h&ix-4q2+5$O@g$CFyuw7xw#5!9UxU3qT)$gf4S!%E;qp7E-dC#sfDXBweqNv`9 zW&U~*A3ycW8dF2xr46|Pg#kVQpCz$9bb_@OaNK5{^YC$+jt<3Y7DgX*V4@lEge&89j%G8<3doGD4J61dFBL=k3zdA)YPOZ^c%}!36 zmU^ee(sBl}OpF`=d`yKgNxz)SQcX7CJ?Pw!7oSrs&NzIutEnGTHYhvR$03ijw!Ee; zj>4DmdT&DUK;WO7rQkOwKD=jVF9x*h6z-7WEF8I=Py6SwknFd5SFbSN&U5j7T);yM zb$ZaH@e#_XkcN_RBD9<#TQ~95R2M!{Zq7rm1IYz;XWF>8Qj#wdSh41W{fp(3Y&`qu zb+8yfr7&@daW2UBHT0SY*$DFBQgS;go=*_I!XzZ;&LU!S&w>^tX;_XO?B7Tc%otv? z_7QDbs1e}A=u8$E5sodmDmIQU!dV)_NLpg~2ZLwHc35WoFIWysnefaR$PDM(+}T)Y z85DU>q%6ljC$JVDxM>6?XQZta+@y>W30zwx#TG$yz9qtkxoYd^Is$aaTz zjZsE}7!9svty9CL6mQ}|1;876>zW^77$RgBQNQM*yTC=7u)p>ixrR0pJXTjydinVU zm0W2UB+h_qEFs2mQvs50w+4p`g17;}f!oqM>^=JWept+khYX4cwRKEd;x(K{l}Z4E z!}zN1HOlom#(O?}dN+&nSEWDTbOkc)pMW_U|781J1KEDo;1Tc1uZ($5COJ2nUVMBj z&b-Ilrkk6NpHA;lJ-W5`UE6eSdxfL>xLdomx6@9Z92@b)+)~Z`2i=J?TN~DFcY14X z*fJrSf4HaN4R6MvkmG}p7Piis$pH++76YJ61rS~Le|`>$O0JMWStIAtSDVM!DjjtQ z(icf1T{qYsc;zk;P%w@$+9C*#;6~>a#SOL+Jx)v{1R#Ox`LN29CHWboX&#%F&V)r7 z{k{=UO6t|3$j*;>(3W~8ba#%R0__QTOt!fk+n_Sz@8BIjlU|?;WHRUj#jZs)fDnjC zCrh%R5@$u8Dr&_-F_jVbW1iH@^9mxjer}0~#DBD*j7>_aS-|&>=dv-v&AQ2|V^u9818e{{6YV^C zI_p!_M>c9zW##8u9dAqqI*D7U?Z1Ph#2coACy7(0#;R$r`Lw__(qYPU*Vzihqq`4W0H` za6B4C5~r!$b2h29JcPu(5-tt9@nW43F;yoGm##uM*@glmR<7AP-D#5sayF(3yN7^s z&B3{8JYX_oJP$PYAhfDa7M+&PX_JP^GO3^I-FU?vTyb|+ z&Mg(Fah`U^H7eH@5)(z=XBSOI&Kf? z^FeNQaQsgC+cWgz_R@zwBtP*JU&#Fru4!;cW3{rS=PTf4Qcjb!ztipYX1DeZ+G%X^ zWhOd(Q5BCL_J(;yo!@EWKkjIa4Kc>49!=z?2%=UK$*r|eP%GDpE|zeEAV5dQvDekL zkMH!g&{UI|jvL@`&@qBV#mW)Iu`^IYxw_0H3n&iD&x3d}ki$JQ33`p-e6#9>6|2d8 z=?{|QgEz_=JoajS3Q-_BvU7wv6hY9=dtAVC= z%AbhVF-83G^hVtX*n%*4ma;utg`*^BFN_2YxB(PB#%Y*dFgn-Xtxxs^_8OOQ+md)a z`4Re4?&eyaRGHun@T@c#&;Q&c=H^2PrqRj7oo+_=GWF76JSNC++_G`lAK90J5kOAF z20STrPQI9q*nrMYPkQGr)cnU6CODY;1VezA4V~qu)Lzr)L^8`zuMsR1+!PBkLdWPF zQseW9H`pNuTq`?eWAdh)&ap6QWH%(9u282?b0ZvXJy{SbGDDw({w#PXJ9Bmgle@^R zTbwr^8+x3)8EKsetUFp^FUPTI&!;G>FHKs!x-{;|#e$gkA^X-cMauqod`k9*^IDS2 zG5eOPjKwx=IREN32?PA8DuFzGNm)MuZmhp^Xi~@$^XsldTsJUSdx|cZ_ZJE^*rzDr zToMn)pPoL>IBeK|{2mm|UZ|B66QX%E;wYtRzPpZ00#2!x+B6QU&T$BboQV4qHxtB?Vdv>0@C$psY|up9AYK~45& zOwkMCz+4LIOuC#{q1^rxzS0Qnk65UWfFB@iWank2$m^jAu^6%aGZRza4QDE)J$MwL zRSHGyHx;y)Eg-b72vWz7b{qT9EaZ%Fzx-(X{TZ^r@>!49`MR~EW(S`~*RGxG;2w?R z^FRM{U)%4JO}jb^YZ>|&@bj!{=5PIXONa{l&`vzODh@mC zrN|MC$6dZ|ID93@9VA#OaQ`s>QCUQ@#2?`hDrB(LuyTb#;0o8czQ(s8#z`Ccq;i*z zgnWVc@S(UKK=-58$smDR+b33{%k?Mo^=7yqzP2~ER+d-%b!ks8$@0hZ)jtM#iTZie zXsNojTf3)?-=8sg;r9D8xArczC);mqJ=%VM=H{br?d`Xd$04~5Q3}{Bu3N0~T7thC zn9v^5cS?KEaT4JiO*Vvy0hJ0z7x({__unl+6 z8wcP9@MLc4qG%A&r1Ps0+{MOxJMhOd37&{F8whhaKxd@gYErl@He?{i$vlZfl%3BY zxD1#^Ag$cj;d`B!<=vPf%A?1=?mb2;QcVdH=Mi1>}+90GDW1c2jr)rkUo5p zVam+v(+!-iTIRv&DLW~29mE#y;>^~K=faP!*V)7lHWs;2v+6ii`YoyQ7xDulnHXyI z&}E4J2oYjAMMxdN?TaTP1?*p8;CZCT0g$xD>1%;X+J7Z^=tAmm^q>t}nMK5rvPlcq zb=otbCZJ2M0+u)H8~WY?rs1`kSNM6fPhBWXkhm@$7-O9)gyBAPf$e%t;7p`ZoBgRL zN!!Lw)BdeM$piE=DqQdo0~dNyq&b{`FHI8WNW9f%u$(24{;}GB5}L~*zq-w0$#zzg zrF`>!(sw4{I4&{y1@>Jmu1w^UaFzRr`yjw)G>=O2&=q<^tzcjl94tVjr_0xf5==*D zMsy|;NY+pLH-mX$GYHu0(?K9_#zN!ODP+c_&6Q6+ zRsw;(_$C=BHXX!u$(c3pAv0MM9f zM;imsaS<-qpzw6*AB9NG>x;iu92=bDyctU}dsu41-fv@%GA`pa1!vp8AS68+B1mu06h>&>9F$34$Gye@%_%-a`vy z1)l|{a}B__xGTO;Y^($$acF#I*kjan+^l2`=hDNk-GIz$>&w>Q08DPV0H6R|^tD!G zS*9nrG=@NZ4``q-SJby<$4J>(`oVQDvboiC_q3F z0^r4FRUt@?4LFi%O@U|Le>Bf+3HUKD6ILX_W-uHDpDC>wU}LnZL9akPXe|yXTnixp z9z)m}AxGh8$s1$bY3rS<8uU9(c(RDNx4iWh6H5~CwN)Mtvx*I z5+@V`f6H@vu))NxTIoCJhxE@K-w=aQqSPheiE_umv*1+LO{JxHOr+jXkHwqzt}^3d zi=cgjJ;Yt8QuISHZ5Z4Fy&xgu6uikn@ujg1L#C05(sIMVRe((HlHQSTJxkMEC<`+( zbbI#$XX1i*$tuo5XAlv@s8+PB^UBxyZDGH$b^jTrq>4$a?ZUasWIDjfL*@bx<^hGO z<8^AWUSZ~Vak7k(HG^M8Ms`qP5#7AJCH-bmj4s#XSkh(;&Pg3(Zi9s$BT!-g4x_yb zay&GR?d1TzLH`QtIALhN(;T^2oOS)?8ydpSq*Nuls6 zY5&;|(__ZtXXlz)LR->VAFT3E{tNjgQey%??`tX*jew|~$IOWpI%UPD#p@Rn7WlfT zk1lRvX{@>tJc<+RPX|kD{u=R#liH9#{%jN$EaA$CkT6lUi)K~|SnYE@3>_cXg0H0p z2AYKtS!C|9P2x*WQq9_VbZ9n}2whc%uu1U>3ycTg=bDChb8Cd?2oGVgY{FJGaD@$t zbUxKkh$0b_f|PiW)Ta!TX9i)F(PQpmW-=Brkc^-s-Jz-|YFEyK6(vWElPd7D7&Wy&1y1wdd3HZC-mPaI-yr{8)bKC%?Qa_}On*n{kXa{rxQf`>|yA{7gH} zn0rPD3&6bI`Fsbu(!qA==hPaaYuqj(?Tt#&LER@ycoH_&LWRvFhu-2gJgpONWeGh zgPZaUrVKBQ?`PNysz%@!n{AzutK)(KSR^GlS{Hf(q!d|vtS3Zm@-t#b%PfT_)1B9# zn>Zr2>Pi+xIwUXXKhfN*0jBNQ5l{+`jE#)Hee%UTGHnK(|G6ZbW5y>Z#?~iy?W* zr(#L2PP-K-qJd0hka zGTJbG7dHFED?!T;MNKOj>!I^(MTb)Od|tW8n@pr#rn{_uDRp4op|uVbxC7l$Av|;Z z)M>JRgQ25)+W&rS+{BbltKVm7Tu(p;T3L{|kdFyN4pIqe!WdOFz_#GTSfLtrIRsAzz4i>@LBv)mR;i&#ei006{#Z{`UORyv4ssix-Lv!sJ|2geJo*?ZnI$`yW$3G&gnF z*;UeQZPyt8Zp?rtIa+xre9xy%U{-W}I#Hb$bSXy5iO;VEvq|VepX5_FHoF_ph@oG| z0_b-xjm~Q50aFO_N841?KV!VYHf1QN!K;4rQk;2JyW25H+vL`MP|f5A-9G;DkI3gg z`>9Owhx@bYuKh^(SCg_RoBeck7^rA?tz$9P8(rzabrk6frBDA?_fLL~x1`Ezb2uIM zo=hWIQ!Yqw9lw@61IWoH00`reM6q=-FHHr7>Wir%4Y7&qnh`!+lwx7NV%mJ;-1Ua* zWzf#bRpf^B3kk=V)ctsSdgkr4qXJBKY_MP3U;T3$ul{LoAX0rW-dnr1``X#^$J%f0 z*4~YFcX!@b+?&qb+B(IiDqW-C0f)rBHAEPuUhDDJJXe z<+S#CzZ5@Jou^LWI2&Q(CHSqNI8lO!+q9oRc(TgQ zFTtD`Fsg-wE(UYBWOMVA%v+^~1d@ewpRe%j;XA31tu$1*DfZotRmUT9sgx;mFIu4w z1tv7`Ym4i6eq(_VB}&ttY5sheS=Je*qr+!E6#K_K%3{l5CS$y!?hwi3=KQ9LRhfp4 zX$+Z9h^SvXvj3bjLX*C#lA#R`l25XdOx>l~h&A9c(VzOW;>oYM7Py{j>4xK>o>E|f z3$eT}AbCM}<3G{^GDQ_4YXB9-qDTSgtDl(mG$;S>=u`Qw9@sEYc5CmX{h;LcFt}g) zsh^Y=UwkqAvBF+)^ZYw(8Lyf!k# zINt7_-tCFY?FpKC{Z@RrwddXTWcfwUwx=C$?bhCn_Vn& z@amgmF-XA7G5JIXz!a39({0HS267nC8{U~?F%E;{2b3mg|@V6ZJEYA*U&H#ZLJlm#T@Qh@}=;{#l-%sOekc84>FckQQu!3WQcnftSI)opOgL4(hEfC>G#*g(2J4Q0$-;gYNf zQ5nccSRRTl1Ld^ZKj#xPr^4yB75A1*wwza87P>M-&^FZV)PN3=eDaeBoC!p;m=~uN z9RnNd(uTJ5`a;PPRYCPycriX!pc#w4>HHFQyXJ#@6E@0R7v4hU!V&ozn?sVUbIh4m z#uaFYi8bq%8zfNMc{)Chumla#Krf~pV344#j{(LC2_|e7C3t8-;AePXW7)(KD#gZO z&T!sw+PdPH!g$NfWJ*S6{S690tsXkO`LtG00CPn1WG$FcFmU%X5tgNz$C3TVYl$?w z^XtHBAyz0}W3bZ9x5sti2GvJz=g%fmWYkSH2-g}c&VR(5R{2K513r!AOlxR05m*Ou zSzry%LZnE#kbVMk{?i|%+!>~zN>>EJyehk8>XwOC4LxzrX)dkWCCC37A)U{o+rOCq zKF+T^ej>Fk^LEf4+V9q$Pb*8^gU9@tKluy$@wP^xjtx7CMR}?$>zMK~K=`|3L%ol4 zmaqa|1+4jXuC-i@2OR49pfQdS!4wWFtD z@cjP!GnfCi0*zmzCqM1l93A7nwOc!Cn|^Pqa{K+6TYIaMJDY9g&x7mJ8r1oCO6oO-3(CS%4jmeHy<;1m(HjnJ2teg1{eX zB);NoJ_(~0PeA0SYASX*XN^PJ;hh3**Jz`(Yy`@AU8!K=PZE9$;Z|Q!eUM*LmtDfZ zL}}=uF><&HXgo=@)8Vr_P1)^Fzzp)&Hb=Dn;X4)^Vv_FwoitxjOlu6t2#KIwz} zK^5QXf?MYx=s=6JpkIRinGLq=V<4X(3!WN?3x>96o$5Lc{*Hnx{$25XhGavs$f#|` zg=X-6aB@R&lKCPibjPI?S$8O{r<0!3s&__EMnghIX2-8MickWRItR&r!9MUA$s0qu z!1qoQ6m9s^vWBcALP(M)&~8#u&{fR@B`!pI1e}wZMyy&6RpDe1f>Ra3?;Y%bDTV7= zWM6bUe5<0Wo*0izo7tbpVUO*)x{a|$(x&_t-k=l1xI$N*wJrRmlfQPLoKo0R5Lp5jhGBF*k|e&vqU4V^Gm(zOYDolB5?=v#W)`wHUX285Zr^R(Y^e%4P|Gn6SDL0NFZ>>X>EtE) zD24J;=YcoA&E~_C+gjydEZ@2jf%%EPMXB;>8PJ*e=}%E`EUnBiC0~;MoZnGQ@&7!) zPAJ-JxN;*SN~vMVA{z-E8t)W*%K^2N=!SMVSb;=^3gKW{GZ`--Jqvsae=c_uAQxn& zl0kDE12-UTfXntD&`QF%9(UhGS6*&-3ag4@H)B-SsKG2UU)=!Gw*INU`V&BSlvPEdwg_-3`zB*x0$To4V`6i=9X)*kIy z3>lN4I2=5Q+Oh^>AR`2ba(8y8Byh^7F0H>K6HsA>SY&xR)+HuV8dEV+xUS*a1O2Mo zjAP|t;(l3D`lN{!x`Tg# zi$IrQTGZ(N3t@K^L#n<|F#~jPvqtmE3e%Wp8jJJsLcYd$?j@ekU_O=EbBC`;d*~7_ zxH*HUo+&&;l;Gp2vwxRuwL8ayv6oXIppwS;Q0!>`h(KY2tW1v@i! z9F_|+3S%N+|6hM}C);n(5ZUm#m{&PIP?KAeUN)UR5=UO^g>5s5+9`~P36cfG~iU*)iCVwS}#7Y6DJ{M$#mg48<+CW3dxmlI; zb^kG!!L85sDxUom`qU=AuAw5y33C}&&TS*M0?l^r(ZSv2Z?^z+Yq!?5^VxrY=9VnK zwRfjIy&F%{-hO}P)}BXuj8VtF508X_2_-IK$0>0g^X0sOn{d?1ZU}dK8cC!vCU?sN zWPT^yS)t&h3&x;^^s8_IV!|&m&w3|^K{S`YaWRs1$#4_~M7X{n{FIQ6AIcWa(rLnX zI!R`lG@oG0crs?mrKnj1+DD&&_X#g^oQlj-pKI}v7j{w}JmKagT z;#xaNMc{yQ!0^+dF=XO+Kd%q0LAGKRGIBmli#8h%msLqT%>gvYVDH-K=k-=qPLLL> zx`U(a3bfRBS@c5}j6T*28&=?f1cUYPD@6IU*XZf}BxZArwPGW}6YB7MbEXRWaMw{u zxg70a6=;Ga9ln-mNtD5S8Z$?eRqv3`yUT$bRZV%M%oHFw4Z|%O(6FCTSTYp#-0d=9 z4q2cd^J%a16&ez9ar#93#`=EKsk{tyEs@RMsRz|DW%5`VUe$%59oHVeAY`75$Mx5E z9kfPiz_D`ZsGC4M+X;m(SXOQ&oMr%PK3oO9+#Zzq%ZSv zfE(=vuaR@kNs0A*u3bFMCnfs9{=ue>-CvN0Fj5Omgk;9+u`aH}%PUlT7F?TwPT@Mk zK2o*ZF%hyd_K)M)MAyC3{sfELk;BuxcR(cdwDME>kRO;jIAYhLUqSq;C)lt0#N-$L zopgs66IpfLP@OW$i_yX!uy zU;fgM%gZmnl*Kt|bXxR5eBcRRePUfi*!uzYSO!WKAt6rUo(K3%T6&#`gB+(`W%1g@ z60`JOb0zz)0%lqX%GLwZ0GDCoo;G$`Ol`HS`pHXC?pduCza_#QL3ug(ml zqzvDTMu3$wTu6f2f@S>WYfii;Hk>C!fbu`E1H%D!pddsneXbJfb~NBagkSk3m4=vd zOPX9i_tyiMEc`eatM>`(#5dqsBfWa}874E+ZCTjXFj=NO6X#}Gd>H^b`^Unkq5hIB zO)uyhT1)q=n#ov|q+dZ#hL07|`!XLeHBsCIx;#f~NJ}`Rc`v(ozF#5X7t-VntkbRO zQv=*WXRZZ94YJUyt}0XJPP9K|fj6hmRly-9|5c3!p%PCQ#jUTUi|c;4)TED1j_qG0 z=aOh4=qLvbS&2X4WVZSwSNB3;6b6CMTsL8z6uf5SZ}Yn*c*3W-7%GsEK*c(rqEbQ& zWkMV!Do-jm3?6;Ys6@oCfNMkh@&nCg2O4bzoMYn|9 zr0cSzTMXI5dKUi6Nkrc!&BkS&3$PzKTRB(sClqVKih^w{&G2Nc_lHjw{jBLW>p$t6 ze?*+d_Ag-ntq$UM>rXEyaY64$3p)p$Jdm~GwMM_Xcp>G9c;-a(RF#;*gyY)OAp?g_ z>mr~Ch&1m&_W=z{BOhF7oqi?e)DBjiy(>@-^kp zZj9bD_8JL)@=yG1B%SfRL>xMs@l|v{CUO-~nlUcoZP%-fW6f^79y1N=l^|_biN8wB z6({C>s!W$9ydBm;@DCzdXO>yR0|GgNr|JKb}9-Z!o_pJ2X+O2hMdzxWux1XQ6wRfvMdHQsJrQYf0 zr*7>zv{Spesg;JjFh6zOAeGBCK%hH1#)<5!Fs|Yd4vG+-chAIH_EFVke_2t*cgy5O zB-(Wbu7UxwqbRgP@gZvyki46nF|_hT0H)J}f!LTr+659>$b)gBBInJMH?S$LP2pcE z(n#Kkok?66MM!h2owj}+G(J1?WZmtr59xY&Z{n+gb>Sh}Ic2<#uo#l`!#tC* z!p4v`nbjIA<$j4AL)jx%c*f&br`CL*)@WF0Oq{6mY0m(=6dRc@<}dt;2o*N`GpL$2 z9)IFFR+cB5P4b*iHw=d8Nf%LBe6^vEI7EnY@d82=X51eQZXE&mQ3+ZVehr zB=t1q8B&_4fid8dA2MN^#X_ZvE}m*BW`;$vq@9Z~7IdgEv5pVuK{wV`H3C@nA8U_# zk&@U6VOy+CSR5N?hGX!x-_TYqujhA_S^!DC2?4@Ip+==O7;COj>hc@_FmYZ0$>Ny0 zet6C}`MxB12K_+3inH(Z;vkDPbxguuw5B;62Oa4?eyR;!Ot+mnXR9E`Q^cX@VE<%n z0}(%Yg7i0pL7y{;)<7p#k`bnsN+8KlU;yHo@~`t_h{x?8bP@?MN2Z9S@Cm*k;%I^I zc-^_HYK38gnc-f*s-3gS(0}rcy8gDTQoV zkOvIKU_b=d^@>@q(U80x4e(eINoHr4lNPa+lp>Z-;^NpO*CtU}X_JFBuz?{a+6g^G zLvFk4Lg1FU6%kP_=f=NVamM3a1O4=;VDKIk!rR1E7^h_nt#o~RT4($H*8TTD^w^jc zaw#1wJ65(^yR~TJ^=5bS`0*nVeGe@jxAwkmdm(yzg64F4rQWSQpO%`0K_4a_6$49M zqdJk2WHH*sNgP@PXnt35L=_&mSzfCf&xloKY*%ko9Juo?ZBJBIc90(f9>?ZABFOlR zxabrhOeY(j!l zBX17papP;K`?2x$S4Fs6fjJ4vjMk9oAD-QcJR-{*zQpH{pUP3e5g`+&jC^hCnlF-} zbL77Tbc_pwUKGe8rE9JNUmzMV^U7 z5jPTJYw^k_nrWE@5FD?Pejs$t`SvGWSnh)yEz7Ixq>!L^4UmwD`!B=uX5_;|(^VIp zJB3b%RdO@QyYj;R^T|czgN_Zf!!U0369t#c5`DF#KagtwX7oE}0M~7ju9mB^Ka| z?s;khuO^30>laO8tto0_@1qNXacO(Gimm|e7L?LOjxdj_IrX?!>8cZU1l-E<1l?P{ zOT4J=>*U#*di>yU3fy`Oa*qC&|DQg2BH3m1Iqy%o6n}T+*uO8udmBH_j(y(R5|q6Jk zuQKKDUx(yy3PHwephyTkzqKuikR_X>&3QkC(o;|%ivSlR>ixH3w)d4PmNKd=>&$pB zpKS4ofMij=o~UxFG1{`P_)HX=WTA|+W>V4*Furd%+cM=8#)nDaz>|r7jWf6jbove8 zmJI>$iZBHvjTG;=!sfWoc5ScsSsmy8z)3e`gZhvT%X&Th!^BN~3a;mQpbtqpYzc3x zTj0GGsq=O?#`~!&T1=T??pvDK2HuS1lv-oaZzh^`@HO;XMep4hx$GSNLbvC)>ZXeh zl&46iS)DX_7k^5Iixy^_6jgz>WZ&2+@PVE(3s&G_DIcerGBCHlm@ei=VGT$&pja`- zs`UPgWyL@xm8-13Z6YnJ_c3&a6QBuJVK_h z=;HMdz+z*b&NwNp|4u9NHFbCY)%N-OOnKvnrv3;lTY;m>9gJ#7AnsesTBteFbMsLRz1~L@E;MeLYvA(bW^E@nB#ZfzWi(&%A0!DrrRxz+K zF1DVtclpgA#2@y)3(40_pa&~DseGAK1G2aXTWE_yr?sCj5T1$&2b1;=GQrsiLMAgV zkKsRb=o`7+^eC<*GpJ7bkpLh}m7Dh)=X1XWs zl|1wrFAsmAXY{>(yvMxbca?mfkh+#~cHJGXRRf%%Bd~VnQo;PqbMgB{a2fqEEmD{E z>yMwvo3%jG*;jYH>vP}Ohr*S&0ry$QUgP7w^FK_u&nVlk{nVG_@#7aq96-8}dX3)~ zMC5PW#)Mr5d{6%`6bDRD(56K}{9}s_r(LG2xFP^sFKan!x`-|p(gp{5EwIXXJ^FG? z9(dpIx1$r!Q52H*?}0D>vy~Ye2-hN=tb0EqVQ& z*I$>XPwxP3>f!*U1+)?!I``4xgEjla%}y?(%kh&ZPvw%il<$524WRj z`8&7wO5xUSP44c_mm=hyyroa%$<*^(yR{!=+w^Snt>1t1t>e)8)^6>AZHo^cD+YkD z(N(yR=@Ab+bN?16BsVYEYGP^s+#>~x1>9zYlZng33o*mUW*UZ?MzNI#q#kqzz5YFz z!#nl8gC)!a7ceDgnf+q(4hhU{>o|kY%tIJ#>O3&XbWj#+C~YLP@!J7_!Fz_!+g3!K z19xUom#t%?V%xTD+qP{d72B!Utk|j8wr$&fgU;8tyYCq5C!D?aT4&AqOi(T%Lp6>* z`kgLK5aAJ^WwYITMYtPA!y&;MXwWpgkdR5GQWuvVh&$!iMS9_5x}ZNUZB8u-kuT-; zEKkVElCS?@0(6a&iM~LjmBml0e~HFQ{39uzWSeH2 z9k%74bjk71UR{hBJ=9N)wIjmHUCO=HPiy0#?quIjbeYm*ec0&^3VMR%QF9uDI`&yA zKQ(cF8O&eYuZVH$)sM+Sr(F>3H|%+C=B*EXHOu4{!nM|sPI(FCm8Ua8X=rhgc@94h zE-Z}Fo#`ZntNa_ZM&4BM1Wm-gcOu#uBQOZBLbbnQFe3iSi5Y22hfeE^rBE>Qxw*->wmc*&C* z@+ss*X;XI!ii2DAKuy!UF6)cEbU6|Z!Vr@i^u^`0w|I9d2r>qTJ1%Oan_hmwA5O*< zqy`RCwCho75uCD$WlUzA>C+Pdyp#B{%M*AE+Vz2?M!q1c1@oj#cMm0^UNFIbjfFTceUo*&*XaVDgJwMg&z8# zQB$i5?%PcbwCnlFEPckhvJ!WJT|)> zFz!IrH=6j6OB92zh!f>ZIkl;_?8!Iuz%S?JM;p%&n#6IULN9Gox=;*mehIDT(e$W- zCtz8nn5{&=%gW7R+U4r`YJ zA6l|FrdCWlaSeP&`%KI-h!$af|Z=&myJHJ0GcWu{9+7n&`(Ce zl@=9&Ra6iK7#F$;98Y;Ck`@f(hsnBp)r{4o0?JySQGKVv{7 z4JM7VqYOzYP6o>41z;yQ!M1lir!SWnN=1zhkxPlV@3v&s9+dAgnDJb zCJTw)`gdR!p%D34aKZIq#S8U$dn3?q>C&WTnE&3&^eK$rT?@Wg|oX)s5 z5;+$M2d+L|E12XZRjaKXIT@sE2ef*($vzUhi9p(CSr6Clg1l4pHcFFc=O1;Z{_>$o zd2VujD}`KBPz~eizr|aT8w3gDn1QgkbW_mIeKi;4v#9ND%NdJ3SGp^?`x|y^2^d6W z?rrPn<^7n62%;L?u`JD-E6Id%Q7n4)^Q6VO!CYWGQUAy+OqULZq(DCo#<;;fiTn-P z_2=+SQr8f>$dKJghYm}K0<<@(47!BDC*cxVqv@9SJ=mbqcG@EWG1Z&aNs7gZD6i#Q zeNND;J)?6;uxmNdu}r-!s$o>GbDhS1M~7A{fAuwDcuK84#*iZ`@T3hMl;bYD~glCcy-S@1SKCOaDzm<+b-n^Big5zVywuQ&%8Qh7o5;rPjAm7U!rSQ2E^bLRr~paNLwm;H<@W}>utd-4mp*u-(@B-8Db z;`PLj7WSI9;+0F^)YzMu@j)6klj2Cm_pcd=`2Kkn|6hG>%CjevCQ9D(#pFHgn&xhF zOtLN1E_|^)3*rjRY>H;HT~=Y`8nypMfvP(NJWFzNJ{U(sJ5;=^5@Df)^8L+qyn8X_ zpWU*Z?vQiFft2rLE7sx0V;lM!4|@LnD+xI=B^W!Rg8KGtZEhB?pQ;B zVgq;!^&rUtHV90spA1&5k5mhDS!f;Qxra)70|LYa|_uzsZz z^MVK{V(C>U7iOT(6IuM+hZhL-R}`6ln7waLDp6C6U=JS|g`K9~HA63NnPgL>_ge@`KPkaz~$F@>qRG$*+`MCI)0^(6WuIWHScQyp6aLq(i8cnFQVL!tL5U(hWTB~V_`}1VBM5y(i<0uR5%by9Ahl^%JWVEt$ z1r856VaMwO0xk@N|Dgn(OtUJFqBNuEGd_8`<2W>-B$SZ!n9__Zk6EcCea6D$4zV!5 z($Qxi+gUzD4iWm90KBrP_|S|&zTdjqNvKY#A?lc@7BK&t$xcnGi6|`xgb#-K-x~B4 zGY=>}M}}r0ZY1)iZcT4EBz};*i^UN8hxe$6Bi}DwsDZD6=JjkLnOwhWsNCMXf=g2* z&e`)X_Q~l8b<9Fv`9lX@Z)%6#ew4D_Y#hlL7=;Xy{Af{{Z2@W@)GP%Fm74f{j6OO1WWzORilxDeH$Exe4>hprWqbS zGA`unYx9HD_)k55ImCbdwztkwN^?*gk-Fjhu6H|FyOaRuP{P9Pi<=fQ$}hx6h?QfS z0|qX`P&F6LkmOZjaq9Cst2<5mJt3i>ousy!Z7tsDBy0H5K_L)N9CJzGHlogvj2f8g zs5Q3fB z&gl24;6?{fy5G~VO&g#hz9p@<@zMRAhOIirWm58k(Y37w?q`2E;G6prDoyg(FcYp^ z@6A?8N4y0JAp=m1`OASJ=Y$oJ>L>rg>FyHl3&G?U`bQuSBY$uPl!6#dO~A{z8LMzi z0(tWfSenE-QC8b#C=Ge3jPD8d z*3g;Kjr1&rXKN@L&Xy-)%SpS_r{tL}UuK+5?-)rbp*n)XiD(Jmd4EQUQOY4k1;fS6 z3|t!?ybaDFnbUfOcAhhj{$o;(q$b6WJQChK-7o3I1#1Y`fkGZeVJnjO16b-rxx)1O zAR7vuzAF16yWOYz%zO|wHi|id4ChMVM9>gHm%{}{&IR6;TKU;$EsPf!fYx`x)%hw2 zmS1C0dnQ)ntlZov#7W( zmAe^e<>1EB1A2^3UiD!taoA2O?Q&bcKyJ+C7KcrINW?eDJX&ca+0-n%BxmT21h0Z# ze0;$%hIezbITfHt2=w{NYtf1gNp}H;=u=|%`m&c2FZ{f_3beJdC%7BuT z#Cq25XN#V4!bv>oNS6kp$2!fGAJn*%K9V*xd))%y4Ah#Wc0;%lp7u*z8+!4RbLIpM zby(smZ;K7(J<%`f#XP*I?Q0jkuRK_aFU`sO-Vj2CPXOaAug;7l8M#MX=|YN3My1So#APGd(op*>avRM0eGOV6zZ&RFxuAbK zJZP4;8DHdTym5wNKKU!}Fp~}I)+?Sq*@`8X?YhA_N{%ef27(jZtgxQ^Ne=vG8>8Or z;o?MBp|uBK*bwkge60)2dW&hf)3hQRXU?3y@^%(td98Va8!ztcag<}LUT+8j?K@St z|D`K@fPys3eYezMK1X@ogc11m3<43QkO>AnSvKmMY09gm*6GP2kAbNICOShek|%RC zpJ_dRDTeXwvYI{`S2!Yy?YU?GDE^wcMD)`&hER|LgGb3?;`5i^wXEOeA~(YHla~gE zVJ8$To04J3WX>FW(I&-zCsBsYMCX1|!RSzRG@7tJXerQLbn!;LBsjqF^tR$%f${-|Kf;O#hM3}VA;^3V zAvIExNEV1fI$n^8&U5676Il%AY*~D;?j|V(`;@pf#Uxjt59oP5eZIbX@$or`8vOO2WlM53U<{<*}dt9_X4qv8%h^^0y4#vs~$adsAA{|&w7e$(66 zCHDu8C++;*f@a?RbmgFc?M+Qpqgp*Np!Sj2qZDVs=FY7_2I^FZU(ovFrTpsSNr z{v>AYU*!cKiqdws^8AOn2G$#xbf0Os|Q@X=oq$eQgh#@H=lko^%L!5aH_@GzP}*osN; z&3-b>9gIIFPjebngktSobG#V(UK1uM|e{7aVhudFPqi{$%fBYi*d!?;GpI5y0;_x zRmRu5Z8Jj0`F$FX|6Ogi-ka*Dh^*_*n8BHVeBZ6_FLNmfM2W^}W;|kz9duXqZv+As zLslk9$V#i-`bzBKMc*~T-`MufLM6ghMCbBQ6IlIH3w=z_vdIU=V0@t_wZXO$b{=aJ z+%E9cf1I->xYKZbQ|Nz9A3S;veN_a~1QHH7@DA~Gq}Njjdza-UCp~cbJk_N9s`Uvr zN|kfcCiVCC3)vm`QnJ_#l^}R|$>bJl;k4@084B@DMRD35=_0py<0)(0TnDtl>wV{a zr+wquhSf@3Y=*EuGkki|pPvgc&@gf?kJFtud0_uh$^ zet3N?@Bgi{lSHBLvymwvUE!U%(@pCb|BU@8hecbT)9&@dP5oJ9Z~b@q5w1txG(C1K zo;HKKm>d{br0?VWS(P<^#qjv|!?eMK^-L8_S9T;+4hmTfNfX0H|K4nZ?ai9|Mar4l zVe9;IMWOzRTT(sc@mDWEoLs^VI@1{Cyl1Q*xNt}St{Z;&ikqL88EG@AMJJ>j9d6w^ z#s)W9_}gBkP~)^Qm@Wb=2irSUp;{1HeXe!WZ$Z-YvMDpyq1^WYdlBAsp!UFVeN$gE}Q(F_t_0+DQ<- zA*RqIr3H%cC9eg9o+j%pyIz!IuD!52(_gas2u_q$T}dE7L~|(%Ov^VgwG4hl{7LI{ zA|Aelv4Qk`*DR7A-RZcOQbb?K>%y6&U)KwmyWI9kXO$SiM^)1bG1#~uT3+EeCJPK& z#o)xFZ2m%T*Xn+_7e0?yu8cu=mb1%xT^-BH*CRT$kxoSy;%E@4BH!6W5crEkm$KU4 zes%Lf2yI-RY`GXQKLl6N)toQSN03J7-r5Hq%l^m{^(PH_5H5R0d>unBAM%-Ml-P^! z7P!_?x9Rgv*%)%q{(>5re}?PVPW<(uTNj$;_Kw}^Y5-v8GycBXp^JKAzUfxT)z zjC}2q(h)j7GwX5mz~|8B&*Xoa`nR350~ioU;GoZwxVO!swi%0wPRMFiJgbJOKKfy3 z2vxO-w1w^e->(C|4f*~iJb2b1KElwgP}Zyh#W>pOm?w&S=9^ zmO>IZ2&A(4bNwF$$ECOv8OqiCT*a$r%ffjE7*PXd#}mXFHrG zeEUa=x+pAvhcNVJN$c$V;F;?_W$8Vi54 zSSXrd7ZlF(Q70Oo15z(n@Et6Y8^mQoaitt0_tiZxS4vy4$B(B);mnn*hLwkZ6^Agldq%n~CM1zm8 z&6l3lE4cC1UoA|wSTyPb8Eb!EMJx{1(z=QYYkAjL11ClEjg!n+n$TNlYQ#M01jaaR zVf&eNMCy9(Vsu}BvL#wl=hHTnIgUV)Pi;0x4(RfjOB$Dbio_h`Js>!C(|DCsZrcvP zTQy^X@}?(UI|stuK)eJY-|wGfOV|(t5h$Xh4MNB=Z(jzRd|)QOFc+DZdT<0VB(1@4 zyx};;c9(svCH-J^={r;NT3#(y{%J3=FwRo$CagASrn(>PpmxOTz5x1b+W8lXB-in%CeP0xrH9xRe-Mpc=PEm5A*vI9(3b>lfa<;j7VNWrnnf`$M z-U}e_`GyQQwKrnbc(Piy1qCAe(BaLZ+}*z|@?2S3##PtEsv=n89{r4Hy6$iyb0Ye{ zdk+5GV2?Lw6`XqHt+rBrZdBFx{4^oYpDozQfCsO-P{J&0V4AUI*PW!DJ@ zlX`7{Pcwa*epvq6XtR)U>eJZYndy?j28jGD|B{`DalsCGwOb@;tL-q*QoG$x%JjJ% zJmn6^FkJ==tgKMr;R7`?%OmkwmdBmj7A7HSQI0`rFPoM&V9ZTvVJI6qH!lY{m*vv? z0XiH`G6bbv+iW^{!gmy!u2ak7MPet39#%MzhzP_I}Ngdt28mAj5eLjp!|@3EFxLj+suw*a1rRYjSFbK4{j>==d+W zr8vW$2p`fa>}gH8^ZtkD9$U#BiW$ z&Bx_7O{&44Ypu9Tz|S?0O+){j&A&P4B`3S$Ap?L!d=M8p>sBf|S|Rbvdxb+G`Ub5@hX%T3+eIICa;#{S8^61ZGa1t6R_c%; z!LwJ{PdBnpz9PI+tv!&mBA z0;xME`rePq_m2%yQJekD&hC&6)<_>GupTWZ>an~i;%U9o% z#P$ASAsuG-@{J8n8$rN``r|o0op;VDM|?BOoA7d8Ahb=M5O?e6ex3D|O`bp~wOp+Z z3K6bWQo(x~l#;;r{Ug|{cY6H~FZ8Z*yvyu0I;O;TOxLMI43>YNJuV$B_GTB4)Pj~w zO()BT*jo$vdL2JL{m(yM^9}FaHx7^bs!@4r*VV(PpP1MMQ?sC1G9y3NCqLfwa>^=P z1ToH)PB9*bD<|+YWMJeYhdD7qp|B8tEylv&NO5t%lBABIHs&Ji;O>h%#bmJao2Aye zBK55lfITyg2+K_R{K=??h0-@Yvcn_>Fi8On{HMZQ?dE&B+J7g>(!WF{o*2!xt=lOk z-t1yoAgFFKA$(AONyn>|Xsk`~7jxMJePY>O7}0_Cye5d~h_BswLHl_#J{yIcI7PEx zjDcoe$krJhZRXpwg2MXp#2We1#1p+#m>7wX5ILpf?~LT#x?1$qDchFKJUd!+mPb=G z;k;w|+u1u18w;iZ^iLPgM3dfebx=jBhVbqd`5C-SBGmvKpacsuv9oTx;#{tea$eDV zj*$yeG=O}ku}|&yUA?l>^Hzit&g{H#oaqxZYj<8=^K4~*hBOmZt_U}5(WU9-==tdp zbQnY*Th(R@sDn_|fViAFGO!A(Zxn*l?9s$sVb+OE)qOP`BieVZR|8|e=(LDF%o91! zC_#d&s83L~z<_)iCldGzR?HCu8G+-H{rigmz@zF{b((>XVxTzizliZ**(=cPYoalAIJ4VhWU6inX(F{CwTa zjbXto(N85t{n-Y>#Ic<6SI1sSNq||y>h!Eh~A z>>TA}1oLIh@5bEP6^GpW|7nBxIj`=%7`FC#3xQ>0#Ity)HebYu(K(oWE)zU*NpR@` z(KbmyEi?0J_+k0B$)__nXW5ix@W%f^FvgziwJpYIwG_%a_7-vN<3A87xOvd0??aG7^v8utj6qy*SfZ8)+~ zNL-C4{d8YRhVI4vCdZ$WD{|g5Lnh_isQ1bcYvuF+>9QVT{m0_+AiU0@bq62c#>+HT z$QS@|pV1V%(+R165Azzqh3KOU>xVo#{EEIFvYB`7Sb zerC(%nEqz;^=3$EYHarJMoQIRmFqgcTpOL2i8B^d&*$_P4ipGq6l%ljJ6*efN^UF7%-_|E4E$F26k&T;ge#WyU`0)c$nYcqj6Nt|i$d#X`qVIsIBiut16CsP>W z$!2~2n~#g~!VudIDX-BY)IiuIdqK0Gl?3*1*T7*?ATp#5Vs3YL<5XcM9*?u;b68e$-dp z>2(d9g+hxBCYX{_rynG7EQo!8eIICIJg}9bxO@Fx0~)g_qPoY~8@;lHf|e z`=|~@)Z#D@BX|L;T-MUrc-{}L=i(Vk9o^Hh5jlz=Z(dbggBN^{HCj(JWxh*&JVX%p zBdN&PRAm0Nx(P*H8KupR5q3JaCU+drr@JeaL&OReo4I(nmF*Zl!`Y3iXL;paFJ2?& zF%?2NUk5cS7gD-S!DjlbHA7^g0odhY?Tqrcd9nTZ-K1D_PDq{eS!7TLYM@N3*``a- zl)Z2yzYYq5fpx<5!(5h(&eLEHz}~qfkrTj=Jrl)M^baK?h*mueP35ml)vTxXBc6(` z_7ZkErQf}*YB-5&ZCI?}R;LLZnpp)7(-U?-=5ihidqSIKXa(ncSab__Q#MOTZh0gC zTEM0V(-b9%89QUHuQ+J**V-aLC!szBXt(QEPW03bHz)+!`XXRPC%QJ-U3HFT90}LU zUzPpMy4FC7xnt|2ucKGMp6*8HJWKWDuI5f9=cK*AT-rc~BHW>06F3mQ=p17Vn5Z}W zhMrlW9rLfoo-Sy8wmI1Y5~#L|aH(;72NKBtJrX74ZZcZs=pU7q^B^&1#er`SBJ5uN z-Hd5L^vz2q+7r}us5{7Sw%?4rvCA32T`7bA)hyvK*4*-*eze;M|GED6BhymrTP?Ti zig6NQ?{4RmC7 zZMavF&Cuh`01n@IY*N_kfeY&Dsv$?df2nySCY|cpL>N9za2#RXli?tETQ4y0{Rd~R zAf9l1g1q^!NdR4b4@;H=k#QG(`TyPKFY_zf@d}YRS~%!+nk2I7N33)i+K#3MN!tEG zd&j0b*JB(|xRG5A;mtqNBM?1UUD5&@(Ng@y35i4t>5tTOY`%JIK_pAr&vtN1>WXSCEaq{gJ zC068v!DT|x1-N<`HTSVTXW%FWPEGD%uDAYugoejbs7R-~ZRd$hnnn@J^C5QgLR%fA zp=Z`(cb0gM@JJ>9eRY8~93m$B2NWmc`&G}6$8Q5s(OX!gGntOpSePvL(D5TVpdRiu z5?+Pe4#S7iHOA@Dl_K9YE4PVFj?qejF!*j2J`ZG1);p@xW(VHBQxAsysZ{iW+lHF0 zV2iDCCHms7%|k9l$lJ3)i&qW5CTT{2iD7(ozNMfMU3m6u%i@jZV!pB!VbWPEH%cp` zi3Hi2XaaMhMOU3L&!ct*JV#$qyi;<**^cNWCHK*I(0dn%cGc7;-S14zaN*_O1rXi$(l=IlhVPa0_U0PEY48MYT?`VptQCK03xG-^r0O!h@LRzSGBlJrA>2Z!HTs- z8?tc0s4_UI1HVi7p^-0o=q%kc+C8O{qV@42GK0e@L0|P<#}A^NY;}J*g*ThJRpNd; zMO-``V$_tNAOPa)qd$`s$pdO$IIk`>sWjld`^Wmd>0vqeJ0R?50e;`aWd=NaXQD#M znxq1V2!0ux9y}_mqUkb;ZbftLk7MQ|km0RXO?0?H%UEr0THdVpR86=t=WE*0Wx6(5 zYhOGJD(M|_X?Y+ zv9JGMRC5ZyaYni${X7KXb~SIZ=08d9*-Uw&6t*q>@xA((Jsxz%N!QrDOTqQ)k8bNf z*K6eepLeu(XB2-VRlG-J;F0!Yf+tsz7oQgY^xkZ0ISVYOH%1(0Ux0Nv&v& zZbL#{0DhTN zSkVvq7X7Jh95VX*mr198qy8cthTEsS97P{jLO{febR)~skRk4WoT(bdKa@k(MfOik zhKRIV1H1LuWn3@vac$`eYhKGYqU!Kg@8cELnbfy!g=3i(?-_0l*2f`P|AS1QS&i9! z#2kr8Rd~iP$G^TT)8}tL|cAjLt>i6`p$;pjxC=7Y3&3GjPx-s zJFkpsLoSBA%xjhxGyWFMRr^ra6nm6x-Mv$; zpL(WZHs>dlaYb>ASIoTIYn_1QlxxK4IG7d|arQ1NpBu zqO4TpWrxq$CPDTCn%RhkE}HZY)=(BSq0z8o&I-x^cm__oOoxfjm z@!hm}fXlL@fm&bBhTQif4&jWtc!P2zF6wi`iLTUN^d}L|{6NM#I&6J;wN{#|PCCnL zD=%7-wl$$}4$!3B?AG5@cx>^}DV_`VAQ#eCuI(*!oY+7^9+pM+<^R~-9Nff&T<{E> zI9v~7W0Kmpp1{AGZ@D8GUN#~GuZg`>e~0ISrhU#6?6$m6TF&<|9($A5-7L^tgIWG) zN&l0$QQHLYU2bf735w_0KMOt$AYks9k)bbZFR=>dTgMXaiP)2+Y%_VKY@CLtqP^&r zlrS1L-fSg=o|y4*EESB$A{fEMyx_D>Xko_MMf3JzCYrIbg>&0~8VrIQVD}mX$}lEx z4BduPx)*xHEX<(12a?%kNvdo#s1uQbi{^XB)~&wJf31hbof_B3@BBS9D}R7w4gQ%p zKetaiQ|i=fFs8hkGTKgbc8xjU3@X(0m9sD1&ieGK8nE9rigHr0&zC5t>K6`=#=Cmp zhxT!^{}28*Q9OuaM8zOM%i+lGH*?#@hCpM5==k&uG-*l3E~Au&9Y`JANZBW>6t9)~ zWGXgk?=T8{>0iXKkBC_ja6(#^Tv*#+dwKph%#Xkqs9~E{Fy&yeMF!d#rD+AjSq`T!O z1FhOIdS#6!>gL~HEb&80zv-gx&hJK3$>Xbjh4BlG`X+VLvL(|7D|`Ql_5!hJn1A0$ z&U$)RTUnGtShmHj7rWt7X>rZy=!GZeQdQmxOWAZWSq~$*P$|A`lu_J^&g|Eo6e^6R z^L-CLC7b45y@H+8G$#)v)bu*D4(~GzHyp&SBpi)36`JT9!dsTI)DW<;rTqzDSOM1D z^=M5E2&^lj%eFqZ_=#@U?+I^Na2l5gikAac2;!f$5-@;ar6%|srMXWwc)MTf|AEdM zIysI_NoN_6ozV*oeo(GdAl~`c1&s5(V-n=Se2Fgj&E^8_?d>05XjP5HdKp+XA!cy4 zaA4AcBi-2SAqGRy3cht`JlClOTJ)5h&d&a{DGS9hI96g`k#TDyPp~PKlpSEToMo9f ze=1qoQ7N#|k{F(!UjN}aY`t?afak!lP6^%q=yaYFO8*0U8L+$I!0Y4)OGZ@pq5RKr z1WYpryA?I>=;-HGb{Yk(-s}hEi`gw=@dq)opGoH7lkDucw0!T)48IUh-ezS$*^!(w$UsZGN3BcI3zF zf4=c%SJM7BA!!%kwHW|uabBaT#2C1SUeHfsPg?rrTp$Un&M8lPkd5}C|DohcV(3Y^ zRCs9xS@@O(U!ss@1je^%Cn%1_2j?!v0|RTJadrzrl2{9je3i$S0*>o?d>X!f z_#&)MZY!MA^lVgay*GA1lEU0k?%c~@|HQOr$>^2tB7u5|VHiBe+8f~$S z=(vG|=d;V2Hw`XvG1}0?P`&tW6to zvalih-b(6CTR7679!5iv=9_g+kC>saq$JsClGh7Ys=xcW^nua$HJt}?i|=z#7T=|S zv666V#`GH}spbxOY1ctPw=;7Hu(X=Bk1d)b^8gj#3oB-uWLo-CO2?H)LhM{x<{kv7 zXGrY8t+QsZeu`mZ*tPO>W$=cOVWdI$VjYb$gAmH3d|QM`eryd*uZB6ctI3GSfgJJf|mi z8$~H2QJztwDkpG9Fq=ZdFkUvOGh2{7Q=Sm#w~PC_XJZ4A+Yr$rL&w!b;C^xzwzJV2 z%Crv^V9YXl#><3`gF0a{Z&Q$F6zU1Yy5%aiGpgRBITJzt1w3|fPK&NFn2rXs@cUcS z79?FSLzO@Pd7rZxgc|KTrh&erO2biY-P)_=K`#g`%bP7J;nFmMvHHPwbwT(=;*3QJ ztBux(xS zSq-1~4-7@3r)$FOBMu>^`OkA}zs6imd)cHli2s1Z8y1G!D$ijW zTX8E!gb8$IAR>fV&^5U+;0)BW#n}C8PU@}HPlM{cOfn=ha`C67c_)!3Bc=U=^h}gO zEE$}atT}!K|0|aBQ35&%pir}N0k;$=!9xr7y#2f~>axGuvV6z=+P1lpNIcf@@z?-J zA#RuJU$8uT^=!;M%*LWXwvkyYmF#8&YmFJM5DSl9;9rV?5#hGZM5ugv`Wq|nh)B77 zAS5I2kqIhB=6fYTv4VQEab$WpYC;IH155-Dbk<8G!J7;NcDWO&%PO51!d1pRGGHgV zn__}dJ=15I`B6KS9CuRk5Q2)^uwc^#RkpEGR_(rUsJLa5#2SVzAB3{NddGa#JqkiE z3cvhUyWz5n>8FA1Y81Oq8dY^hUFmzn;SVwu=B4)2cQ?~CM|+>vUBD`6aY8Tn-Kjnk zHy_Y`+7t1hr6 zFSm`c-Qqo1SM+Y**otTIIr)I0#mGf1+o5V^lZ!C|^Acn}5YLuqqgnlvnyZGv_ia+u z6bf*}eIIB4tHKsUB23VYUkCcj339JaIo*Tek^&z2EN8B(8If8=Q{s?C^yBJ=>4&_`O96-J~9I5*`VcJE4tq6tIJwpRw#*- z+l1`0fzoChp6V~!1vWq)8L%0=a7D+yd`$Qgf#2pUDl=asNXGs=IiG6__CLqOU9Ed7 zd!+evWE!HELy1o)*cfv21Y1TSQFh+ zCD_)oqVa~aC;V%eO^HX+?Buz8x%ojip%i|bqYT>#$Jx<|M>HW67sSJ8!91oqN&7d< zEuq~q{iJjC?UW1RgY07XC)!UI-F8R0kpFS>^@fP#@tTJCI&WxkSgA5P~fUvB+0L2?fm&BY@9jDg1Gdj)%qbNTG&< zS*7HU1S`6{n=1#I5`(NH@@(v=bc5Be#~xvFUE8)JE4Ecx<6htQ|Ms6u?$@=*`+Ut- zt{uCF>m?4!6k@j3AU0fHO)*oF3*J7(C3xW6KC!>Bpu%MQ_we9rKfNIo&>6-ZQ0RM8 zGuCpR$ckEsQ9e%-ij5nKu#c%)b9H)HExc8*gkieteK-O$gtdp@6K-oIZscuop!lH2QC#he zGQ1Ac3e|p*dLsG(QNW*@?DizjcpZx6W=3hUeTHkv+rrZR;L?#gKT~w)ttylg%+Vy>Z0Iwkbcx1SJa5aGi?JoR^fBf34(oDQM;ck+=cm|C-eo-1WiFU!T{FZ<^DN0~JJ@>Z;e8fs9973*~!+qutyB_RN;euHO0lF-T z4!Y(xC46Xf6fK8Oh<9)6VP11T4^jbK}@R1-pfg6j;wxK)>qSf^FTF+4Yn4sh7 zjo#hkEk5IMLxNz{FiFU~5ILWB5`?m)RA)ncB6h`4^cy*kC}!vGE-scqDsSD^UBDrk zZO@e2)$^#WVetyJs%|C5I|Zgq)^_LsjA>a~JUfEo`!!9kyfU&U^R)*=mXu{_0M@u+ z{A2+BJ>1QW`xL5uwF5^+*N=6{i9Z1K^^I_2{uMqmCg>;j*VCioF9w5ejCq3{y5VGU zcH>Tr@E|N9dMLJ@3DpQvD{IZrvC`RO`xrLAxk!*!a zLuC+9YZT9h!S4sAeH8~O0}|wbq|oQKg>jH0onR#);7r;Y<+8?meXh&l=)mDq3u39GOtqOo(c%LXZEWlb1#6*v7u{q}Tbywr4UDRP)qP(AeN9m1{1*VCKwZDT=OwW2 zX~iieEuh6w&qGgQE1h(*(Elq`KlE^3V!n&+7#feuG!g+z1W=*pQz5e2|3XZPVD=eL zNHlJR*M*`Zg#-T|XFtusm0ZSCOqft_urBMr1-%oB9u6IIqgc}0^#IZ)dxx}tq}6c^ z5`9IPG)ejfu>Y11NCJ_z*38G$i4e29qmmHQ0(PEGFwXb1l>rMPLK9vi;=Bc{&Vv2N zbnrU)`*V&@J7+ymm_u4#=94-3gch!XELVf;YuqJd=V|}21PCoUQqzJX$g>4EJu6fE z6iRb?@Rdgx8f*X5BjV41Z%fCggqL|G8nD0w=be|%wv$h{|HUT?tUOY~gN26p;wxu4 zHRWUR6c^LVKrNQ}21}j2y}fzq^DC#f;0W2g&Fg_k_$5p=DSiCmxaH4JEUuk?!okyE7F==^m&1KDvO&O_YV52NXo zzgv5L?Iz<}d%Ml#2h)C3_3z!Vo%f1tPMnx4i@jx{+7mfmfWZwhapOTIB&?*|8H5{P z5!^UgZYIkHpPEj*OAWNmJxFWE!gzp`*kYY;$0A&~1B5MTTfI(&iBcnL@EQ|+!iybvy z#{{YNJ8Hp%I})nm@+ePmNv1YNGC~8rv*ldyU1Gcui2`G&w#gD_TEYpu^OKYG{J6If zA6e8voF@2mO7djJGOQbukcSB2JKBtF*UnQYanGvb0bXlR?|2Y4rcint0X;C#4b+#) zn`ao05=#OqIE*N4AYg{Vf*v`26FyGuc(av4Z8q&uOc?flCFxVz+=9GRX`@8*sQg!CpPftiX8N$ALDfplrTKSaL2nE*x@S{rKr*W8o<1Fh+peVk$9#@N3R7R@? zIPE)&ND9YxgtAEn`h;1GmM^?&Us?W(2^ej9lD(yFaFe$N01+qAEf7ydCdxY zn)+SWVGZek%vF{|uD~iCf;V~^0_QBvDd$y5d8QtS6gtTVbD5Ds`D%{#W%1g_6^dJ6PN2!BJr)IYXPvI31@H(gR`US(Uo}S9B zeNbBJM);up1Y5o0`B)3bfS>#MpOKG#?4u0zs33ae+N8G)2EmEBKPfP;$p(ui_tE%vWxVV)1mczj zudYYXC-!(hSBMCt;G@>=)oQ-Hxk*NysCh%nS1;NW|04*oQZmlV|+qFa&t8 z${U_c9~+v1P9}uxb1=tf{JcrpDE#Yo&4s<7(h22`kSptRc+ zwgbc^>At1v+7SFG5-FR739lD^1PSY9UQ>!&I}1h1y`lKj$O627jPl2DTqk+`XI*vr!t@sZ z!_$Iitnea&uPK9d){-`eeMSAc}2ebm7kCoUwBa-hFAkgY{BTV%JXOsEojhf zDop|9q41uGZe_UFiZkobb&uGN*YerGxepH(vg6zXVc|^}Ro4#3JYde2?Ezm*e1Lym ziv1mhs{o6NJXiMim4=FoWTqYW+#Wvr@86~ef4BDjZnrsq_uG3x#_z=Eeb9Wx`;o`J zKtqcxX$0Ig6PtN>KeI=Un?(GMOi#ekj=d!CV$&o0Z?h2UlDsJ!E6Jw-=BuoHBh~~V zA{>9IluexG-V52rJ5^&xuDr?ge!kb;yTR|DAk0kS6%vE#(UE<&aX>Gkh%9`VdC__WP_O*zACh8m}cURdPH@|!$|E=VRB zQx=*$T0#m*Kyrq*8a6#fnjA@B)oEj5t9=;wm}dThhPv_5K?iz;FqLVn3PgHREcs1e z6G8aq9uKW(wJ%`IbWnB$maQMo}>>QR2U!gq=bVx@!qyPvqscw`mU%2 zhTchjZybQiLVD$1qTUemNk^n9oBvoiqFz1!BFy|-=C>Eq$2J4qdwZ4 zzc&8b`6JxVLesVL`apc|geHB5#}C1GAFtQ?cmoxlW3)9`hx55Fd`3R?sZZrzNYh>) zT6oB9pweeO#&h+r70iJ^m*l-PW3SSy3oX~aui*9g8tmb(;l;N7_7C9&dFl}}+QV&e z=rKLI#JF@O+F)F66Lrol!;E z0O|}F1d190I8Yz`q!LQPW(92#;W;-^j;*uVEiF0IH&fgTmqL&LgQtU=Vkg`_&!60`f) z?_Cc6_M@lKUmCofZOD~tTF%=8#uoV>;MwZEPn4eL$az@7lcF z$7@GZJ(sQrMx_DsxQilv{_~%c&wS=HW9(e6m$0Ct$!Lj5oh)OoCF(0Pl(-itCPS=R zX;Z{;QgUU8zaAqD+*A4Y?f5ir(mbNw`_*fE!DYG~jBBxfM-TBT&G{l9(UlIfgPY}W zy%&kT3lF2`UYI#)PXisBwDa_kMsw(enpR&jM2P;)Txz3x*+JHGBGMOtU;ueosUZUO z;GRE%P3IKI^}k!YwTHBu9zCD-UX|BvUf*8pZtfe9I)BrYH_ZF} zlZZ951|ujLUuIv2?}LStjU7`&R=u}LsUJeyQdwt}Zj2w$Xta7l1L@k0;J1Dt1R_uu8EWsWS7(^d|3s~qDgpgnkS zow7pL3@AsQB@^>@KxfW3{~ik_V)-eQhHp)pxTSI@d}Df}CnSWXZlGSd=*-f7RD^=` zG4>P*ju5x=vLACIP^VGpfm{xEuHhR%PPCmxe*tR*1lNwEU&f_-K z=i*bbpf+Hg#9*x{qRlZDh}Cl^xBI zPG4$_c-R_HX-=ScJ!o`S;Kpr!r|}{?MPcb;?=(D+3>+QVW2gU#8>0k$ZAPD4vMmaD zVIGS<0Fka+!CZ(eZA*rphkP{o1<&M5mp=5OeC4ZOmQQ~2ld|qR*dNkb;JEj=%|8pBjen9tJL1v9{dV?S ziW%c%6KghoF^1GNxqpNc$6V{v$&F*hm4=75qjB0e__jD9;Dbva1-Masen#5v*6f`+kORD;59rgi=SG1YXdfIEg)P~wz0cbZdyXHvUSWGIoXr7Xxe3Khpyx^$8w82U@BcQ0s{(uH+#uDh zvyX`<0U{AG`%QES8Ok{(GCxtjSg!?4*%E5(tihU$ zi&eFuh$oqNHDv~@xDF=0SoBjNe}EfsOTE!$QVL@wme}Ut?EXZdXldgPRCD_WSrPT9 zyVIGSH{a>~ApwEO>a;H-9dxsi7~UkVMovvb$TsIntA5V{SrtW)pPt0$+q$g7O156}KJW(|h2{ z+r)Qm?AyWjEV%FEwf4D&dmONZ3c*ER*mSy_`|vBT$k%@Qt9h!xqnMpr|X{h>g-hu4-!e`bn`~&vaBKKam31zz=}N}Q52FonZOvoud4*_tNUQdXZB>(AZ{8lZ zqcgX5Yw!Jb&2E;n4=|g$?!K3shsAoc-dlT@+q2lnV~Oz2pD^*D12>4ipxXX~i9teP z-2gl2{4)2C0WUX>vu76oQqn8g@jbSann9c-4MCR>4~{DWrP&Gjjy#vtW%U6VONAimFciMEYl~122_%1I(jY0<}`_m4{0@qF9{Aa+Lb9e?F5%kO@Av+U= zmUFGk<`VcqolCRzq_+{BWLtSf$)Ec2pirc7J38;L(BYrzQ1H{197G~qs^*U|2KpLL zqM(D$EUQqFg}#SO{dGc0wnuA1GMH;cDe6>bs%Zg8uag={PLZIEbRl^WSjfnI5I)z* z1Xel<&3TTUY33;8K{&tV)j0f@P>J>z+^htA0#Eg zAdU1!VZ9odG+eg2;yQ4Nr_mJT9DMmxW_WJpiwX>*D5lA!IvX>-#I<0Bw>hYDW7*`5 zhf|bTTS}kQ$E3jvW8;*9UDol%uHa*d8Z~uA+*gP7PMHW5;JKQ$(==5$9ZvdzvxFp! zXwt?0=WFglWha|}Ydlm}H8Wu61W8aryqo;`qbI^Errdih59o8${~=@aO8=vN52fSn z;CmJv55e~=xbNfjp|BLb=NeJZrA6$fUleQm`h`FCS^4beJ|joX{Q$%%G1g5;HLc3~ zSn9mk0qicZUd^xTi|4EycQT3oa1GZXbzY#gGA(fydPwY7i#GYi7O!dGFKA2`H>n=- zB;EP&eZUi(Q@JiD9D9W4h$fUrtiygRz03vZqi{x1+Y4@pQ?$e^OZV{MSNb&gebB*> z2RA)BVTV1Q4gNc%@78YZz1S90v~u=9@8_x{o>f^r)pKf{^Q-O9f%ffIoVm64dVB1F zo>CMs7Fm2XOSF<;gnYtc<&mt)jNJU>0A^YBA`ie00`pg`X_=J$M4Y&>W(Kfmbcf*G^+}m3sIl^;{jKlXu=J@AaBqefdRj&2VQKKp| z&JmdzQB?z#a6lQ$+`bsm-)isCCjDDOIaZTMM0?S#V;FN4ZrrJdBXgNXiHx*~)#bE+ zKG}d;5O3(R5b#VkT`-}NlkBy?_Vb499d`Ym#Vox8tcpk=|EZ*w0@3?c2yTWbR`EZ3MVa>lk8jzL1lOBhU)(= zc8$!VIn6bmE@5@Xn0N8QoUJ5miGGeRH;;Y$+Rn2IwH^#o7cnF6~IPslq zE~7$F2;a_RsFtx83|6uVApFj^q&4#YA?!|9UyfMZE zcd`)DXW0;K5(S{ zp7`~4v}NsFB%L}l)7d0vCvmmF75psGNhFMMW*^eO!m2uj$*ndj6w_q!|L+qw|L5x$ zxZ5|Ysr}c~0S={AcJ}V`t#5q`fAu$ii68ywN709hqO#WUfsk%iLd-CjYcZlF&zc?P z6;!O7c-fyOtlZyO_CrmKEsHgu0AoF8;a5CH`VbzQj0_l-$$M$_E&n?uAd+hi|Cp#Qx!G@Q1 zr~dQ%wyxrN;~=76r|oNjyWQ<>pKD+0gBdyO@a;F+>@(j#*Z*#J`yFa?J^8L(*;zKT z&jr}yfj+agxGR|?(|PytcL-%`EN4%58@;+7_i;wanLa1*Xf{rov)AW^!HXW<8QP@V zaDX_O(G|C0UySrO*YEa@!!ykvb~%l*EsYfyI{9)wpO>u{??XqY;W~6KD)o~#$|9TE zfJAbRHPj1BlWUW1U0mlmola&^Ky86+BoibI%$b|XU;5G6f2?S+gRNLY@J@yr#^O81 z$erK>eI;m?|2&3YX5qpkVf1k2VEH!{2yL3%`7XZI-8QcC6+OAX<>XAB(7W$Yo7+q@ za?)-NUvca~b|Yc{Z-7gFPn;LgYE8%H10lzwsoT0wIFq`fg|M4G7qFAIh(D=^l9uau z2<MPYb%q; z*X-m1GtlVbBv2~7R?MbNHZZ;?zHI1L46)`BrLj}5|%cicH z7xuP}Ck4uec#!%p(#tt_J766fja~iPPCO0yV2s^ADfAYMkqt{yVJ1T|c-c0cZ1j-b zSQ~5+icZcL<4fHW<$YL!HF9%}WbC7?uZj&7TO6I0wj@gJ$FLDUlT8NzOg&iy?Dc7l(>ejh z@nFijd2{gG69GW!c#1RV-V?8$c#UWy7HsDUX=C1Uk?Z_>RaWZE1@$v;gUh|Y51tL1%}Q|2c?cQn4)KN8vl{Feo{$XdvUT}C zXkPm->=*cd+5>m{W;Bg{-HhUF^(B+e{@?rF@8i#Z`V;)oAN?TCJI)F7L)?u&!zps= zdgrxn<$a^XLUh~+JZsEFc247nNh!2g&$rigVJj?Tzw5%*qOYHL?6H?bnR|;yW8FFcDHXpd#$9#)@sfF&mSNKYC*CVau;&XlnK_{2)@RE zHh4hp73*5I*tufvzbYXVL}ZeM&emorX=r!?2-_5|d&hm_oCHhfeUoZ2mKP;`M{m;< ztJedLcT0Zm;(PZaoH717!Lv6g`~%!G?~;o;T5P^9nDCyPYLn!QZDgmNbf%KW1DUv5 zi+TFZAKSJl0Wu4UO?&4Bdn=!#a$nUpM4K#h0;1Q6Y;6Ihcr)qIsRbi^>%Z3?3O3Rb zPIxu>+3=cn=IMcvR3cyNg?QWaW9SOd1TxF$lBb}S($=|Lu&?tw9;p59Nt?YzCTC=f zE5Ygl(jq73n*4;zUZ`aSaclSV{|D+4Z+sFNA@xJ@N0Qd5Cl8D(b7gySPFRL)M8xgr zt~=WDcighge*>Nw7czitBg9GgO00ukM;3Y4e9E9j6LxI`gKoxWd^vW#>TLQJ8iwc3 zChRmO99TYOg1r?Sf8ol*i2u%oHE)xbz+AM}cL0ab{Wf0eU@sX&cqkb^G|s?#9N0UIt8l#8Z^XQ`pAx}sbwsqA36 zd5snuou7*YS07~CgOe?iEWm#2U@uA?K`R5MBnP|*d7YyM0kN} zJeG16z7i|zQ}spx4e33r{v^P>WMnnkAgr-sU9^ZauHq*gFEy{lOJ;$5f#X;)=$Jt# z^*#NfXc3(mt=kCP=Km}Q#nX1zHko*O4Qz=H!AR--6@ybI#TMBh)69s3Ke9#g5iU;p zw7sN?RcOuTNw(@X4%P(A;Xk{6j{lea5_kJ%G`UHLK3#(!UJ-`J#pe(H_y_p=zyDXC z3L4)!!akm(MEVOqFT`R2!{c>|u8CjbZ53mLWdAHJ{^nYScFZCGcGn_+HGj<5H46;y ziVeosY};LKeUGr{ybb&|aSi%YmN@V%^iO);=^D^^k!hpw`|7#ikiDVh zG3{^uF>IH;%E!26oU=$qD1N-LpS#`dZg;!e-M%61EB@lN617YmJ&&)eHdeXMHraD& zmVuIMIIW;~VRu?wyl_0|PWiEQKEs1-UbjAW#xMNCab8l;xH>*BCZ9=c-q0rGo$}!6 zCCCT1gg_|*9}r}7gL~-oH5WUyNLwIdL+y)a<}A18EjKMx!4f8K@SP0ft z>!&@IyjSlmqPUZE-6)sz5IemvUJGKqxlk=Zf`Jj9*5RT*%Ty)jTRx8g35&7$&I846W_YD~(y()$0&0F$Uz^I^TKK%dn;bePf z|9{pRugj~)bh=p#$##l;F3Io$^Ad^1DX%;wW1ZHCGY)4_O>%1AHm7Z zbWN$o2?0m;;Q~+kCC4}#XFR@D;DRS*Uj4jv#P~RRyxKM2Dzc18m#7KhV zxY2N5;(YpGgc_HACOWCPsZr9JqdTP=t$D!kpL{CN+|SQ^gBrWUe(BZB`ghVg{;tm- z|M*Ywqd)!8ipLqI4(o%haVT+((;4aKa9ztp{}-XOaQKK9qrIQI#F+V6I2it$bH};- zM8oJe3mB(sy2jeC+u@oLVn_Va|3p9Q&&F+Z1NVf-bE)J!e9qZ+#J|f^`=8cLY?Trd zCw*_^#Kjq%=6DWLSWh~yS}01P3XPb-R^d`yWQ=Z+pgNS#zD{BrW-@_rhjg( zcoCF~LbJK$?!Wr(ecXGeNI1*h(YMX;Oh6=^IsMONz-jDkzln8$F1l+8{~n9`e(tnz zI(_HGsV1oE-1#0OKaLT7IVa@Nsf_{O2ak5-#pJ4EJ{Qu;?)x%%Z@kVwKd;KIC@qk0 zPud?)%c?6l$=d|uQ_hzxCYL=MGC|`=S|#B`IB>vw`kuI{JXCf}a>)#ZH7!obonC}b zY3IeW#0u`bMho)BQxTx^E+wL;Qm)4H#!f50Nw_(F)LpYRbbU9>kkpZc&n4%cBpi}C z&XO?Z7t;yyQh#SPwz+kCxCT1uIFE7k|Ld|yL{ER;H+ltCl68Hqbtoj7@Kv#tVzN89 zNHSr#r@kO<%9`c`OMlw?G#z`+BJP0qeu89gKKj3&SaBcn(y>N-FdXWCajqftG4Qy5 zhTfgR2w^xE)HufOhD!@>4- z`ViO49(}`YY*2iT`ms$|!WCmk!rI<;@2?9>E)Ja6q)ziq+7s!meAr7ME=p;=GJ)ks zQ^-6~#n^oPn&&?(qr?sDc2n_|>;fdqVE7+DUHDJFb^rd%H>+(7 z`tSZ4Km3y)g7;#E5uYhu^Jn47crWMn@z0abwPUS2Y=mB7!IYit7y_5Z9l`@_U(?~u zTHr8r>(}4o?=tDHv(>J`4*g|TG@8m@#F1n}HzYLwW&S0H$lAF^S2ECiQarmGO zg{h(Y)`M-cF?1m=jEK(1LQ^2^#X^P2OV*Y%+vdX`MRDB;JFU_m8@3k=?}hZ_TU(B{ zvz1wz3`sNm$%(#Xdzr28CfiCE+>&s2mlbpQZT>?JRF>n9qP?}nXq@!bHcok@)`KNY zgJy8Q_P%lHzj0CHBQu6A^)eUp3_-Xh`;>t~UKG89G zVR%!=S0+N}DWYyCKJ5dUsnc=JneFL0=vld|B8ROD<@TnyC5~sdo!2U4lU#VP@Zs>Y zdNQi)h4i}~7;9s8`>Y+>;KS6W5&5G?2{V>6ezh`WccUZ+h{@|6j4s z+%oo7(IMd-aSS-MZo@9{$mUE@fZ`8)BGf;gOBH!j<_F{C)Mg=9Cd{9N;-D z>EWkdY+QR$TCv)A`mKKNax!~CiuvYqce~r&?sm7k{mXCr3Z~mvbukkhuSME3L-F8U zb}S6Fn6hKCv9%kEj@sNaaoV%L_~?0JiP}fqYfLPRw-p30jDq*m##^?TnN;=ldp)lW z;e$4Uz_tOL#OAA`Xu)3+bAB42@6eKLB6L%%@OyKwcVL?AyLsCXIg(9>38(RKQHhTj z`+kKBMQs^Aq%w+CnRM{xCG!*Ox)%`Wg%X6pLgaO@%;R_B-x>h^lrA< zy)0t6|I2Qy5`4jE+nQt0`8<)Y8iQ;YtKTp)UZ4|+qW3meBR750^+4|jd@TO0Ns7

6L~G(PyR0(>h<+WYrfX7?xghL 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 a+5ZGf32UKyZ2tEE0000xvC From 1291c8c8ecf3e0b0de6b7f3c2398ab39ac154697 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Mon, 13 Dec 2021 14:23:12 +0100 Subject: [PATCH 052/107] tests(database): add enable/disable tests --- tests/e2e/Services/Database/DatabaseBase.php | 64 ++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/tests/e2e/Services/Database/DatabaseBase.php b/tests/e2e/Services/Database/DatabaseBase.php index 2f852d0f5e..df87fa702b 100644 --- a/tests/e2e/Services/Database/DatabaseBase.php +++ b/tests/e2e/Services/Database/DatabaseBase.php @@ -30,6 +30,70 @@ trait DatabaseBase return ['moviesId' => $movies['body']['$id']]; } + /** + * @depends testCreateCollection + */ + public function testDisableCollection(array $data): void + { + /** + * Test for SUCCESS + */ + $response = $this->client->call(Client::METHOD_PUT, '/database/collections/' . $data['moviesId'], array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'name' => 'Movies', + 'enabled' => false, + 'permission' => 'document', + ]); + + $this->assertEquals($response['headers']['status-code'], 200); + $this->assertFalse($response['body']['enabled']); + + if ($this->getSide() === 'client') { + $responseCreateDocument = $this->client->call(Client::METHOD_POST, '/database/collections/' . $data['moviesId'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'documentId' => 'unique()', + 'data' => [ + 'title' => 'Captain America', + ], + 'read' => ['user:'.$this->getUser()['$id']], + 'write' => ['user:'.$this->getUser()['$id']], + ]); + + $responseListDocument = $this->client->call(Client::METHOD_GET, '/database/collections/' . $data['moviesId'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $responseGetDocument = $this->client->call(Client::METHOD_GET, '/database/collections/' . $data['moviesId'] . '/documents/someID', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals($responseCreateDocument['headers']['status-code'], 404); + $this->assertEquals($responseListDocument['headers']['status-code'], 404); + $this->assertEquals($responseGetDocument['headers']['status-code'], 404); + } + + $response = $this->client->call(Client::METHOD_PUT, '/database/collections/' . $data['moviesId'], array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'name' => 'Movies', + 'enabled' => true, + 'permission' => 'document', + ]); + + $this->assertEquals($response['headers']['status-code'], 200); + $this->assertTrue($response['body']['enabled']); + } + + /** * @depends testCreateCollection */ From 0d9c0daf479d75918b7b1fda118af27dc66ab416 Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Mon, 13 Dec 2021 15:23:57 +0200 Subject: [PATCH 053/107] Updated cachebuster --- app/init.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/init.php b/app/init.php index 26e291b82c..6f2783a189 100644 --- a/app/init.php +++ b/app/init.php @@ -47,7 +47,7 @@ const APP_USERAGENT = APP_NAME.'-Server v%s. Please report abuse at %s'; const APP_MODE_DEFAULT = 'default'; const APP_MODE_ADMIN = 'admin'; const APP_PAGING_LIMIT = 12; -const APP_CACHE_BUSTER = 170; +const APP_CACHE_BUSTER = 171; const APP_VERSION_STABLE = '0.11.0'; const APP_STORAGE_UPLOADS = '/storage/uploads'; const APP_STORAGE_FUNCTIONS = '/storage/functions'; From 34c68699a3f361345bf7599d034d4bf91ddbc9c8 Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Mon, 13 Dec 2021 15:50:02 +0200 Subject: [PATCH 054/107] Added twitter card tags --- app/views/layouts/default.phtml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/views/layouts/default.phtml b/app/views/layouts/default.phtml index c9514d2ec3..5016ccd8d6 100644 --- a/app/views/layouts/default.phtml +++ b/app/views/layouts/default.phtml @@ -53,12 +53,17 @@ if(!empty($platforms)) { + + + + + diff --git a/public/scripts/init.js b/public/scripts/init.js index 9017f02d5b..8ab87f607b 100644 --- a/public/scripts/init.js +++ b/public/scripts/init.js @@ -207,5 +207,20 @@ window.formValidation = (form, fields) => { element.dispatchEvent(new Event("change")); } } -}); + }); }; +/** + * Method to add attribute for the UI on array attributes. + * + * Needs to be global - since client side routing will break it. + * @param {*} doc + * @param {*} key + * @returns + */ +function addAttribute(doc, key) { + if (!Array.isArray(doc[key])) { + doc[key] = []; + } + doc[key].push(null); + return doc; +} \ No newline at end of file From fa69a59e3cfc4a5d9bdb25b6aa6bb572f6c83af3 Mon Sep 17 00:00:00 2001 From: kodumbeats Date: Wed, 15 Dec 2021 15:16:11 -0500 Subject: [PATCH 083/107] Drop collection table before deleting metadata --- app/workers/deletes.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/workers/deletes.php b/app/workers/deletes.php index 9ae1d37d5e..eca704771b 100644 --- a/app/workers/deletes.php +++ b/app/workers/deletes.php @@ -103,6 +103,8 @@ class DeletesV1 extends Worker $dbForInternal = $this->getInternalDB($projectId); $dbForExternal = $this->getExternalDB($projectId); + $dbForExternal->deleteCollection($collectionId); + $this->deleteByGroup('attributes', [ new Query('collectionId', Query::TYPE_EQUAL, [$collectionId]) ], $dbForInternal); @@ -110,8 +112,6 @@ class DeletesV1 extends Worker $this->deleteByGroup('indexes', [ new Query('collectionId', Query::TYPE_EQUAL, [$collectionId]) ], $dbForInternal); - - $dbForExternal->deleteCollection($collectionId); } /** From c8dec74e743ee178a963d37b54041b7a3e48aa5b Mon Sep 17 00:00:00 2001 From: Damodar Lohani Date: Thu, 16 Dec 2021 12:38:27 +0545 Subject: [PATCH 084/107] fix merge issues --- app/controllers/api/storage.php | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/app/controllers/api/storage.php b/app/controllers/api/storage.php index de618a719f..bcbd46a0b4 100644 --- a/app/controllers/api/storage.php +++ b/app/controllers/api/storage.php @@ -638,8 +638,9 @@ App::post('/v1/storage/buckets/:bucketId/files') $sizeActual = $device->getFileSize($path); + $fileId = $fileId === 'unique()' ? $dbForInternal->getId() : $fileId; $data = [ - '$id' => $fileId === 'unique()' ? $dbForInternal->getId() : $fileId, + '$id' => $fileId, '$read' => (is_null($read) && !$user->isEmpty()) ? ['user:'.$user->getId()] : $read ?? [], // By default set read permissions for user '$write' => (is_null($write) && !$user->isEmpty()) ? ['user:'.$user->getId()] : $write ?? [], // By default set write permissions for user 'dateCreated' => \time(), @@ -652,17 +653,13 @@ App::post('/v1/storage/buckets/:bucketId/files') 'sizeActual' => $sizeActual, 'algorithm' => empty($compressor) ? '' : $compressor->getName(), 'comment' => '', - 'openSSLVersion' => '1', - 'openSSLCipher' => OpenSSL::CIPHER_AES_128_GCM, - 'openSSLTag' => \bin2hex($tag ?? ''), - 'openSSLIV' => \bin2hex($iv), 'search' => implode(' ', [$fileId, $file['name'] ?? '',]), ]; if($bucket->getAttribute('encryption', true) && $size <= APP_LIMIT_ENCRYPTION) { $data['openSSLVersion'] = '1'; $data['openSSLCipher'] = OpenSSL::CIPHER_AES_128_GCM; - $data['openSSLTag'] = \bin2hex($tag); + $data['openSSLTag'] = \bin2hex($tag ?? ''); $data['openSSLIV'] = \bin2hex($iv); } From 8feb2601736553159a44023fa9535153efe57d3a Mon Sep 17 00:00:00 2001 From: "Eldad A. Fux" Date: Thu, 16 Dec 2021 10:49:53 +0200 Subject: [PATCH 085/107] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d61a286fb8..c1f0de43ce 100644 --- a/README.md +++ b/README.md @@ -8,13 +8,13 @@

-[![Hacktoberfest](https://img.shields.io/static/v1?label=hacktoberfest&message=friendly&color=90a88b&style=flat-square)](https://hacktoberfest.appwrite.io) + [![Discord](https://img.shields.io/discord/564160730845151244?label=discord&style=flat-square)](https://appwrite.io/discord?r=Github) [![Docker Pulls](https://img.shields.io/docker/pulls/appwrite/appwrite?color=f02e65&style=flat-square)](https://hub.docker.com/r/appwrite/appwrite) [![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?color=00acee&label=twitter&style=flat-square)](https://twitter.com/appwrite) [![Translate](https://img.shields.io/badge/translate-f02e65?style=flat-square)](docs/tutorials/add-translations.md) - +[![Swag Store](https://img.shields.io/badge/swag%20store-f02e65?style=flat-square)](https://store.appwrite.io) [**Appwrite 0.11 has been released! Learn what's new!**](https://dev.to/appwrite/building-apps-just-got-swifter-announcing-appwrite-v011-4g62) From deda0521374c7303edc3c21193da6a109a94eb35 Mon Sep 17 00:00:00 2001 From: Damodar Lohani Date: Thu, 16 Dec 2021 15:37:59 +0545 Subject: [PATCH 086/107] update flutter getting started --- docs/sdks/flutter/GETTING_STARTED.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/sdks/flutter/GETTING_STARTED.md b/docs/sdks/flutter/GETTING_STARTED.md index 8ed1e19923..8f4a7162e7 100644 --- a/docs/sdks/flutter/GETTING_STARTED.md +++ b/docs/sdks/flutter/GETTING_STARTED.md @@ -46,6 +46,23 @@ For **Mac OS** add your app name and Bundle ID, You can find your Bundle Identif ### 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. +For web in order to capture the OAuth2 callback URL and send it to the application using JavaScript `postMessage()`, you need to create an html file inside `./web` folder of your Flutter project. For example `auth.html` with the following content. + +```html + +Authentication complete +

Authentication is complete. If this does not happen automatically, please +close the window. + +``` + +Redirection URL passed to the authentication service must be the same as the URL on which the application is running (schema, host, port if necessary) and the path must point to created HTML file, /auth.html in this case. The callbackUrlScheme parameter of the authenticate() method does not take into account, so it is possible to use a schema for native platforms in the code. + #### 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. From a11d7bf75091bc6b615d449aac94a2c572b2181b Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Thu, 16 Dec 2021 11:15:55 +0100 Subject: [PATCH 087/107] fix: strict enum attribute --- app/controllers/api/database.php | 4 ++++ app/init.php | 2 +- tests/e2e/Services/Database/DatabaseBase.php | 23 ++++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/app/controllers/api/database.php b/app/controllers/api/database.php index 43b98dd5f3..6af8f1f98e 100644 --- a/app/controllers/api/database.php +++ b/app/controllers/api/database.php @@ -835,6 +835,10 @@ App::post('/v1/database/collections/:collectionId/attributes/enum') $size = ($length > $size) ? $length : $size; } + if (!is_null($default) && !in_array($default, $elements)) { + throw new Exception('Default value not found in elements', 400); + } + $attribute = createAttribute($collectionId, new Document([ '$id' => $attributeId, 'type' => Database::VAR_STRING, diff --git a/app/init.php b/app/init.php index 45cdf438b6..13df9c7b27 100644 --- a/app/init.php +++ b/app/init.php @@ -311,7 +311,7 @@ Structure::addFormat(APP_DATABASE_ATTRIBUTE_EMAIL, function() { Structure::addFormat(APP_DATABASE_ATTRIBUTE_ENUM, function($attribute) { $elements = $attribute['formatOptions']['elements']; - return new WhiteList($elements); + return new WhiteList($elements, true); }, Database::VAR_STRING); Structure::addFormat(APP_DATABASE_ATTRIBUTE_IP, function() { diff --git a/tests/e2e/Services/Database/DatabaseBase.php b/tests/e2e/Services/Database/DatabaseBase.php index 2f852d0f5e..34bed2bd61 100644 --- a/tests/e2e/Services/Database/DatabaseBase.php +++ b/tests/e2e/Services/Database/DatabaseBase.php @@ -1355,6 +1355,26 @@ trait DatabaseBase 'array' => true, ]); + $defaultRequired = $this->client->call(Client::METHOD_POST, '/database/collections/' . $collectionId . '/attributes/integer', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'attributeId' => 'defaultRequired', + 'required' => true, + 'default' => 12 + ]); + + $enumDefault = $this->client->call(Client::METHOD_POST, '/database/collections/' . $collectionId . '/attributes/enum', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'attributeId' => 'enumDefault', + 'elements' => ['north', 'west'], + 'default' => 'south' + ]); + $this->assertEquals(201, $email['headers']['status-code']); $this->assertEquals(201, $ip['headers']['status-code']); $this->assertEquals(201, $url['headers']['status-code']); @@ -1363,8 +1383,11 @@ trait DatabaseBase $this->assertEquals(201, $probability['headers']['status-code']); $this->assertEquals(201, $upperBound['headers']['status-code']); $this->assertEquals(201, $lowerBound['headers']['status-code']); + $this->assertEquals(201, $enum['headers']['status-code']); $this->assertEquals(400, $invalidRange['headers']['status-code']); $this->assertEquals(400, $defaultArray['headers']['status-code']); + $this->assertEquals(400, $defaultRequired['headers']['status-code']); + $this->assertEquals(400, $enumDefault['headers']['status-code']); $this->assertEquals('Minimum value must be lesser than maximum value', $invalidRange['body']['message']); $this->assertEquals('Cannot set default value for array attributes', $defaultArray['body']['message']); From 90eec40dac4e80302666208f7bd4e839a6c9b6a9 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Thu, 16 Dec 2021 11:23:04 +0100 Subject: [PATCH 088/107] fix: document level description --- app/views/console/database/collection.phtml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/views/console/database/collection.phtml b/app/views/console/database/collection.phtml index 806274367e..7804bad2d2 100644 --- a/app/views/console/database/collection.phtml +++ b/app/views/console/database/collection.phtml @@ -467,8 +467,8 @@ $logs = $this->getParam('logs', null);

Document Level -

With Document Level permissions, you have granular access control over every file. Users will only be able to access documents for which they have explicit permissions.

-

In this permission level, document permissions take precedence and bucket permissions are ignored.

+

With Document Level permissions, you have granular access control over every document. Users will only be able to access documents for which they have explicit permissions.

+

In this permission level, document permissions take precedence and collection permissions are ignored.

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%0AiDs;HV{X<3=gs2R}K58Vuo% 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

@@ -477,7 +477,7 @@ $logs = $this->getParam('logs', null);
Collection Level

With Collection Level permissions, you assign permissions only once in the collection.

-

In this permission level, permissions assigned to collection takes the precedence and documents permissions are ignored

+

In this permission level, permissions assigned to collection takes the precedence and documents permissions are ignored.

Learn more) From 555505fc79d0417853228f5cfc2648c462d38ed0 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Thu, 16 Dec 2021 11:25:17 +0100 Subject: [PATCH 089/107] fix: remove activity badge from collections --- app/views/console/database/collection.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/console/database/collection.phtml b/app/views/console/database/collection.phtml index 7804bad2d2..cadad3383a 100644 --- a/app/views/console/database/collection.phtml +++ b/app/views/console/database/collection.phtml @@ -347,7 +347,7 @@ $logs = $this->getParam('logs', null);
  • -

    Activity

    +

    Activity

    render(); ?>
  • From 6f19652ab8bbc46808923fbc5018025d43c445ef Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Thu, 16 Dec 2021 11:27:19 +0100 Subject: [PATCH 090/107] fix: disable animation from charts --- public/scripts/views/forms/chart.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/public/scripts/views/forms/chart.js b/public/scripts/views/forms/chart.js index 182e7a7689..2c15d488bb 100644 --- a/public/scripts/views/forms/chart.js +++ b/public/scripts/views/forms/chart.js @@ -38,6 +38,9 @@ datasets: [] }, options: { + animation: { + duration: 0 + }, responsive: true, hover: { mode: "nearest", From 30ed41c21d74b0fbdb6a4804b7bb7207a3759821 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Thu, 16 Dec 2021 12:11:58 +0100 Subject: [PATCH 091/107] fix: realtime stats aggregation --- app/realtime.php | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/app/realtime.php b/app/realtime.php index e027809295..ec4feefa21 100644 --- a/app/realtime.php +++ b/app/realtime.php @@ -106,12 +106,8 @@ $server->onStart(function () use ($stats, $register, $containerId, &$statsDocume Timer::tick(5000, function () use ($register, $stats, $containerId, &$statsDocument) { /** @var Document $statsDocument */ foreach ($stats as $projectId => $value) { - if (empty($value['connections']) && empty($value['messages'])) { - continue; - } - - $connections = $stats->get($projectId, 'connections'); - $messages = $stats->get($projectId, 'messages'); + $connections = $stats->get($projectId, 'connections') ?? 0; + $messages = $stats->get($projectId, 'messages' ?? 0); $usage = new Event('v1-usage', 'UsageV1'); $usage @@ -132,9 +128,7 @@ $server->onStart(function () use ($stats, $register, $containerId, &$statsDocume } $payload = []; foreach ($stats as $projectId => $value) { - if (!empty($value['connectionsTotal'])) { - $payload[$projectId] = $stats->get($projectId, 'connectionsTotal'); - } + $payload[$projectId] = $stats->get($projectId, 'connectionsTotal'); } if (empty($payload) || empty($statsDocument)) { return; @@ -493,7 +487,7 @@ $server->onMessage(function (int $connection, string $message) use ($server, $re } switch ($message['type']) { - /** + /** * This type is used to authenticate. */ case 'authentication': From d1f901e7a8bc2eeb7e006b8f00a7170072453076 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Thu, 16 Dec 2021 12:30:43 +0100 Subject: [PATCH 092/107] feat: use arrow functions on authorization skip method --- app/controllers/api/account.php | 38 +++++++++++++++---------------- app/controllers/api/database.php | 20 ++++------------ app/controllers/api/functions.php | 4 +--- app/realtime.php | 14 ++++-------- app/workers/functions.php | 6 ++--- 5 files changed, 30 insertions(+), 52 deletions(-) diff --git a/app/controllers/api/account.php b/app/controllers/api/account.php index 19e63fde11..c028409dcd 100644 --- a/app/controllers/api/account.php +++ b/app/controllers/api/account.php @@ -669,26 +669,24 @@ App::post('/v1/account/sessions/magic-url') $userId = $userId == 'unique()' ? $dbForInternal->getId() : $userId; - $user = Authorization::skip(function () use ($dbForInternal, $userId, $email) { - return $dbForInternal->createDocument('users', new Document([ - '$id' => $userId, - '$read' => ['role:all'], - '$write' => ['user:' . $userId], - 'email' => $email, - 'emailVerification' => false, - 'status' => true, - 'password' => null, - 'passwordUpdate' => \time(), - 'registration' => \time(), - 'reset' => false, - 'prefs' => [], - 'sessions' => [], - 'tokens' => [], - 'memberships' => [], - 'search' => implode(' ', [$userId, $email]), - 'deleted' => false - ])); - }); + $user = Authorization::skip(fn () => $dbForInternal->createDocument('users', new Document([ + '$id' => $userId, + '$read' => ['role:all'], + '$write' => ['user:' . $userId], + 'email' => $email, + 'emailVerification' => false, + 'status' => true, + 'password' => null, + 'passwordUpdate' => \time(), + 'registration' => \time(), + 'reset' => false, + 'prefs' => [], + 'sessions' => [], + 'tokens' => [], + 'memberships' => [], + 'search' => implode(' ', [$userId, $email]), + 'deleted' => false + ]))); $mails->setParam('event', 'users.create'); $audits->setParam('event', 'users.create'); diff --git a/app/controllers/api/database.php b/app/controllers/api/database.php index 43b98dd5f3..8e3e0a411a 100644 --- a/app/controllers/api/database.php +++ b/app/controllers/api/database.php @@ -1645,9 +1645,7 @@ App::post('/v1/database/collections/:collectionId/documents') try { if ($collection->getAttribute('permission') === 'collection') { /** @var Document $document */ - $document = Authorization::skip(function() use ($dbForExternal, $collectionId, $data) { - return $dbForExternal->createDocument($collectionId, new Document($data)); - }); + $document = Authorization::skip(fn() => $dbForExternal->createDocument($collectionId, new Document($data))); } else { $document = $dbForExternal->createDocument($collectionId, new Document($data)); } @@ -1739,9 +1737,7 @@ App::get('/v1/database/collections/:collectionId/documents') if ($collection->getAttribute('permission') === 'collection') { /** @var Document[] $documents */ - $documents = Authorization::skip(function() use ($dbForExternal, $collectionId, $queries, $limit, $offset, $orderAttributes, $orderTypes, $cursorDocument, $cursorDirection) { - return $dbForExternal->find($collectionId, $queries, $limit, $offset, $orderAttributes, $orderTypes, $cursorDocument ?? null, $cursorDirection); - }); + $documents = Authorization::skip(fn() => $dbForExternal->find($collectionId, $queries, $limit, $offset, $orderAttributes, $orderTypes, $cursorDocument ?? null, $cursorDirection)); } else { $documents = $dbForExternal->find($collectionId, $queries, $limit, $offset, $orderAttributes, $orderTypes, $cursorDocument ?? null, $cursorDirection); } @@ -1795,9 +1791,7 @@ App::get('/v1/database/collections/:collectionId/documents/:documentId') if ($collection->getAttribute('permission') === 'collection') { /** @var Document $document */ - $document = Authorization::skip(function() use ($dbForExternal, $collectionId, $documentId) { - return $dbForExternal->getDocument($collectionId, $documentId); - }); + $document = Authorization::skip(fn() => $dbForExternal->getDocument($collectionId, $documentId)); } else { $document = $dbForExternal->getDocument($collectionId, $documentId); } @@ -1993,9 +1987,7 @@ App::patch('/v1/database/collections/:collectionId/documents/:documentId') try { if ($collection->getAttribute('permission') === 'collection') { /** @var Document $document */ - $document = Authorization::skip(function() use ($dbForExternal, $collection, $document, $data) { - return $dbForExternal->updateDocument($collection->getId(), $document->getId(), new Document($data)); - }); + $document = Authorization::skip(fn() => $dbForExternal->updateDocument($collection->getId(), $document->getId(), new Document($data))); } else { $document = $dbForExternal->updateDocument($collection->getId(), $document->getId(), new Document($data)); } @@ -2066,9 +2058,7 @@ App::delete('/v1/database/collections/:collectionId/documents/:documentId') if ($collection->getAttribute('permission') === 'collection') { /** @var Document $document */ - $document = Authorization::skip(function() use ($dbForExternal, $collectionId, $documentId) { - return $dbForExternal->getDocument($collectionId, $documentId); - }); + $document = Authorization::skip(fn() => $dbForExternal->getDocument($collectionId, $documentId)); } else { $document = $dbForExternal->getDocument($collectionId, $documentId); } diff --git a/app/controllers/api/functions.php b/app/controllers/api/functions.php index b6a67191f3..869efadeb7 100644 --- a/app/controllers/api/functions.php +++ b/app/controllers/api/functions.php @@ -807,9 +807,7 @@ App::get('/v1/functions/:functionId/executions') /** @var Appwrite\Utopia\Response $response */ /** @var Utopia\Database\Database $dbForInternal */ - $function = Authorization::skip(function() use ($dbForInternal, $functionId) { - return $dbForInternal->getDocument('functions', $functionId); - }); + $function = Authorization::skip(fn() => $dbForInternal->getDocument('functions', $functionId)); if ($function->isEmpty()) { throw new Exception('Function not found', 404); diff --git a/app/realtime.php b/app/realtime.php index ec4feefa21..80d1494208 100644 --- a/app/realtime.php +++ b/app/realtime.php @@ -87,9 +87,7 @@ $server->onStart(function () use ($stats, $register, $containerId, &$statsDocume 'timestamp' => time(), 'value' => '{}' ]); - $statsDocument = Authorization::skip(function () use ($database, $document) { - return $database->createDocument('realtime', $document); - }); + $statsDocument = Authorization::skip(fn() => $database->createDocument('realtime', $document)); } catch (\Throwable $th) { Console::error('[Error] Type: ' . get_class($th)); Console::error('[Error] Message: ' . $th->getMessage()); @@ -141,9 +139,7 @@ $server->onStart(function () use ($stats, $register, $containerId, &$statsDocume ->setAttribute('timestamp', time()) ->setAttribute('value', json_encode($payload)); - Authorization::skip(function () use ($database, $statsDocument) { - $database->updateDocument('realtime', $statsDocument->getId(), $statsDocument); - }); + Authorization::skip(fn() => $database->updateDocument('realtime', $statsDocument->getId(), $statsDocument)); } catch (\Throwable $th) { Console::error('[Error] Type: ' . get_class($th)); Console::error('[Error] Message: ' . $th->getMessage()); @@ -171,11 +167,9 @@ $server->onWorkerStart(function (int $workerId) use ($server, $register, $stats, $payload = []; - $list = Authorization::skip(function () use ($database) { - return $database->find('realtime', [ + $list = Authorization::skip(fn() => $database->find('realtime', [ new Query('timestamp', Query::TYPE_GREATER, [(time() - 15)]) - ]); - }); + ])); /** * Aggregate stats across containers. diff --git a/app/workers/functions.php b/app/workers/functions.php index b4bc89f370..67c59ff679 100644 --- a/app/workers/functions.php +++ b/app/workers/functions.php @@ -481,16 +481,14 @@ class FunctionsV1 extends Worker Console::info('Function executed in ' . ($executionEnd - $executionStart) . ' seconds, status: ' . $functionStatus); - $execution = Authorization::skip(function() use ($database, $execution, $tag, $functionStatus, $exitCode, $stdout, $stderr, $executionTime) { - return $database->updateDocument('executions', $execution->getId(), new Document(array_merge($execution->getArrayCopy(), [ + $execution = Authorization::skip(fn() => $database->updateDocument('executions', $execution->getId(), new Document(array_merge($execution->getArrayCopy(), [ 'tagId' => $tag->getId(), 'status' => $functionStatus, 'exitCode' => $exitCode, 'stdout' => \utf8_encode(\mb_substr($stdout, -8000)), // log last 8000 chars output 'stderr' => \utf8_encode(\mb_substr($stderr, -8000)), // log last 8000 chars output 'time' => (float)$executionTime, - ]))); - }); + ])))); $executionModel = new Execution(); $executionUpdate = new Event('v1-webhooks', 'WebhooksV1'); From a5840a478a6f77d79c1286e80f72281ff1b314e7 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Thu, 16 Dec 2021 14:06:32 +0100 Subject: [PATCH 093/107] tests: add enum strict check --- tests/e2e/Services/Database/DatabaseBase.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/e2e/Services/Database/DatabaseBase.php b/tests/e2e/Services/Database/DatabaseBase.php index 34bed2bd61..4b8280484e 100644 --- a/tests/e2e/Services/Database/DatabaseBase.php +++ b/tests/e2e/Services/Database/DatabaseBase.php @@ -1375,6 +1375,16 @@ trait DatabaseBase 'default' => 'south' ]); + $enumDefaultStrict = $this->client->call(Client::METHOD_POST, '/database/collections/' . $collectionId . '/attributes/enum', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'attributeId' => 'enumDefault', + 'elements' => ['north', 'west'], + 'default' => 'NORTH' + ]); + $this->assertEquals(201, $email['headers']['status-code']); $this->assertEquals(201, $ip['headers']['status-code']); $this->assertEquals(201, $url['headers']['status-code']); @@ -1388,6 +1398,7 @@ trait DatabaseBase $this->assertEquals(400, $defaultArray['headers']['status-code']); $this->assertEquals(400, $defaultRequired['headers']['status-code']); $this->assertEquals(400, $enumDefault['headers']['status-code']); + $this->assertEquals(400, $enumDefaultStrict['headers']['status-code']); $this->assertEquals('Minimum value must be lesser than maximum value', $invalidRange['body']['message']); $this->assertEquals('Cannot set default value for array attributes', $defaultArray['body']['message']); From 86075a50ab3cfdb7c60afa88dd2bc8bcede72d25 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Thu, 16 Dec 2021 16:04:30 +0100 Subject: [PATCH 094/107] feat: replace attributeId and indexId with key --- app/controllers/api/database.php | 104 +++++++++--------- tests/e2e/Services/Database/DatabaseBase.php | 56 +++++----- .../Database/DatabaseCustomServerTest.php | 42 +++---- .../Database/DatabasePermissionsGuestTest.php | 2 +- .../DatabasePermissionsMemberTest.php | 4 +- .../Database/DatabasePermissionsTeamTest.php | 4 +- 6 files changed, 106 insertions(+), 106 deletions(-) diff --git a/app/controllers/api/database.php b/app/controllers/api/database.php index 43b98dd5f3..5ab1c37bca 100644 --- a/app/controllers/api/database.php +++ b/app/controllers/api/database.php @@ -50,7 +50,7 @@ use Appwrite\Detector\Detector; */ function createAttribute($collectionId, $attribute, $response, $dbForInternal, $dbForExternal, $database, $audits, $usage): Document { - $attributeId = $attribute->getId(); + $key = $attribute->getAttribute('key'); $type = $attribute->getAttribute('type', ''); $size = $attribute->getAttribute('size', 0); $required = $attribute->getAttribute('required', true); @@ -59,7 +59,7 @@ function createAttribute($collectionId, $attribute, $response, $dbForInternal, $ $format = $attribute->getAttribute('format', ''); $formatOptions = $attribute->getAttribute('formatOptions', []); $filters = $attribute->getAttribute('filters', []); // filters are hidden from the endpoint - $default = $attribute->getAttribute('default', null); + $default = $attribute->getAttribute('default'); $collection = $dbForInternal->getDocument('collections', $collectionId); @@ -84,8 +84,8 @@ function createAttribute($collectionId, $attribute, $response, $dbForInternal, $ try { $attribute = new Document([ - '$id' => $collectionId.'_'.$attributeId, - 'key' => $attributeId, + '$id' => $collectionId.'_'.$key, + 'key' => $key, 'collectionId' => $collectionId, 'type' => $type, 'status' => 'processing', // processing, available, failed, deleting, stuck @@ -711,7 +711,7 @@ App::post('/v1/database/collections/:collectionId/attributes/string') ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_ATTRIBUTE_STRING) ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') - ->param('attributeId', '', new Key(), 'Attribute ID.') + ->param('key', '', new Key(), 'Attribute Key.') ->param('size', null, new Range(1, APP_DATABASE_ATTRIBUTE_STRING_MAX_LENGTH, Range::TYPE_INTEGER), 'Attribute size for text attributes, in number of characters.') ->param('required', null, new Boolean(), 'Is attribute required?') ->param('default', null, new Text(0), 'Default value for attribute when not provided. Cannot be set when attribute is required.', true) @@ -722,7 +722,7 @@ App::post('/v1/database/collections/:collectionId/attributes/string') ->inject('database') ->inject('audits') ->inject('usage') - ->action(function ($collectionId, $attributeId, $size, $required, $default, $array, $response, $dbForInternal, $dbForExternal, $database, $audits, $usage) { + ->action(function ($collectionId, $key, $size, $required, $default, $array, $response, $dbForInternal, $dbForExternal, $database, $audits, $usage) { /** @var Appwrite\Utopia\Response $response */ /** @var Utopia\Database\Database $dbForInternal*/ /** @var Utopia\Database\Database $dbForExternal*/ @@ -737,7 +737,7 @@ App::post('/v1/database/collections/:collectionId/attributes/string') } $attribute = createAttribute($collectionId, new Document([ - '$id' => $attributeId, + 'key' => $key, 'type' => Database::VAR_STRING, 'size' => $size, 'required' => $required, @@ -761,7 +761,7 @@ App::post('/v1/database/collections/:collectionId/attributes/email') ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_ATTRIBUTE_EMAIL) ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') - ->param('attributeId', '', new Key(), 'Attribute ID.') + ->param('key', '', new Key(), 'Attribute Key.') ->param('required', null, new Boolean(), 'Is attribute required?') ->param('default', null, new Email(), 'Default value for attribute when not provided. Cannot be set when attribute is required.', true) ->param('array', false, new Boolean(), 'Is attribute an array?', true) @@ -771,7 +771,7 @@ App::post('/v1/database/collections/:collectionId/attributes/email') ->inject('database') ->inject('audits') ->inject('usage') - ->action(function ($collectionId, $attributeId, $required, $default, $array, $response, $dbForInternal, $dbForExternal, $database, $audits, $usage) { + ->action(function ($collectionId, $key, $required, $default, $array, $response, $dbForInternal, $dbForExternal, $database, $audits, $usage) { /** @var Appwrite\Utopia\Response $response */ /** @var Utopia\Database\Database $dbForInternal*/ /** @var Utopia\Database\Database $dbForExternal*/ @@ -780,7 +780,7 @@ App::post('/v1/database/collections/:collectionId/attributes/email') /** @var Appwrite\Stats\Stats $usage */ $attribute = createAttribute($collectionId, new Document([ - '$id' => $attributeId, + 'key' => $key, 'type' => Database::VAR_STRING, 'size' => 254, 'required' => $required, @@ -805,7 +805,7 @@ App::post('/v1/database/collections/:collectionId/attributes/enum') ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_ATTRIBUTE_ENUM) ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') - ->param('attributeId', '', new Key(), 'Attribute ID.') + ->param('key', '', new Key(), 'Attribute Key.') ->param('elements', [], new ArrayList(new Text(0)), 'Array of elements in enumerated type. Uses length of longest element to determine size.') ->param('required', null, new Boolean(), 'Is attribute required?') ->param('default', null, new Text(0), 'Default value for attribute when not provided. Cannot be set when attribute is required.', true) @@ -816,7 +816,7 @@ App::post('/v1/database/collections/:collectionId/attributes/enum') ->inject('database') ->inject('audits') ->inject('usage') - ->action(function ($collectionId, $attributeId, $elements, $required, $default, $array, $response, $dbForInternal, $dbForExternal, $database, $audits, $usage) { + ->action(function ($collectionId, $key, $elements, $required, $default, $array, $response, $dbForInternal, $dbForExternal, $database, $audits, $usage) { /** @var Appwrite\Utopia\Response $response */ /** @var Utopia\Database\Database $dbForInternal*/ /** @var Utopia\Database\Database $dbForExternal*/ @@ -836,7 +836,7 @@ App::post('/v1/database/collections/:collectionId/attributes/enum') } $attribute = createAttribute($collectionId, new Document([ - '$id' => $attributeId, + 'key' => $key, 'type' => Database::VAR_STRING, 'size' => $size, 'required' => $required, @@ -862,7 +862,7 @@ App::post('/v1/database/collections/:collectionId/attributes/ip') ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_ATTRIBUTE_IP) ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') - ->param('attributeId', '', new Key(), 'Attribute ID.') + ->param('key', '', new Key(), 'Attribute Key.') ->param('required', null, new Boolean(), 'Is attribute required?') ->param('default', null, new IP(), 'Default value for attribute when not provided. Cannot be set when attribute is required.', true) ->param('array', false, new Boolean(), 'Is attribute an array?', true) @@ -872,7 +872,7 @@ App::post('/v1/database/collections/:collectionId/attributes/ip') ->inject('database') ->inject('audits') ->inject('usage') - ->action(function ($collectionId, $attributeId, $required, $default, $array, $response, $dbForInternal, $dbForExternal, $database, $audits, $usage) { + ->action(function ($collectionId, $key, $required, $default, $array, $response, $dbForInternal, $dbForExternal, $database, $audits, $usage) { /** @var Appwrite\Utopia\Response $response */ /** @var Utopia\Database\Database $dbForInternal*/ /** @var Utopia\Database\Database $dbForExternal*/ @@ -881,7 +881,7 @@ App::post('/v1/database/collections/:collectionId/attributes/ip') /** @var Appwrite\Stats\Stats $usage */ $attribute = createAttribute($collectionId, new Document([ - '$id' => $attributeId, + 'key' => $key, 'type' => Database::VAR_STRING, 'size' => 39, 'required' => $required, @@ -906,7 +906,7 @@ App::post('/v1/database/collections/:collectionId/attributes/url') ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_ATTRIBUTE_URL) ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') - ->param('attributeId', '', new Key(), 'Attribute ID.') + ->param('key', '', new Key(), 'Attribute Key.') ->param('required', null, new Boolean(), 'Is attribute required?') ->param('default', null, new URL(), 'Default value for attribute when not provided. Cannot be set when attribute is required.', true) ->param('array', false, new Boolean(), 'Is attribute an array?', true) @@ -916,7 +916,7 @@ App::post('/v1/database/collections/:collectionId/attributes/url') ->inject('database') ->inject('audits') ->inject('usage') - ->action(function ($collectionId, $attributeId, $required, $default, $array, $response, $dbForInternal, $dbForExternal, $database, $audits, $usage) { + ->action(function ($collectionId, $key, $required, $default, $array, $response, $dbForInternal, $dbForExternal, $database, $audits, $usage) { /** @var Appwrite\Utopia\Response $response */ /** @var Utopia\Database\Database $dbForExternal*/ /** @var Appwrite\Event\Event $database */ @@ -924,7 +924,7 @@ App::post('/v1/database/collections/:collectionId/attributes/url') /** @var Appwrite\Stats\Stats $usage */ $attribute = createAttribute($collectionId, new Document([ - '$id' => $attributeId, + 'key' => $key, 'type' => Database::VAR_STRING, 'size' => 2000, 'required' => $required, @@ -949,7 +949,7 @@ App::post('/v1/database/collections/:collectionId/attributes/integer') ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_ATTRIBUTE_INTEGER) ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') - ->param('attributeId', '', new Key(), 'Attribute ID.') + ->param('key', '', new Key(), 'Attribute Key.') ->param('required', null, new Boolean(), 'Is attribute required?') ->param('min', null, new Integer(), 'Minimum value to enforce on new documents', true) ->param('max', null, new Integer(), 'Maximum value to enforce on new documents', true) @@ -961,7 +961,7 @@ App::post('/v1/database/collections/:collectionId/attributes/integer') ->inject('database') ->inject('audits') ->inject('usage') - ->action(function ($collectionId, $attributeId, $required, $min, $max, $default, $array, $response, $dbForInternal, $dbForExternal, $database, $audits, $usage) { + ->action(function ($collectionId, $key, $required, $min, $max, $default, $array, $response, $dbForInternal, $dbForExternal, $database, $audits, $usage) { /** @var Appwrite\Utopia\Response $response */ /** @var Utopia\Database\Database $dbForInternal*/ /** @var Utopia\Database\Database $dbForExternal*/ @@ -984,7 +984,7 @@ App::post('/v1/database/collections/:collectionId/attributes/integer') } $attribute = createAttribute($collectionId, new Document([ - '$id' => $attributeId, + 'key' => $key, 'type' => Database::VAR_INTEGER, 'size' => 0, 'required' => $required, @@ -1020,7 +1020,7 @@ App::post('/v1/database/collections/:collectionId/attributes/float') ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_ATTRIBUTE_FLOAT) ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') - ->param('attributeId', '', new Key(), 'Attribute ID.') + ->param('key', '', new Key(), 'Attribute Key.') ->param('required', null, new Boolean(), 'Is attribute required?') ->param('min', null, new FloatValidator(), 'Minimum value to enforce on new documents', true) ->param('max', null, new FloatValidator(), 'Maximum value to enforce on new documents', true) @@ -1032,7 +1032,7 @@ App::post('/v1/database/collections/:collectionId/attributes/float') ->inject('database') ->inject('audits') ->inject('usage') - ->action(function ($collectionId, $attributeId, $required, $min, $max, $default, $array, $response, $dbForInternal, $dbForExternal, $database, $audits, $usage) { + ->action(function ($collectionId, $key, $required, $min, $max, $default, $array, $response, $dbForInternal, $dbForExternal, $database, $audits, $usage) { /** @var Appwrite\Utopia\Response $response */ /** @var Utopia\Database\Database $dbForInternal*/ /** @var Utopia\Database\Database $dbForExternal*/ @@ -1047,7 +1047,7 @@ App::post('/v1/database/collections/:collectionId/attributes/float') if ($min > $max) { throw new Exception('Minimum value must be lesser than maximum value', 400); } - + // Ensure default value is a float if (!is_null($default)) { $default = \floatval($default); @@ -1060,7 +1060,7 @@ App::post('/v1/database/collections/:collectionId/attributes/float') } $attribute = createAttribute($collectionId, new Document([ - '$id' => $attributeId, + 'key' => $key, 'type' => Database::VAR_FLOAT, 'required' => $required, 'size' => 0, @@ -1096,7 +1096,7 @@ App::post('/v1/database/collections/:collectionId/attributes/boolean') ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_ATTRIBUTE_BOOLEAN) ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') - ->param('attributeId', '', new Key(), 'Attribute ID.') + ->param('key', '', new Key(), 'Attribute Key.') ->param('required', null, new Boolean(), 'Is attribute required?') ->param('default', null, new Boolean(), 'Default value for attribute when not provided. Cannot be set when attribute is required.', true) ->param('array', false, new Boolean(), 'Is attribute an array?', true) @@ -1106,7 +1106,7 @@ App::post('/v1/database/collections/:collectionId/attributes/boolean') ->inject('database') ->inject('audits') ->inject('usage') - ->action(function ($collectionId, $attributeId, $required, $default, $array, $response, $dbForInternal, $dbForExternal, $database, $audits, $usage) { + ->action(function ($collectionId, $key, $required, $default, $array, $response, $dbForInternal, $dbForExternal, $database, $audits, $usage) { /** @var Appwrite\Utopia\Response $response */ /** @var Utopia\Database\Database $dbForInternal*/ /** @var Appwrite\Event\Event $database */ @@ -1114,7 +1114,7 @@ App::post('/v1/database/collections/:collectionId/attributes/boolean') /** @var Appwrite\Stats\Stats $usage */ $attribute = createAttribute($collectionId, new Document([ - '$id' => $attributeId, + 'key' => $key, 'type' => Database::VAR_BOOLEAN, 'size' => 0, 'required' => $required, @@ -1160,7 +1160,7 @@ App::get('/v1/database/collections/:collectionId/attributes') ]), Response::MODEL_ATTRIBUTE_LIST); }); -App::get('/v1/database/collections/:collectionId/attributes/:attributeId') +App::get('/v1/database/collections/:collectionId/attributes/:key') ->desc('Get Attribute') ->groups(['api', 'database']) ->label('scope', 'collections.read') @@ -1180,11 +1180,11 @@ App::get('/v1/database/collections/:collectionId/attributes/:attributeId') Response::MODEL_ATTRIBUTE_IP, Response::MODEL_ATTRIBUTE_STRING,])// needs to be last, since its condition would dominate any other string attribute ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') - ->param('attributeId', '', new Key(), 'Attribute ID.') + ->param('key', '', new Key(), 'Attribute Key.') ->inject('response') ->inject('dbForInternal') ->inject('usage') - ->action(function ($collectionId, $attributeId, $response, $dbForInternal, $usage) { + ->action(function ($collectionId, $key, $response, $dbForInternal, $usage) { /** @var Appwrite\Utopia\Response $response */ /** @var Utopia\Database\Database $dbForInternal */ @@ -1194,7 +1194,7 @@ App::get('/v1/database/collections/:collectionId/attributes/:attributeId') throw new Exception('Collection not found', 404); } - $attribute = $collection->find('$id', $attributeId, 'attributes'); + $attribute = $collection->find('$id', $key, 'attributes'); if (!$attribute) { throw new Exception('Attribute not found', 404); @@ -1223,7 +1223,7 @@ App::get('/v1/database/collections/:collectionId/attributes/:attributeId') $response->dynamic($attribute, $model); }); -App::delete('/v1/database/collections/:collectionId/attributes/:attributeId') +App::delete('/v1/database/collections/:collectionId/attributes/:key') ->desc('Delete Attribute') ->groups(['api', 'database']) ->label('scope', 'collections.write') @@ -1235,7 +1235,7 @@ App::delete('/v1/database/collections/:collectionId/attributes/:attributeId') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) ->label('sdk.response.model', Response::MODEL_NONE) ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') - ->param('attributeId', '', new Key(), 'Attribute ID.') + ->param('key', '', new Key(), 'Attribute Key.') ->inject('response') ->inject('dbForInternal') ->inject('dbForExternal') @@ -1243,7 +1243,7 @@ App::delete('/v1/database/collections/:collectionId/attributes/:attributeId') ->inject('events') ->inject('audits') ->inject('usage') - ->action(function ($collectionId, $attributeId, $response, $dbForInternal, $dbForExternal, $database, $events, $audits, $usage) { + ->action(function ($collectionId, $key, $response, $dbForInternal, $dbForExternal, $database, $events, $audits, $usage) { /** @var Appwrite\Utopia\Response $response */ /** @var Utopia\Database\Database $dbForInternal */ /** @var Utopia\Database\Database $dbForExternal */ @@ -1258,7 +1258,7 @@ App::delete('/v1/database/collections/:collectionId/attributes/:attributeId') throw new Exception('Collection not found', 404); } - $attribute = $dbForInternal->getDocument('attributes', $collectionId.'_'.$attributeId); + $attribute = $dbForInternal->getDocument('attributes', $collectionId.'_'.$key); if (empty($attribute->getId())) { throw new Exception('Attribute not found', 404); @@ -1324,7 +1324,7 @@ App::post('/v1/database/collections/:collectionId/indexes') ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_INDEX) ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') - ->param('indexId', null, new Key(), 'Index ID.') + ->param('key', null, new Key(), 'Index Key.') ->param('type', null, new WhiteList([Database::INDEX_KEY, Database::INDEX_FULLTEXT, Database::INDEX_UNIQUE, Database::INDEX_SPATIAL, Database::INDEX_ARRAY]), 'Index type.') ->param('attributes', null, new ArrayList(new Key()), 'Array of attributes to index.') ->param('orders', [], new ArrayList(new WhiteList(['ASC', 'DESC'], false, Database::VAR_STRING)), 'Array of index orders.', true) @@ -1333,7 +1333,7 @@ App::post('/v1/database/collections/:collectionId/indexes') ->inject('database') ->inject('audits') ->inject('usage') - ->action(function ($collectionId, $indexId, $type, $attributes, $orders, $response, $dbForInternal, $database, $audits, $usage) { + ->action(function ($collectionId, $key, $type, $attributes, $orders, $response, $dbForInternal, $database, $audits, $usage) { /** @var Appwrite\Utopia\Response $response */ /** @var Utopia\Database\Database $dbForInternal */ /** @var Appwrite\Event\Event $database */ @@ -1364,7 +1364,7 @@ App::post('/v1/database/collections/:collectionId/indexes') // lengths hidden by default $lengths = []; - foreach ($attributes as $key => $attribute) { + foreach ($attributes as $i => $attribute) { // find attribute metadata in collection document $attributeIndex = \array_search($attribute, array_column($oldAttributes, 'key')); @@ -1382,13 +1382,13 @@ App::post('/v1/database/collections/:collectionId/indexes') } // set attribute size as index length only for strings - $lengths[$key] = ($attributeType === Database::VAR_STRING) ? $attributeSize : null; + $lengths[$i] = ($attributeType === Database::VAR_STRING) ? $attributeSize : null; } try { $index = $dbForInternal->createDocument('indexes', new Document([ - '$id' => $collectionId.'_'.$indexId, - 'key' => $indexId, + '$id' => $collectionId.'_'.$key, + 'key' => $key, 'status' => 'processing', // processing, available, failed, deleting, stuck 'collectionId' => $collectionId, 'type' => $type, @@ -1455,7 +1455,7 @@ App::get('/v1/database/collections/:collectionId/indexes') ]), Response::MODEL_INDEX_LIST); }); -App::get('/v1/database/collections/:collectionId/indexes/:indexId') +App::get('/v1/database/collections/:collectionId/indexes/:key') ->desc('Get Index') ->groups(['api', 'database']) ->label('scope', 'collections.read') @@ -1467,11 +1467,11 @@ App::get('/v1/database/collections/:collectionId/indexes/:indexId') ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_INDEX) ->param('collectionId', '', new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') - ->param('indexId', null, new Key(), 'Index ID.') + ->param('key', null, new Key(), 'Index Key.') ->inject('response') ->inject('dbForInternal') ->inject('usage') - ->action(function ($collectionId, $indexId, $response, $dbForInternal, $usage) { + ->action(function ($collectionId, $key, $response, $dbForInternal, $usage) { /** @var Appwrite\Utopia\Response $response */ /** @var Utopia\Database\Database $dbForInternal */ @@ -1484,7 +1484,7 @@ App::get('/v1/database/collections/:collectionId/indexes/:indexId') $indexes = $collection->getAttribute('indexes'); // Search for index - $indexIndex = array_search($indexId, array_column($indexes, '$id')); + $indexIndex = array_search($key, array_column($indexes, 'key')); if ($indexIndex === false) { throw new Exception('Index not found', 404); @@ -1495,11 +1495,11 @@ App::get('/v1/database/collections/:collectionId/indexes/:indexId') ])]); $usage->setParam('database.collections.read', 1); - + $response->dynamic($index, Response::MODEL_INDEX); }); -App::delete('/v1/database/collections/:collectionId/indexes/:indexId') +App::delete('/v1/database/collections/:collectionId/indexes/:key') ->desc('Delete Index') ->groups(['api', 'database']) ->label('scope', 'collections.write') @@ -1511,14 +1511,14 @@ App::delete('/v1/database/collections/:collectionId/indexes/:indexId') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) ->label('sdk.response.model', Response::MODEL_NONE) ->param('collectionId', null, new UID(), 'Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/database#createCollection).') - ->param('indexId', '', new Key(), 'Index ID.') + ->param('key', '', new Key(), 'Index Key.') ->inject('response') ->inject('dbForInternal') ->inject('database') ->inject('events') ->inject('audits') ->inject('usage') - ->action(function ($collectionId, $indexId, $response, $dbForInternal, $database, $events, $audits, $usage) { + ->action(function ($collectionId, $key, $response, $dbForInternal, $database, $events, $audits, $usage) { /** @var Appwrite\Utopia\Response $response */ /** @var Utopia\Database\Database $dbForInternal */ /** @var Appwrite\Event\Event $database */ @@ -1532,7 +1532,7 @@ App::delete('/v1/database/collections/:collectionId/indexes/:indexId') throw new Exception('Collection not found', 404); } - $index = $dbForInternal->getDocument('indexes', $collectionId.'_'.$indexId); + $index = $dbForInternal->getDocument('indexes', $collectionId.'_'.$key); if (empty($index->getId())) { throw new Exception('Index not found', 404); diff --git a/tests/e2e/Services/Database/DatabaseBase.php b/tests/e2e/Services/Database/DatabaseBase.php index 2f852d0f5e..ce7f0d2246 100644 --- a/tests/e2e/Services/Database/DatabaseBase.php +++ b/tests/e2e/Services/Database/DatabaseBase.php @@ -40,7 +40,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'title', + 'key' => 'title', 'size' => 256, 'required' => true, ]); @@ -50,7 +50,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'releaseYear', + 'key' => 'releaseYear', 'required' => true, ]); @@ -59,7 +59,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'actors', + 'key' => 'actors', 'size' => 256, 'required' => false, 'array' => true, @@ -128,7 +128,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'string', + 'key' => 'string', 'size' => 16, 'required' => false, 'default' => 'default', @@ -139,7 +139,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'email', + 'key' => 'email', 'required' => false, 'default' => 'default@example.com', ]); @@ -149,7 +149,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'enum', + 'key' => 'enum', 'elements' => ['yes', 'no', 'maybe'], 'required' => false, 'default' => 'maybe', @@ -160,7 +160,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'ip', + 'key' => 'ip', 'required' => false, 'default' => '192.0.2.0', ]); @@ -170,7 +170,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'url', + 'key' => 'url', 'required' => false, 'default' => 'http://example.com', ]); @@ -180,7 +180,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'integer', + 'key' => 'integer', 'required' => false, 'min' => 1, 'max' => 5, @@ -192,7 +192,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'float', + 'key' => 'float', 'required' => false, 'min' => 1.5, 'max' => 5.5, @@ -204,7 +204,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'boolean', + 'key' => 'boolean', 'required' => false, 'default' => true, ]); @@ -568,7 +568,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'enum', + 'key' => 'enum', 'elements' => ['yes', 'no', ''], 'required' => false, 'default' => 'maybe', @@ -590,7 +590,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'indexId' => 'titleIndex', + 'key' => 'titleIndex', 'type' => 'fulltext', 'attributes' => ['title'], ]); @@ -606,7 +606,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'indexId' => 'releaseYear', + 'key' => 'releaseYear', 'type' => 'key', 'attributes' => ['releaseYear'], ]); @@ -1244,7 +1244,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'email', + 'key' => 'email', 'required' => false, ]); @@ -1253,7 +1253,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'enum', + 'key' => 'enum', 'elements' => ['yes', 'no', 'maybe'], 'required' => false, ]); @@ -1263,7 +1263,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'ip', + 'key' => 'ip', 'required' => false, ]); @@ -1272,7 +1272,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'url', + 'key' => 'url', 'size' => 256, 'required' => false, ]); @@ -1282,7 +1282,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'range', + 'key' => 'range', 'required' => false, 'min' => 1, 'max' => 10, @@ -1294,7 +1294,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'floatRange', + 'key' => 'floatRange', 'required' => false, 'min' => 1.1, 'max' => 1.4, @@ -1305,7 +1305,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'probability', + 'key' => 'probability', 'required' => false, 'min' => 0, 'max' => 1, @@ -1316,7 +1316,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'upperBound', + 'key' => 'upperBound', 'required' => false, 'max' => 10, ]); @@ -1326,7 +1326,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'lowerBound', + 'key' => 'lowerBound', 'required' => false, 'min' => 5, ]); @@ -1339,7 +1339,7 @@ trait DatabaseBase 'content-type' => 'application/json', 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'invalidRange', + 'key' => 'invalidRange', 'required' => false, 'min' => 4, 'max' => 3, @@ -1349,7 +1349,7 @@ trait DatabaseBase 'content-type' => 'application/json', 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'defaultArray', + 'key' => 'defaultArray', 'required' => false, 'default' => 42, 'array' => true, @@ -1788,7 +1788,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'attribute', + 'key' => 'attribute', 'size' => 64, 'required' => true, ]); @@ -1804,7 +1804,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'indexId' => 'key_attribute', + 'key' => 'key_attribute', 'type' => 'key', 'attributes' => [$attribute['body']['key']], ]); @@ -1907,7 +1907,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'indexId' => 'unique_title', + 'key' => 'unique_title', 'type' => 'unique', 'attributes' => ['title'], ]); diff --git a/tests/e2e/Services/Database/DatabaseCustomServerTest.php b/tests/e2e/Services/Database/DatabaseCustomServerTest.php index 9f8c7130e4..659839debe 100644 --- a/tests/e2e/Services/Database/DatabaseCustomServerTest.php +++ b/tests/e2e/Services/Database/DatabaseCustomServerTest.php @@ -165,7 +165,7 @@ class DatabaseCustomServerTest extends Scope 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'firstName', + 'key' => 'firstName', 'size' => 256, 'required' => true, ]); @@ -175,7 +175,7 @@ class DatabaseCustomServerTest extends Scope 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'lastName', + 'key' => 'lastName', 'size' => 256, 'required' => true, ]); @@ -185,7 +185,7 @@ class DatabaseCustomServerTest extends Scope 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'unneeded', + 'key' => 'unneeded', 'size' => 256, 'required' => true, ]); @@ -214,7 +214,7 @@ class DatabaseCustomServerTest extends Scope 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'indexId' => 'key_lastName', + 'key' => 'key_lastName', 'type' => 'key', 'attributes' => [ 'lastName', @@ -275,7 +275,7 @@ class DatabaseCustomServerTest extends Scope return [ 'collectionId' => $actors['body']['$id'], - 'indexId' => $index['body']['key'], + 'key' => $index['body']['key'], ]; } @@ -284,7 +284,7 @@ class DatabaseCustomServerTest extends Scope */ public function testDeleteIndex($data): array { - $index = $this->client->call(Client::METHOD_DELETE, '/database/collections/' . $data['collectionId'] . '/indexes/'. $data['indexId'], array_merge([ + $index = $this->client->call(Client::METHOD_DELETE, '/database/collections/' . $data['collectionId'] . '/indexes/'. $data['key'], array_merge([ 'content-type' => 'application/json', 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] @@ -316,7 +316,7 @@ class DatabaseCustomServerTest extends Scope 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'attribute1', + 'key' => 'attribute1', 'size' => 16, 'required' => true, ]); @@ -326,7 +326,7 @@ class DatabaseCustomServerTest extends Scope 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'attribute2', + 'key' => 'attribute2', 'size' => 16, 'required' => true, ]); @@ -343,7 +343,7 @@ class DatabaseCustomServerTest extends Scope 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'indexId' => 'index1', + 'key' => 'index1', 'type' => 'key', 'attributes' => ['attribute1', 'attribute2'], 'orders' => ['ASC', 'ASC'], @@ -354,7 +354,7 @@ class DatabaseCustomServerTest extends Scope 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'indexId' => 'index2', + 'key' => 'index2', 'type' => 'key', 'attributes' => ['attribute2'], ]); @@ -428,7 +428,7 @@ class DatabaseCustomServerTest extends Scope 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'attribute1', + 'key' => 'attribute1', 'size' => 16, 'required' => true, ]); @@ -438,7 +438,7 @@ class DatabaseCustomServerTest extends Scope 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'attribute2', + 'key' => 'attribute2', 'size' => 16, 'required' => true, ]); @@ -455,7 +455,7 @@ class DatabaseCustomServerTest extends Scope 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'indexId' => 'index1', + 'key' => 'index1', 'type' => 'key', 'attributes' => ['attribute1', 'attribute2'], 'orders' => ['ASC', 'ASC'], @@ -466,7 +466,7 @@ class DatabaseCustomServerTest extends Scope 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'indexId' => 'index2', + 'key' => 'index2', 'type' => 'key', 'attributes' => ['attribute2'], ]); @@ -615,7 +615,7 @@ class DatabaseCustomServerTest extends Scope // 'x-appwrite-project' => $this->getProject()['$id'], // 'x-appwrite-key' => $this->getProject()['apiKey'] // ]), [ - // 'attributeId' => "attribute{$i}", + // 'key' => "attribute{$i}", // 'required' => false, // ]); @@ -629,7 +629,7 @@ class DatabaseCustomServerTest extends Scope // 'x-appwrite-project' => $this->getProject()['$id'], // 'x-appwrite-key' => $this->getProject()['apiKey'] // ]), [ - // 'attributeId' => "tooMany", + // 'key' => "tooMany", // 'required' => false, // ]); @@ -663,7 +663,7 @@ class DatabaseCustomServerTest extends Scope 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => "attribute{$i}", + 'key' => "attribute{$i}", 'size' => 1024, 'required' => true, ]); @@ -678,7 +678,7 @@ class DatabaseCustomServerTest extends Scope 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'tooWide', + 'key' => 'tooWide', 'size' => 1024, 'required' => true, ]); @@ -714,7 +714,7 @@ class DatabaseCustomServerTest extends Scope 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => "attribute{$i}", + 'key' => "attribute{$i}", 'size' => 64, 'required' => true, ]); @@ -751,7 +751,7 @@ class DatabaseCustomServerTest extends Scope 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'indexId' => "key_attribute{$i}", + 'key' => "key_attribute{$i}", 'type' => 'key', 'attributes' => ["attribute{$i}"], ]); @@ -780,7 +780,7 @@ class DatabaseCustomServerTest extends Scope 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'indexId' => 'tooMany', + 'key' => 'tooMany', 'type' => 'key', 'attributes' => ['attribute61'], ]); diff --git a/tests/e2e/Services/Database/DatabasePermissionsGuestTest.php b/tests/e2e/Services/Database/DatabasePermissionsGuestTest.php index 1e6c6b7e18..f5e8ad350e 100644 --- a/tests/e2e/Services/Database/DatabasePermissionsGuestTest.php +++ b/tests/e2e/Services/Database/DatabasePermissionsGuestTest.php @@ -26,7 +26,7 @@ class DatabasePermissionsGuestTest extends Scope $collection = ['id' => $movies['body']['$id']]; $this->client->call(Client::METHOD_POST, '/database/collections/' . $collection['id'] . '/attributes/string', $this->getServerHeader(), [ - 'attributeId' => 'title', + 'key' => 'title', 'size' => 256, 'required' => true, ]); diff --git a/tests/e2e/Services/Database/DatabasePermissionsMemberTest.php b/tests/e2e/Services/Database/DatabasePermissionsMemberTest.php index e28fb559ac..84c5ee6d6b 100644 --- a/tests/e2e/Services/Database/DatabasePermissionsMemberTest.php +++ b/tests/e2e/Services/Database/DatabasePermissionsMemberTest.php @@ -65,7 +65,7 @@ class DatabasePermissionsMemberTest extends Scope $this->collections = ['public' => $public['body']['$id']]; $response = $this->client->call(Client::METHOD_POST, '/database/collections/' . $this->collections['public'] . '/attributes/string', $this->getServerHeader(), [ - 'attributeId' => 'title', + 'key' => 'title', 'size' => 256, 'required' => true, ]); @@ -83,7 +83,7 @@ class DatabasePermissionsMemberTest extends Scope $this->collections['private'] = $private['body']['$id']; $this->client->call(Client::METHOD_POST, '/database/collections/' . $this->collections['private'] . '/attributes/string', $this->getServerHeader(), [ - 'attributeId' => 'title', + 'key' => 'title', 'size' => 256, 'required' => true, ]); diff --git a/tests/e2e/Services/Database/DatabasePermissionsTeamTest.php b/tests/e2e/Services/Database/DatabasePermissionsTeamTest.php index 218c9cd78a..51bb7d9dff 100644 --- a/tests/e2e/Services/Database/DatabasePermissionsTeamTest.php +++ b/tests/e2e/Services/Database/DatabasePermissionsTeamTest.php @@ -45,7 +45,7 @@ class DatabasePermissionsTeamTest extends Scope $this->collections['collection1'] = $collection1['body']['$id']; $this->client->call(Client::METHOD_POST, '/database/collections/' . $this->collections['collection1'] . '/attributes/string', $this->getServerHeader(), [ - 'attributeId' => 'title', + 'key' => 'title', 'size' => 256, 'required' => true, ]); @@ -61,7 +61,7 @@ class DatabasePermissionsTeamTest extends Scope $this->collections['collection2'] = $collection2['body']['$id']; $this->client->call(Client::METHOD_POST, '/database/collections/' . $this->collections['collection2'] . '/attributes/string', $this->getServerHeader(), [ - 'attributeId' => 'title', + 'key' => 'title', 'size' => 256, 'required' => true, ]); From 548f3a3adb9cd1dfa4879bdc7fc1a7571e53b1ad Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Thu, 16 Dec 2021 17:10:01 +0100 Subject: [PATCH 095/107] tests: fix attribute and index test --- tests/e2e/Services/Realtime/RealtimeConsoleClientTest.php | 4 ++-- tests/e2e/Services/Realtime/RealtimeCustomClientTest.php | 2 +- tests/e2e/Services/Webhooks/WebhooksBase.php | 6 +++--- tests/e2e/Services/Webhooks/WebhooksCustomServerTest.php | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/e2e/Services/Realtime/RealtimeConsoleClientTest.php b/tests/e2e/Services/Realtime/RealtimeConsoleClientTest.php index 00c39c5d05..0b19665bf8 100644 --- a/tests/e2e/Services/Realtime/RealtimeConsoleClientTest.php +++ b/tests/e2e/Services/Realtime/RealtimeConsoleClientTest.php @@ -61,7 +61,7 @@ class RealtimeConsoleClientTest extends Scope 'content-type' => 'application/json', 'x-appwrite-project' => $this->getProject()['$id'], ], $this->getHeaders()), [ - 'attributeId' => 'name', + 'key' => 'name', 'size' => 256, 'required' => true, ]); @@ -134,7 +134,7 @@ class RealtimeConsoleClientTest extends Scope 'content-type' => 'application/json', 'x-appwrite-project' => $this->getProject()['$id'], ], $this->getHeaders()), [ - 'indexId' => 'key_name', + 'key' => 'key_name', 'type' => 'key', 'attributes' => [ 'name', diff --git a/tests/e2e/Services/Realtime/RealtimeCustomClientTest.php b/tests/e2e/Services/Realtime/RealtimeCustomClientTest.php index ed10aefa59..b762d2db33 100644 --- a/tests/e2e/Services/Realtime/RealtimeCustomClientTest.php +++ b/tests/e2e/Services/Realtime/RealtimeCustomClientTest.php @@ -586,7 +586,7 @@ class RealtimeCustomClientTest extends Scope 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'name', + 'key' => 'name', 'size' => 256, 'required' => true, ]); diff --git a/tests/e2e/Services/Webhooks/WebhooksBase.php b/tests/e2e/Services/Webhooks/WebhooksBase.php index 304cc215f6..53e064d13d 100644 --- a/tests/e2e/Services/Webhooks/WebhooksBase.php +++ b/tests/e2e/Services/Webhooks/WebhooksBase.php @@ -57,7 +57,7 @@ trait WebhooksBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'firstName', + 'key' => 'firstName', 'size' => 256, 'required' => true, ]); @@ -67,7 +67,7 @@ trait WebhooksBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'lastName', + 'key' => 'lastName', 'size' => 256, 'required' => true, ]); @@ -77,7 +77,7 @@ trait WebhooksBase 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'extra', + 'key' => 'extra', 'size' => 64, 'required' => false, ]); diff --git a/tests/e2e/Services/Webhooks/WebhooksCustomServerTest.php b/tests/e2e/Services/Webhooks/WebhooksCustomServerTest.php index 09aaa63524..cb243c8c2b 100644 --- a/tests/e2e/Services/Webhooks/WebhooksCustomServerTest.php +++ b/tests/e2e/Services/Webhooks/WebhooksCustomServerTest.php @@ -64,7 +64,7 @@ class WebhooksCustomServerTest extends Scope 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'indexId' => 'fullname', + 'key' => 'fullname', 'type' => 'key', 'attributes' => ['lastName', 'firstName'], 'orders' => ['ASC', 'ASC'], @@ -125,7 +125,7 @@ class WebhooksCustomServerTest extends Scope 'write' => ['role:all'], 'permission' => 'document' ]); - + $this->assertEquals($actors['headers']['status-code'], 201); $this->assertNotEmpty($actors['body']['$id']); @@ -134,7 +134,7 @@ class WebhooksCustomServerTest extends Scope 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), []); - + $this->assertEquals($actors['headers']['status-code'], 204); $webhook = $this->getLastRequest(); From 166c906d51ec10110eebc00a90e1916128816e7a Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Thu, 16 Dec 2021 19:12:06 +0100 Subject: [PATCH 096/107] fix: collection level permissions --- app/controllers/api/database.php | 60 ++++-- app/controllers/shared/api.php | 9 +- src/Appwrite/Messaging/Adapter/Realtime.php | 15 +- tests/e2e/Services/Database/DatabaseBase.php | 46 ++++- .../Database/DatabasePermissionsTeamTest.php | 2 +- .../Realtime/RealtimeCustomClientTest.php | 186 +++++++++++++++--- tests/unit/Messaging/MessagingTest.php | 49 ++++- 7 files changed, 311 insertions(+), 56 deletions(-) diff --git a/app/controllers/api/database.php b/app/controllers/api/database.php index 43b98dd5f3..b18fdb1788 100644 --- a/app/controllers/api/database.php +++ b/app/controllers/api/database.php @@ -1589,13 +1589,15 @@ App::post('/v1/database/collections/:collectionId/documents') ->inject('user') ->inject('audits') ->inject('usage') - ->action(function ($documentId, $collectionId, $data, $read, $write, $response, $dbForInternal, $dbForExternal, $user, $audits, $usage) { + ->inject('events') + ->action(function ($documentId, $collectionId, $data, $read, $write, $response, $dbForInternal, $dbForExternal, $user, $audits, $usage, $events) { /** @var Appwrite\Utopia\Response $response */ /** @var Utopia\Database\Database $dbForInternal */ /** @var Utopia\Database\Database $dbForExternal */ /** @var Utopia\Database\Document $user */ /** @var Appwrite\Event\Event $audits */ /** @var Appwrite\Stats\Stats $usage */ + /** @var Appwrite\Event\Event $events */ $data = (\is_string($data)) ? \json_decode($data, true) : $data; // Cast to JSON array @@ -1607,7 +1609,10 @@ App::post('/v1/database/collections/:collectionId/documents') throw new Exception('$id is not allowed for creating new documents, try update instead', 400); } - $collection = $dbForInternal->getDocument('collections', $collectionId); + /** + * Skip Authorization to get the collection. Needed in case of empty permissions for document level permissions. + */ + $collection = Authorization::skip(fn() => $dbForInternal->getDocument('collections', $collectionId)); if ($collection->isEmpty()) { throw new Exception('Collection not found', 404); @@ -1659,6 +1664,8 @@ App::post('/v1/database/collections/:collectionId/documents') throw new Exception('Document already exists', 409); } + $events->setParam('collection', $collection->getArrayCopy()); + $usage ->setParam('database.documents.create', 1) ->setParam('collectionId', $collectionId) @@ -1703,7 +1710,10 @@ App::get('/v1/database/collections/:collectionId/documents') /** @var Utopia\Database\Database $dbForExternal */ /** @var Appwrite\Stats\Stats $usage */ - $collection = $dbForInternal->getDocument('collections', $collectionId); + /** + * Skip Authorization to get the collection. Needed in case of empty permissions for document level permissions. + */ + $collection = Authorization::skip(fn() => $dbForInternal->getDocument('collections', $collectionId)); if ($collection->isEmpty()) { throw new Exception('Collection not found', 404); @@ -1739,11 +1749,11 @@ App::get('/v1/database/collections/:collectionId/documents') if ($collection->getAttribute('permission') === 'collection') { /** @var Document[] $documents */ - $documents = Authorization::skip(function() use ($dbForExternal, $collectionId, $queries, $limit, $offset, $orderAttributes, $orderTypes, $cursorDocument, $cursorDirection) { - return $dbForExternal->find($collectionId, $queries, $limit, $offset, $orderAttributes, $orderTypes, $cursorDocument ?? null, $cursorDirection); - }); + $documents = Authorization::skip(fn() => $dbForExternal->find($collectionId, $queries, $limit, $offset, $orderAttributes, $orderTypes, $cursorDocument ?? null, $cursorDirection)); + $sum = Authorization::skip(fn() => $dbForExternal->count($collectionId, $queries, APP_LIMIT_COUNT)); } else { $documents = $dbForExternal->find($collectionId, $queries, $limit, $offset, $orderAttributes, $orderTypes, $cursorDocument ?? null, $cursorDirection); + $sum = $dbForExternal->count($collectionId, $queries, APP_LIMIT_COUNT); } $usage @@ -1752,7 +1762,7 @@ App::get('/v1/database/collections/:collectionId/documents') ; $response->dynamic(new Document([ - 'sum' => $dbForExternal->count($collectionId, $queries, APP_LIMIT_COUNT), + 'sum' => $sum, 'documents' => $documents, ]), Response::MODEL_DOCUMENT_LIST); }); @@ -1779,7 +1789,10 @@ App::get('/v1/database/collections/:collectionId/documents/:documentId') /** @var Utopia\Database\Database $$dbForInternal */ /** @var Utopia\Database\Database $dbForExternal */ - $collection = $dbForInternal->getDocument('collections', $collectionId); + /** + * Skip Authorization to get the collection. Needed in case of empty permissions for document level permissions. + */ + $collection = Authorization::skip(fn() => $dbForInternal->getDocument('collections', $collectionId)); if ($collection->isEmpty()) { throw new Exception('Collection not found', 404); @@ -1930,14 +1943,19 @@ App::patch('/v1/database/collections/:collectionId/documents/:documentId') ->inject('dbForExternal') ->inject('audits') ->inject('usage') - ->action(function ($collectionId, $documentId, $data, $read, $write, $response, $dbForInternal, $dbForExternal, $audits, $usage) { + ->inject('events') + ->action(function ($collectionId, $documentId, $data, $read, $write, $response, $dbForInternal, $dbForExternal, $audits, $usage, $events) { /** @var Appwrite\Utopia\Response $response */ /** @var Utopia\Database\Database $dbForInternal */ /** @var Utopia\Database\Database $dbForExternal */ /** @var Appwrite\Event\Event $audits */ /** @var Appwrite\Stats\Stats $usage */ + /** @var Appwrite\Event\Event $events */ - $collection = $dbForInternal->getDocument('collections', $collectionId); + /** + * Skip Authorization to get the collection. Needed in case of empty permissions for document level permissions. + */ + $collection = Authorization::skip(fn() => $dbForInternal->getDocument('collections', $collectionId)); if ($collection->isEmpty()) { throw new Exception('Collection not found', 404); @@ -1949,9 +1967,12 @@ App::patch('/v1/database/collections/:collectionId/documents/:documentId') if (!$validator->isValid($collection->getWrite())) { throw new Exception('Unauthorized permissions', 401); } + + $document = Authorization::skip(fn() => $dbForExternal->getDocument($collectionId, $documentId)); + } else { + $document = $dbForExternal->getDocument($collectionId, $documentId); } - $document = $dbForExternal->getDocument($collectionId, $documentId); if ($document->isEmpty()) { throw new Exception('Document not found', 404); @@ -2009,7 +2030,9 @@ App::patch('/v1/database/collections/:collectionId/documents/:documentId') catch (StructureException $exception) { throw new Exception($exception->getMessage(), 400); } - + + $events->setParam('collection', $collection->getArrayCopy()); + $usage ->setParam('database.documents.update', 1) ->setParam('collectionId', $collectionId) @@ -2050,7 +2073,10 @@ App::delete('/v1/database/collections/:collectionId/documents/:documentId') /** @var Appwrite\Event\Event $audits */ /** @var Appwrite\Stats\Stats $usage */ - $collection = $dbForInternal->getDocument('collections', $collectionId); + /** + * Skip Authorization to get the collection. Needed in case of empty permissions for document level permissions. + */ + $collection = Authorization::skip(fn() => $dbForInternal->getDocument('collections', $collectionId)); if ($collection->isEmpty()) { throw new Exception('Collection not found', 404); @@ -2077,7 +2103,12 @@ App::delete('/v1/database/collections/:collectionId/documents/:documentId') throw new Exception('No document found', 404); } - $dbForExternal->deleteDocument($collectionId, $documentId); + if ($collection->getAttribute('permission') === 'collection') { + Authorization::skip(fn() => $dbForExternal->deleteDocument($collectionId, $documentId)); + } else { + $dbForExternal->deleteDocument($collectionId, $documentId); + } + $dbForExternal->deleteCachedDocument($collectionId, $documentId); $usage @@ -2087,6 +2118,7 @@ App::delete('/v1/database/collections/:collectionId/documents/:documentId') $events ->setParam('eventData', $response->output($document, Response::MODEL_DOCUMENT)) + ->setParam('collection', $collection->getArrayCopy()); ; $audits diff --git a/app/controllers/shared/api.php b/app/controllers/shared/api.php index b1087f28e6..a6ad8a276e 100644 --- a/app/controllers/shared/api.php +++ b/app/controllers/shared/api.php @@ -207,7 +207,14 @@ App::shutdown(function ($utopia, $request, $response, $project, $events, $audits if ($project->getId() !== 'console') { $payload = new Document($response->getPayload()); - $target = Realtime::fromPayload($events->getParam('event'), $payload, $project); + $collection = new Document($events->getParam('collection')); + + $target = Realtime::fromPayload( + event: $events->getParam('event'), + payload: $payload, + project: $project, + collection: $collection + ); Realtime::send( $target['projectId'] ?? $project->getId(), diff --git a/src/Appwrite/Messaging/Adapter/Realtime.php b/src/Appwrite/Messaging/Adapter/Realtime.php index 8fb3ad4aa5..59708ec084 100644 --- a/src/Appwrite/Messaging/Adapter/Realtime.php +++ b/src/Appwrite/Messaging/Adapter/Realtime.php @@ -240,7 +240,7 @@ class Realtime extends Adapter * @param Document|null $project * @return array */ - public static function fromPayload(string $event, Document $payload, Document $project = null): array + public static function fromPayload(string $event, Document $payload, Document $project = null, Document $collection = null): array { $channels = []; $roles = []; @@ -275,12 +275,6 @@ class Realtime extends Adapter $channels[] = 'teams.' . $payload->getId(); $roles = ['team:' . $payload->getId()]; - break; - case strpos($event, 'database.collections.') === 0: - $channels[] = 'collections'; - $channels[] = 'collections.' . $payload->getId(); - $roles = $payload->getRead(); - break; case strpos($event, 'database.attributes.') === 0: case strpos($event, 'database.indexes.') === 0: @@ -290,10 +284,15 @@ class Realtime extends Adapter break; case strpos($event, 'database.documents.') === 0: + if ($collection->isEmpty()) { + throw new \Exception('Collection need to be passed to to Realtime for Document events in the Database.'); + } + $channels[] = 'documents'; $channels[] = 'collections.' . $payload->getAttribute('$collection') . '.documents'; $channels[] = 'documents.' . $payload->getId(); - $roles = $payload->getRead(); + + $roles = ($collection->getAttribute('permission') === 'collection') ? $collection->getRead() : $payload->getRead(); break; case strpos($event, 'storage.') === 0: diff --git a/tests/e2e/Services/Database/DatabaseBase.php b/tests/e2e/Services/Database/DatabaseBase.php index 2f852d0f5e..1d52cfdc49 100644 --- a/tests/e2e/Services/Database/DatabaseBase.php +++ b/tests/e2e/Services/Database/DatabaseBase.php @@ -19,8 +19,8 @@ trait DatabaseBase ]), [ 'collectionId' => 'unique()', 'name' => 'Movies', - 'read' => ['role:all'], - 'write' => ['role:all'], + 'read' => [], + 'write' => [], 'permission' => 'document', ]); @@ -113,8 +113,8 @@ trait DatabaseBase ]), [ 'collectionId' => 'unique()', 'name' => 'Response Models', - 'read' => ['role:all'], - 'write' => ['role:all'], + 'read' => [], + 'write' => [], 'permission' => 'document', ]); @@ -1229,8 +1229,8 @@ trait DatabaseBase ]), [ 'collectionId' => 'unique()', 'name' => 'invalidDocumentStructure', - 'read' => ['role:all'], - 'write' => ['role:all'], + 'read' => [], + 'write' => [], 'permission' => 'document', ]); @@ -1829,13 +1829,41 @@ trait DatabaseBase $this->assertEquals(201, $document1['headers']['status-code']); + $document2 = $this->client->call(Client::METHOD_POST, '/database/collections/' . $collectionId . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'documentId' => 'unique()', + 'data' => [ + 'attribute' => 'one', + ], + 'read' => [], + 'write' => [$user], + ]); + + $this->assertEquals(201, $document2['headers']['status-code']); + + $document3 = $this->client->call(Client::METHOD_POST, '/database/collections/' . $collectionId . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'documentId' => 'unique()', + 'data' => [ + 'attribute' => 'one', + ], + 'read' => [], + 'write' => [], + ]); + + $this->assertEquals(201, $document3['headers']['status-code']); + $documents = $this->client->call(Client::METHOD_GET, '/database/collections/' . $collectionId . '/documents', array_merge([ 'content-type' => 'application/json', 'x-appwrite-project' => $this->getProject()['$id'], ], $this->getHeaders())); - $this->assertEquals(1, $documents['body']['sum']); - $this->assertCount(1, $documents['body']['documents']); + $this->assertEquals(3, $documents['body']['sum']); + $this->assertCount(3, $documents['body']['documents']); /* * Test for Failure @@ -1894,7 +1922,7 @@ trait DatabaseBase 'x-appwrite-project' => $this->getProject()['$id'], ])); - $this->assertEquals(404, $documents['headers']['status-code']); + $this->assertEquals(401, $documents['headers']['status-code']); } /** diff --git a/tests/e2e/Services/Database/DatabasePermissionsTeamTest.php b/tests/e2e/Services/Database/DatabasePermissionsTeamTest.php index 218c9cd78a..29534d999a 100644 --- a/tests/e2e/Services/Database/DatabasePermissionsTeamTest.php +++ b/tests/e2e/Services/Database/DatabasePermissionsTeamTest.php @@ -160,7 +160,7 @@ class DatabasePermissionsTeamTest extends Scope if ($success) { $this->assertCount(1, $documents['body']['documents']); } else { - $this->assertEquals(404, $documents['headers']['status-code']); + $this->assertEquals(401, $documents['headers']['status-code']); } } diff --git a/tests/e2e/Services/Realtime/RealtimeCustomClientTest.php b/tests/e2e/Services/Realtime/RealtimeCustomClientTest.php index ed10aefa59..0dd6ccaeb3 100644 --- a/tests/e2e/Services/Realtime/RealtimeCustomClientTest.php +++ b/tests/e2e/Services/Realtime/RealtimeCustomClientTest.php @@ -77,9 +77,7 @@ class RealtimeCustomClientTest extends Scope 'files', 'files.1', 'collections', - 'collections.1', 'collections.1.documents', - 'collections.2', 'collections.2.documents', 'documents', 'documents.1', @@ -93,15 +91,13 @@ class RealtimeCustomClientTest extends Scope $this->assertEquals('connected', $response['type']); $this->assertNotEmpty($response['data']); $this->assertNotEmpty($response['data']['user']); - $this->assertCount(12, $response['data']['channels']); + $this->assertCount(10, $response['data']['channels']); $this->assertContains('account', $response['data']['channels']); $this->assertContains('account.' . $userId, $response['data']['channels']); $this->assertContains('files', $response['data']['channels']); $this->assertContains('files.1', $response['data']['channels']); $this->assertContains('collections', $response['data']['channels']); - $this->assertContains('collections.1', $response['data']['channels']); $this->assertContains('collections.1.documents', $response['data']['channels']); - $this->assertContains('collections.2', $response['data']['channels']); $this->assertContains('collections.2.documents', $response['data']['channels']); $this->assertContains('documents', $response['data']['channels']); $this->assertContains('documents.1', $response['data']['channels']); @@ -561,24 +557,11 @@ class RealtimeCustomClientTest extends Scope ]), [ 'collectionId' => 'unique()', 'name' => 'Actors', - 'read' => ['role:all'], - 'write' => ['role:all'], - 'permission' => 'collection' + 'read' => [], + 'write' => [], + 'permission' => 'document' ]); - $response = json_decode($client->receive(), true); - - $this->assertArrayHasKey('type', $response); - $this->assertArrayHasKey('data', $response); - $this->assertEquals('event', $response['type']); - $this->assertNotEmpty($response['data']); - $this->assertArrayHasKey('timestamp', $response['data']); - $this->assertCount(2, $response['data']['channels']); - $this->assertContains('collections', $response['data']['channels']); - $this->assertContains('collections.' . $actors['body']['$id'], $response['data']['channels']); - $this->assertEquals('database.collections.create', $response['data']['event']); - $this->assertNotEmpty($response['data']['payload']); - $data = ['actorsId' => $actors['body']['$id']]; $name = $this->client->call(Client::METHOD_POST, '/database/collections/' . $data['actorsId'] . '/attributes/string', array_merge([ @@ -662,7 +645,6 @@ class RealtimeCustomClientTest extends Scope $this->assertEquals($response['data']['payload']['name'], 'Chris Evans 2'); - /** * Test Document Delete */ @@ -703,6 +685,166 @@ class RealtimeCustomClientTest extends Scope $client->close(); } + public function testChannelDatabaseCollectionPermissions() + { + $user = $this->getUser(); + $session = $user['session'] ?? ''; + $projectId = $this->getProject()['$id']; + + $client = $this->getWebsocket(['documents', 'collections'], [ + 'origin' => 'http://localhost', + 'cookie' => 'a_session_'.$projectId.'=' . $session + ]); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('connected', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertCount(2, $response['data']['channels']); + $this->assertContains('documents', $response['data']['channels']); + $this->assertContains('collections', $response['data']['channels']); + $this->assertNotEmpty($response['data']['user']); + $this->assertEquals($user['$id'], $response['data']['user']['$id']); + + /** + * Test Collection Create + */ + $actors = $this->client->call(Client::METHOD_POST, '/database/collections', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'collectionId' => 'unique()', + 'name' => 'Actors', + 'read' => ['role:all'], + 'write' => ['role:all'], + 'permission' => 'collection' + ]); + + $data = ['actorsId' => $actors['body']['$id']]; + + $name = $this->client->call(Client::METHOD_POST, '/database/collections/' . $data['actorsId'] . '/attributes/string', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-key' => $this->getProject()['apiKey'] + ]), [ + 'attributeId' => 'name', + 'size' => 256, + 'required' => true, + ]); + + $this->assertEquals($name['headers']['status-code'], 201); + $this->assertEquals($name['body']['key'], 'name'); + $this->assertEquals($name['body']['type'], 'string'); + $this->assertEquals($name['body']['size'], 256); + $this->assertEquals($name['body']['required'], true); + + sleep(2); + + /** + * Test Document Create + */ + $document = $this->client->call(Client::METHOD_POST, '/database/collections/' . $data['actorsId'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'documentId' => 'unique()', + 'data' => [ + 'name' => 'Chris Evans' + ], + 'read' => [], + 'write' => [], + ]); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertCount(3, $response['data']['channels']); + $this->assertContains('documents', $response['data']['channels']); + $this->assertContains('documents.' . $document['body']['$id'], $response['data']['channels']); + $this->assertContains('collections.' . $actors['body']['$id'] . '.documents', $response['data']['channels']); + $this->assertEquals('database.documents.create', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + $this->assertEquals($response['data']['payload']['name'], 'Chris Evans'); + + $data['documentId'] = $document['body']['$id']; + + /** + * Test Document Update + */ + $document = $this->client->call(Client::METHOD_PATCH, '/database/collections/' . $data['actorsId'] . '/documents/' . $data['documentId'], array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'data' => [ + 'name' => 'Chris Evans 2' + ], + 'read' => [], + 'write' => [], + ]); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertCount(3, $response['data']['channels']); + $this->assertContains('documents', $response['data']['channels']); + $this->assertContains('documents.' . $data['documentId'], $response['data']['channels']); + $this->assertContains('collections.' . $data['actorsId'] . '.documents', $response['data']['channels']); + $this->assertEquals('database.documents.update', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + + $this->assertEquals($response['data']['payload']['name'], 'Chris Evans 2'); + + /** + * Test Document Delete + */ + $document = $this->client->call(Client::METHOD_POST, '/database/collections/' . $data['actorsId'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders()), [ + 'documentId' => 'unique()', + 'data' => [ + 'name' => 'Bradley Cooper' + ], + 'read' => [], + 'write' => [], + ]); + + $client->receive(); + + $this->client->call(Client::METHOD_DELETE, '/database/collections/' . $data['actorsId'] . '/documents/' . $document['body']['$id'], array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $response = json_decode($client->receive(), true); + + $this->assertArrayHasKey('type', $response); + $this->assertArrayHasKey('data', $response); + $this->assertEquals('event', $response['type']); + $this->assertNotEmpty($response['data']); + $this->assertArrayHasKey('timestamp', $response['data']); + $this->assertCount(3, $response['data']['channels']); + $this->assertContains('documents', $response['data']['channels']); + $this->assertContains('documents.' . $document['body']['$id'], $response['data']['channels']); + $this->assertContains('collections.' . $data['actorsId'] . '.documents', $response['data']['channels']); + $this->assertEquals('database.documents.delete', $response['data']['event']); + $this->assertNotEmpty($response['data']['payload']); + $this->assertEquals($response['data']['payload']['name'], 'Bradley Cooper'); + + $client->close(); + } + public function testChannelFiles() { $user = $this->getUser(); diff --git a/tests/unit/Messaging/MessagingTest.php b/tests/unit/Messaging/MessagingTest.php index dd258d3ae6..a0cad0bae9 100644 --- a/tests/unit/Messaging/MessagingTest.php +++ b/tests/unit/Messaging/MessagingTest.php @@ -2,7 +2,7 @@ namespace Appwrite\Tests; -use Appwrite\Database\Document; +use Utopia\Database\Document; use Appwrite\Messaging\Adapter\Realtime; use PHPUnit\Framework\TestCase; @@ -195,4 +195,51 @@ class MessagingTest extends TestCase $this->assertArrayHasKey('account', $channels); $this->assertArrayNotHasKey('account.456', $channels); } + + public function testFromPayloadCollectionLevelPermissions(): void + { + /** + * Test Collection Level Permissions + */ + $result = Realtime::fromPayload( + event: 'database.documents.create', + payload: new Document([ + '$id' => 'test', + '$collection' => 'collection', + '$read' => ['role:admin'], + '$write' => ['role:admin'] + ]), + collection: new Document([ + '$id' => 'collection', + '$read' => ['role:all'], + '$write' => ['role:all'], + 'permission' => 'collection' + ]) + ); + + $this->assertContains('role:all', $result['roles']); + $this->assertNotContains('role:admin', $result['roles']); + + /** + * Test Document Level Permissions + */ + $result = Realtime::fromPayload( + event: 'database.documents.create', + payload: new Document([ + '$id' => 'test', + '$collection' => 'collection', + '$read' => ['role:all'], + '$write' => ['role:all'] + ]), + collection: new Document([ + '$id' => 'collection', + '$read' => ['role:admin'], + '$write' => ['role:admin'], + 'permission' => 'document' + ]) + ); + + $this->assertContains('role:all', $result['roles']); + $this->assertNotContains('role:admin', $result['roles']); + } } From 7566c5368eae98cbb2996a489e8c5c70d532615d Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Thu, 16 Dec 2021 19:50:06 +0100 Subject: [PATCH 097/107] fix: events middleware --- app/controllers/shared/api.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/shared/api.php b/app/controllers/shared/api.php index a6ad8a276e..ef1e15a4d9 100644 --- a/app/controllers/shared/api.php +++ b/app/controllers/shared/api.php @@ -207,7 +207,7 @@ App::shutdown(function ($utopia, $request, $response, $project, $events, $audits if ($project->getId() !== 'console') { $payload = new Document($response->getPayload()); - $collection = new Document($events->getParam('collection')); + $collection = new Document($events->getParam('collection') ?? []); $target = Realtime::fromPayload( event: $events->getParam('event'), From 4a5d9f9ec9d1242eaabfa976a01cd3a3667e5eb9 Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Fri, 17 Dec 2021 09:27:09 +0200 Subject: [PATCH 098/107] Updated Discord logo --- public/styles/fontello/config.json | 130 +++++++++++++++++++++++++---- public/styles/icons.less | 6 +- 2 files changed, 119 insertions(+), 17 deletions(-) diff --git a/public/styles/fontello/config.json b/public/styles/fontello/config.json index 4e518c20fc..b6f7c27a78 100644 --- a/public/styles/fontello/config.json +++ b/public/styles/fontello/config.json @@ -612,20 +612,6 @@ "code": 61751, "src": "fontawesome" }, - { - "uid": "00d86f3e46c3c3d768e7246eb0eadd7f", - "css": "discord", - "code": 59463, - "src": "custom_icons", - "selected": true, - "svg": { - "path": "M435 432.9C411.3 432.9 392.5 453.8 392.5 479.2S411.7 525.4 435 525.4C458.8 525.4 477.5 504.6 477.5 479.2 477.9 453.8 458.8 432.9 435 432.9ZM587.1 432.9C563.3 432.9 544.6 453.8 544.6 479.2S563.8 525.4 587.1 525.4C610.8 525.4 629.6 504.6 629.6 479.2S610.8 432.9 587.1 432.9ZM789.6 83.3H231.3C184.2 83.3 145.8 121.7 145.8 169.2V732.5C145.8 780 184.2 818.3 231.3 818.3H703.8L681.7 741.3 735 790.8 785.4 837.5 875 916.7V169.2C875 121.7 836.7 83.3 789.6 83.3ZM628.8 627.5S613.8 609.6 601.3 593.8C655.8 578.3 676.7 544.2 676.7 544.2 659.6 555.4 643.3 563.3 628.8 568.8 607.9 577.5 587.9 583.3 568.3 586.7 528.3 594.2 491.7 592.1 460.4 586.3 436.7 581.7 416.3 575 399.2 568.3 389.6 564.6 379.2 560 368.8 554.2 367.5 553.3 366.3 552.9 365 552.1 364.2 551.7 363.8 551.3 363.3 550.8 355.8 546.7 351.7 543.8 351.7 543.8S371.7 577.1 424.6 592.9C412.1 608.8 396.7 627.5 396.7 627.5 304.6 624.6 269.6 564.2 269.6 564.2 269.6 430 329.6 321.3 329.6 321.3 389.6 276.3 446.7 277.5 446.7 277.5L450.8 282.5C375.8 304.2 341.3 337.1 341.3 337.1S350.4 332.1 365.8 325C410.4 305.4 445.8 300 460.4 298.8 462.9 298.3 465 297.9 467.5 297.9 492.9 294.6 521.7 293.8 551.7 297.1 591.3 301.7 633.8 313.3 677.1 337.1 677.1 337.1 644.2 305.8 573.3 284.2L579.2 277.5S636.3 276.3 696.3 321.3C696.3 321.3 756.3 430 756.3 564.2 756.3 564.2 720.8 624.6 628.8 627.5Z", - "width": 1021 - }, - "search": [ - "discord-logo-black" - ] - }, { "uid": "c2152732d525871cf35345955854f711", "css": "moon-inv", @@ -707,6 +693,122 @@ "css": "reddit", "code": 59473, "src": "elusive" + }, + { + "uid": "5b43525a8080befb3493998ea77195e0", + "css": "integer", + "code": 59475, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M381.7 825.7L279.7 825.7 313.1 625 202.7 625 202.7 533.6 327.9 533.6 347.8 409.3 240.4 409.3 240.4 316.8 363.3 316.8 397.6 113.3 498.5 113.3 465.2 316.8 541.3 316.8 574.6 113.3 676.5 113.3 642.2 316.8 757.6 316.8 757.6 409.3 626.3 409.3 605.9 533.6 720.3 533.6 720.3 625 591.5 625 558.2 825.7 457.3 825.7 490.6 625 415 625 381.7 825.7ZM449.8 409.3L429.4 533.6 505 533.6 525.3 409.3 449.8 409.3Z", + "width": 1000 + }, + "search": [ + "integer" + ] + }, + { + "uid": "23359bf9000e958419520fc09f111a22", + "css": "float", + "code": 59476, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M381.7 825.7L279.7 825.7 313.1 625 202.7 625 202.7 533.6 327.9 533.6 347.8 409.3 240.4 409.3 240.4 316.8 363.3 316.8 397.6 113.3 498.5 113.3 465.2 316.8 541.3 316.8 574.6 113.3 676.5 113.3 642.2 316.8 757.6 316.8 757.6 409.3 626.3 409.3 605.9 533.6 720.3 533.6 720.3 625 591.5 625 558.2 825.7 457.3 825.7 490.6 625 415 625 381.7 825.7ZM449.8 409.3L429.4 533.6 505 533.6 525.3 409.3 449.8 409.3Z", + "width": 1000 + }, + "search": [ + "float" + ] + }, + { + "uid": "bbbebc5835cb7e7dd8cecdc59a4dad47", + "css": "ip", + "code": 59477, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M378.7 683.7L147.5 683.7 147.5 606.5 196.1 594.4 196.1 365.8 138.3 353.7 138.3 276.2 330.4 276.2 330.4 594.4 378.7 606.5 378.7 683.7ZM330.4 198.9L192.3 198.9 192.3 96.1 330.4 96.1 330.4 198.9ZM640.9 840.3L409.3 840.3 409.3 762.8 460.6 750.7 460.6 365.8 402.4 353.7 402.4 276.2 586.5 276.2 591.1 322.1C602.3 305.1 615.9 291.9 631.7 282.6 647.5 273.3 666.9 268.6 689.9 268.6 722.5 268.6 750.6 277.5 774.1 295.2 797.6 312.9 815.6 337.7 828.3 369.6 840.9 401.4 847.2 438.5 847.2 480.7L847.2 488.6C847.2 529.3 840.9 564.8 828.3 595.4 815.6 625.9 797.4 649.5 773.7 666.3 750 683.2 721.4 691.6 688 691.6 667.6 691.6 649.6 687.8 634.2 680.3 618.7 672.7 605.4 661.7 594.2 647.1L594.2 750.7 640.9 762.8 640.9 840.3ZM648.2 591C672.4 591 689.3 582 698.7 564.1 708.1 546.1 712.9 521 712.9 488.6L712.9 480.7C712.9 458.3 710.7 438.9 706.4 422.3 702 405.7 695.1 392.9 685.5 383.7 675.9 374.5 663.2 369.9 647.4 369.9 635.9 369.9 625.5 372.5 616.2 377.5 606.9 382.5 599.6 390 594.2 400.1L594.2 566.2C599.6 574.4 607 580.7 616.4 584.8 625.8 589 636.4 591 648.2 591Z", + "width": 1000 + }, + "search": [ + "ip" + ] + }, + { + "uid": "ffd1698833bf4ed2d4c04041051f336b", + "css": "string", + "code": 59474, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M659.6 835.5L339.5 835.5 339.5 736.9 413.8 721.5 413.8 266.2 303.8 266.2 299.4 341.6 169.9 341.6 169.9 135.4 831.2 135.4 831.2 341.6 700.2 341.6 696.2 266.2 585.3 266.2 585.3 721.5 659.6 736.9 659.6 835.5Z", + "width": 1000 + }, + "search": [ + "string" + ] + }, + { + "uid": "d91a2d9df5ed8188f0eb0eaeeebd675d", + "css": "more", + "code": 59478, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M970 500C970 759.6 759.6 970 500 970 240.4 970 30 759.6 30 500 30 240.4 240.4 30 500 30 759.6 30 970 240.4 970 500ZM680.1 623.6C641.2 623.6 609.6 655.1 609.6 694 609.6 732.9 641.2 764.5 680.1 764.5 719 764.5 750.5 732.9 750.5 694 750.5 655.1 719 623.6 680.1 623.6ZM308.5 621.5C269.6 621.5 238.1 653 238.1 692 238.1 730.9 269.6 762.4 308.5 762.4 347.4 762.4 378.9 730.9 378.9 692 378.9 653 347.4 621.5 308.5 621.5ZM493.6 621.9C454.7 621.9 423.1 653.4 423.1 692.3 423.1 731.2 454.7 762.7 493.6 762.7 532.5 762.7 564 731.2 564 692.3 564 653.4 532.5 621.9 493.6 621.9ZM751.5 694C751.5 713.7 743.4 731.7 730.6 744.5 717.7 757.4 699.7 765.5 680.1 765.5 660.4 765.5 642.4 757.4 629.5 744.5 616.7 731.7 608.6 713.7 608.6 694 608.6 674.4 616.7 656.4 629.5 643.5 642.4 630.6 660.4 622.6 680.1 622.6 699.7 622.6 717.7 630.6 730.6 643.5 743.4 656.4 751.5 674.4 751.5 694ZM729.2 644.9C716.5 632.3 699.3 624.6 680.1 624.6 660.8 624.6 643.6 632.3 631 644.9 618.3 657.5 610.6 674.8 610.6 694 610.6 713.3 618.3 730.5 631 743.1 643.6 755.7 660.8 763.5 680.1 763.5 699.3 763.5 716.5 755.7 729.2 743.1 741.8 730.5 749.5 713.3 749.5 694 749.5 674.8 741.8 657.5 729.2 644.9ZM379.9 692C379.9 711.6 371.9 729.6 359 742.5 346.1 755.3 328.1 763.4 308.5 763.4 288.8 763.4 270.9 755.3 258 742.5 245.1 729.6 237.1 711.6 237.1 692 237.1 672.3 245.1 654.3 258 641.4 270.9 628.6 288.8 620.5 308.5 620.5 328.1 620.5 346.1 628.6 359 641.4 371.9 654.3 379.9 672.3 379.9 692ZM357.6 642.9C345 630.2 327.7 622.5 308.5 622.5 289.2 622.5 272 630.2 259.4 642.9 246.8 655.5 239.1 672.7 239.1 692 239.1 711.2 246.8 728.4 259.4 741.1 272 753.7 289.2 761.4 308.5 761.4 327.7 761.4 345 753.7 357.6 741.1 370.2 728.4 377.9 711.2 377.9 692 377.9 672.7 370.2 655.5 357.6 642.9ZM565 692.3C565 712 557 729.9 544.1 742.8 531.2 755.7 513.2 763.7 493.6 763.7 473.9 763.7 455.9 755.7 443.1 742.8 430.2 729.9 422.1 712 422.1 692.3 422.1 672.6 430.2 654.7 443.1 641.8 455.9 628.9 473.9 620.9 493.6 620.9 513.2 620.9 531.2 628.9 544.1 641.8 557 654.7 565 672.6 565 692.3ZM542.7 643.2C530.1 630.6 512.8 622.9 493.6 622.9 474.3 622.9 457.1 630.6 444.5 643.2 431.9 655.8 424.1 673.1 424.1 692.3 424.1 711.6 431.9 728.8 444.5 741.4 457.1 754 474.3 761.7 493.6 761.7 512.8 761.7 530.1 754 542.7 741.4 555.3 728.8 563 711.6 563 692.3 563 673.1 555.3 655.8 542.7 643.2Z", + "width": 1000 + }, + "search": [ + "more" + ] + }, + { + "uid": "272e08e0e16226aadf94dcbf33aab2b2", + "css": "key", + "code": 59479, + "src": "elusive" + }, + { + "uid": "3256ef03b16e7ab51235bc7378b53bb5", + "css": "boolean", + "code": 61957, + "src": "fontawesome" + }, + { + "uid": "47a1f80457068fbeab69fdb83d7d0817", + "css": "youtube-play", + "code": 61802, + "src": "fontawesome" + }, + { + "uid": "097a1d40f8e785fbd260946461a6ea9c", + "css": "discord", + "code": 59463, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1092.8 89.1C1010.5 51.3 922.3 23.5 830 7.6 828.4 7.2 826.7 8 825.8 9.6 814.5 29.7 801.9 56.1 793.1 76.8 693.9 61.9 595.2 61.9 498 76.8 489.2 55.6 476.2 29.7 464.8 9.6 463.9 8.1 462.2 7.3 460.5 7.6 368.3 23.4 280.1 51.2 197.8 89.1 197.1 89.4 196.5 89.9 196 90.5 28.7 340.6-17.2 584.4 5.3 825.3 5.4 826.5 6.1 827.6 7 828.3 117.4 909.4 224.4 958.6 329.4 991.3 331 991.8 332.8 991.2 333.9 989.8 358.7 955.9 380.9 920.1 399.8 882.5 401 880.3 399.9 877.7 397.6 876.8 362.5 863.5 329.1 847.3 296.9 828.8 294.4 827.3 294.1 823.7 296.5 822 303.3 816.9 310 811.6 316.5 806.3 317.7 805.3 319.3 805.1 320.7 805.7 531.9 902.2 760.6 902.2 969.4 805.7 970.8 805.1 972.4 805.3 973.6 806.2 980.1 811.6 986.9 816.9 993.7 822 996 823.7 995.9 827.3 993.3 828.8 961.2 847.6 927.7 863.5 892.6 876.8 890.3 877.6 889.3 880.3 890.4 882.5 909.8 920.1 931.9 955.8 956.3 989.7 957.3 991.2 959.1 991.8 960.8 991.3 1066.3 958.6 1173.3 909.4 1283.7 828.3 1284.6 827.6 1285.2 826.5 1285.4 825.3 1312.3 546.9 1240.3 305 1094.5 90.6 1094.1 89.9 1093.5 89.4 1092.8 89.1ZM431.4 678.6C367.8 678.6 315.4 620.2 315.4 548.5 315.4 476.8 366.8 418.4 431.4 418.4 496.5 418.4 548.4 477.3 547.4 548.5 547.4 620.2 496 678.6 431.4 678.6ZM860.3 678.6C796.7 678.6 744.3 620.2 744.3 548.5 744.3 476.8 795.7 418.4 860.3 418.4 925.5 418.4 977.4 477.3 976.3 548.5 976.3 620.2 925.5 678.6 860.3 678.6Z", + "width": 1291 + }, + "search": [ + "discord-logo-color" + ] + }, + { + "uid": "00d86f3e46c3c3d768e7246eb0eadd7f", + "css": "discord", + "code": 59463, + "src": "custom_icons", + "selected": false, + "svg": { + "path": "M435 432.9C411.3 432.9 392.5 453.8 392.5 479.2S411.7 525.4 435 525.4C458.8 525.4 477.5 504.6 477.5 479.2 477.9 453.8 458.8 432.9 435 432.9ZM587.1 432.9C563.3 432.9 544.6 453.8 544.6 479.2S563.8 525.4 587.1 525.4C610.8 525.4 629.6 504.6 629.6 479.2S610.8 432.9 587.1 432.9ZM789.6 83.3H231.3C184.2 83.3 145.8 121.7 145.8 169.2V732.5C145.8 780 184.2 818.3 231.3 818.3H703.8L681.7 741.3 735 790.8 785.4 837.5 875 916.7V169.2C875 121.7 836.7 83.3 789.6 83.3ZM628.8 627.5S613.8 609.6 601.3 593.8C655.8 578.3 676.7 544.2 676.7 544.2 659.6 555.4 643.3 563.3 628.8 568.8 607.9 577.5 587.9 583.3 568.3 586.7 528.3 594.2 491.7 592.1 460.4 586.3 436.7 581.7 416.3 575 399.2 568.3 389.6 564.6 379.2 560 368.8 554.2 367.5 553.3 366.3 552.9 365 552.1 364.2 551.7 363.8 551.3 363.3 550.8 355.8 546.7 351.7 543.8 351.7 543.8S371.7 577.1 424.6 592.9C412.1 608.8 396.7 627.5 396.7 627.5 304.6 624.6 269.6 564.2 269.6 564.2 269.6 430 329.6 321.3 329.6 321.3 389.6 276.3 446.7 277.5 446.7 277.5L450.8 282.5C375.8 304.2 341.3 337.1 341.3 337.1S350.4 332.1 365.8 325C410.4 305.4 445.8 300 460.4 298.8 462.9 298.3 465 297.9 467.5 297.9 492.9 294.6 521.7 293.8 551.7 297.1 591.3 301.7 633.8 313.3 677.1 337.1 677.1 337.1 644.2 305.8 573.3 284.2L579.2 277.5S636.3 276.3 696.3 321.3C696.3 321.3 756.3 430 756.3 564.2 756.3 564.2 720.8 624.6 628.8 627.5Z", + "width": 1021 + }, + "search": [ + "discord-logo-black" + ] } ] } \ No newline at end of file diff --git a/public/styles/icons.less b/public/styles/icons.less index 1484ba8fc1..fbd1a5e9d6 100644 --- a/public/styles/icons.less +++ b/public/styles/icons.less @@ -1,7 +1,7 @@ @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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aQBuAGEAbAAgAGEAdQB0AGgAbwByAHMAIABAACAAZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AZgBvAG4AdABlAGwAbABvAFIAZQBnAHUAbABhAHIAZgBvAG4AdABlAGwAbABvAGYAbwBuAHQAZQBsAGwAbwBWAGUAcgBzAGkAbwBuACAAMQAuADAAZgBvAG4AdABlAGwAbABvAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAACAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHkBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwF4AXkBegAEdXNlcgZmb2xkZXIEbGlzdAVsb2dpbgNjb2cHdHdpdHRlcgthcnRpY2xlLWFsdAZjYW5jZWwEaG9tZQhkb3duLWRpcghmYWNlYm9vawhhc3RlcmlzawZ1cGxvYWQJc3RvcHdhdGNoBmV4cG9ydAVoZWFydARwbHVzBnVwLWRpcgRtZW51CWxlZnQtb3BlbgpyaWdodC1vcGVuBWluYm94BndyZW5jaAdjb21tZW50DXN0YWNrb3ZlcmZsb3cIcXVlc3Rpb24Kb2stY2lyY2xlZAd3YXJuaW5nBG1haWwEbGluawdrZXktaW52BXRyYXNoCGRvd25sb2FkB2dsYXNzZXMGcXJjb2RlB3NodWZmbGUDZXllBGxvY2sGc2VhcmNoBGJlbGwFdXNlcnMIbG9jYXRpb24JYnJpZWZjYXNlCWluc3RhZ3JhbQVjbG9jawVwaG9uZQhjYWxlbmRhcgVwcmludARlZGl0BGJvbGQGaXRhbGljBnJvY2tldAh3aGF0c2FwcAVkb3QtMwxpbmZvLWNpcmNsZWQIdmlkZW9jYW0LcXVvdGUtcmlnaHQHcGljdHVyZQdwYWxldHRlBGxhbXAJYm9vay1vcGVuAm9rCGNoYXQtYWx0B2FyY2hpdmUEcGxheQVwYXVzZQlkb3duLW9wZW4HdXAtb3BlbgVtaW51cwhleGNoYW5nZQduZXR3b3JrB2Rpc2NvcmQIbW9vbi1pbnYHc3VuLWludg5jYW5jZWwtY2lyY2xlZAlsaWdodG5pbmcDZGV2CXJpZ2h0LWRpcghsZWZ0LWRpcgRmaXJlCmhhY2tlcm5ld3MGcmVkZGl0BnN0cmluZwdpbnRlZ2VyAmlwBG1vcmUDa2V5CGxpbmstZXh0DmdpdGh1Yi1jaXJjbGVkBmZpbHRlcgRkb2NzC2xpc3QtYnVsbGV0DWxpc3QtbnVtYmVyZWQJdW5kZXJsaW5lBHNvcnQIbGlua2VkaW4Fc21pbGUIa2V5Ym9hcmQEY29kZQZzaGllbGQSYW5nbGUtY2lyY2xlZC1sZWZ0E2FuZ2xlLWNpcmNsZWQtcmlnaHQMeW91dHViZS1wbGF5CWJpdGJ1Y2tldAd3aW5kb3dzC2RvdC1jaXJjbGVkCndoZWVsY2hhaXIEYmFuawZnb29nbGUPYnVpbGRpbmctZmlsbGVkCGRhdGFiYXNlCGxpZmVidW95BmhlYWRlcgpiaW5vY3VsYXJzCmNoYXJ0LWFyZWEHYm9vbGVhbglwaW50ZXJlc3QGbWVkaXVtBmdpdGxhYgh0ZWxlZ3JhbQAAAAEAAf//AA8AAAAAAAAAAAAAAAAAAAAAsAAsILAAVVhFWSAgS7gADlFLsAZTWliwNBuwKFlgZiCKVViwAiVhuQgACABjYyNiGyEhsABZsABDI0SyAAEAQ2BCLbABLLAgYGYtsAIsIyEjIS2wAywgZLMDFBUAQkOwE0MgYGBCsQIUQ0KxJQNDsAJDVHggsAwjsAJDQ2FksARQeLICAgJDYEKwIWUcIbACQ0OyDhUBQhwgsAJDI0KyEwETQ2BCI7AAUFhlWbIWAQJDYEItsAQssAMrsBVDWCMhIyGwFkNDI7AAUFhlWRsgZCCwwFCwBCZasigBDUNFY0WwBkVYIbADJVlSW1ghIyEb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') format('truetype'); + src: url('data:application/octet-stream;base64,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') format('woff'), + url('data:application/octet-stream;base64,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MQAuADAAZgBvAG4AdABlAGwAbABvAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAACAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHkBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwF4AXkBegAEdXNlcgZmb2xkZXIEbGlzdAVsb2dpbgNjb2cHdHdpdHRlcgthcnRpY2xlLWFsdAZjYW5jZWwEaG9tZQhkb3duLWRpcghmYWNlYm9vawhhc3RlcmlzawZ1cGxvYWQJc3RvcHdhdGNoBmV4cG9ydAVoZWFydARwbHVzBnVwLWRpcgRtZW51CWxlZnQtb3BlbgpyaWdodC1vcGVuBWluYm94BndyZW5jaAdjb21tZW50DXN0YWNrb3ZlcmZsb3cIcXVlc3Rpb24Kb2stY2lyY2xlZAd3YXJuaW5nBG1haWwEbGluawdrZXktaW52BXRyYXNoCGRvd25sb2FkB2dsYXNzZXMGcXJjb2RlB3NodWZmbGUDZXllBGxvY2sGc2VhcmNoBGJlbGwFdXNlcnMIbG9jYXRpb24JYnJpZWZjYXNlCWluc3RhZ3JhbQVjbG9jawVwaG9uZQhjYWxlbmRhcgVwcmludARlZGl0BGJvbGQGaXRhbGljBnJvY2tldAh3aGF0c2FwcAVkb3QtMwxpbmZvLWNpcmNsZWQIdmlkZW9jYW0LcXVvdGUtcmlnaHQHcGljdHVyZQdwYWxldHRlBGxhbXAJYm9vay1vcGVuAm9rCGNoYXQtYWx0B2FyY2hpdmUEcGxheQVwYXVzZQlkb3duLW9wZW4HdXAtb3BlbgVtaW51cwhleGNoYW5nZQduZXR3b3JrB2Rpc2NvcmQIbW9vbi1pbnYHc3VuLWludg5jYW5jZWwtY2lyY2xlZAlsaWdodG5pbmcDZGV2CXJpZ2h0LWRpcghsZWZ0LWRpcgRmaXJlCmhhY2tlcm5ld3MGcmVkZGl0BnN0cmluZwdpbnRlZ2VyAmlwBG1vcmUDa2V5CGxpbmstZXh0DmdpdGh1Yi1jaXJjbGVkBmZpbHRlcgRkb2NzC2xpc3QtYnVsbGV0DWxpc3QtbnVtYmVyZWQJdW5kZXJsaW5lBHNvcnQIbGlua2VkaW4Fc21pbGUIa2V5Ym9hcmQEY29kZQZzaGllbGQSYW5nbGUtY2lyY2xlZC1sZWZ0E2FuZ2xlLWNpcmNsZWQtcmlnaHQMeW91dHViZS1wbGF5CWJpdGJ1Y2tldAd3aW5kb3dzC2RvdC1jaXJjbGVkCndoZWVsY2hhaXIEYmFuawZnb29nbGUPYnVpbGRpbmctZmlsbGVkCGRhdGFiYXNlCGxpZmVidW95BmhlYWRlcgpiaW5vY3VsYXJzCmNoYXJ0LWFyZWEHYm9vbGVhbglwaW50ZXJlc3QGbWVkaXVtBmdpdGxhYgh0ZWxlZ3JhbQAAAAEAAf//AA8AAAAAAAAAAAAAAAAAAAAAsAAsILAAVVhFWSAgS7gADlFLsAZTWliwNBuwKFlgZiCKVViwAiVhuQgACABjYyNiGyEhsABZsABDI0SyAAEAQ2BCLbABLLAgYGYtsAIsIyEjIS2wAywgZLMDFBUAQkOwE0MgYGBCsQIUQ0KxJQNDsAJDVHggsAwjsAJDQ2FksARQeLICAgJDYEKwIWUcIbACQ0OyDhUBQhwgsAJDI0KyEwETQ2BCI7AAUFhlWbIWAQJDYEItsAQssAMrsBVDWCMhIyGwFkNDI7AAUFhlWRsgZCCwwFCwBCZasigBDUNFY0WwBkVYIbADJVlSW1ghIyEbilggsFBQWCGwQFkbILA4UFghsDhZWSCxAQ1DRWNFYWSwKFBYIbEBDUNFY0UgsDBQWCGwMFkbILDAUFggZiCKimEgsApQWGAbILAgUFghsApgGyCwNlBYIbA2YBtgWVlZG7ACJbAMQ2OwAFJYsABLsApQWCGwDEMbS7AeUFghsB5LYbgQ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') format('truetype'); } /* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ /* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ @@ -9,7 +9,7 @@ @media screen and (-webkit-min-device-pixel-ratio:0) { @font-face { font-family: 'fontello'; - src: url('../font/fontello.svg?4742076#fontello') format('svg'); + src: url('../font/fontello.svg?70085415#fontello') format('svg'); } } */ From d606b25ec9e944bbe6b44b8d91ad79598d9bfafd Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Fri, 17 Dec 2021 09:33:27 +0200 Subject: [PATCH 099/107] Updated less build --- public/dist/styles/default-ltr.css | 2 +- public/dist/styles/default-rtl.css | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/public/dist/styles/default-ltr.css b/public/dist/styles/default-ltr.css index c3d77bd0e7..ab82ead83e 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-primary:#f02e65;--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-dark:#6e6e6e;--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-color-chart:#29b5d9;--config-color-chart-fade:#d4f0f7;--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-swift:#f2624c;--config-language-swift-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-primary:#f02e65;--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-dark:#81859b;--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-color-chart:#29b5d9;--config-color-chart-fade:#c7d8eb;--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-swift:var(--config-color-normal);--config-language-swift-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-smaller{font-size:11.5px}.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-fade-dark{color:var(--config-color-fade-dark)}.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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aQBuAGEAbAAgAGEAdQB0AGgAbwByAHMAIABAACAAZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AZgBvAG4AdABlAGwAbABvAFIAZQBnAHUAbABhAHIAZgBvAG4AdABlAGwAbABvAGYAbwBuAHQAZQBsAGwAbwBWAGUAcgBzAGkAbwBuACAAMQAuADAAZgBvAG4AdABlAGwAbABvAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAACAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHkBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwF4AXkBegAEdXNlcgZmb2xkZXIEbGlzdAVsb2dpbgNjb2cHdHdpdHRlcgthcnRpY2xlLWFsdAZjYW5jZWwEaG9tZQhkb3duLWRpcghmYWNlYm9vawhhc3RlcmlzawZ1cGxvYWQJc3RvcHdhdGNoBmV4cG9ydAVoZWFydARwbHVzBnVwLWRpcgRtZW51CWxlZnQtb3BlbgpyaWdodC1vcGVuBWluYm94BndyZW5jaAdjb21tZW50DXN0YWNrb3ZlcmZsb3cIcXVlc3Rpb24Kb2stY2lyY2xlZAd3YXJuaW5nBG1haWwEbGluawdrZXktaW52BXRyYXNoCGRvd25sb2FkB2dsYXNzZXMGcXJjb2RlB3NodWZmbGUDZXllBGxvY2sGc2VhcmNoBGJlbGwFdXNlcnMIbG9jYXRpb24JYnJpZWZjYXNlCWluc3RhZ3JhbQVjbG9jawVwaG9uZQhjYWxlbmRhcgVwcmludARlZGl0BGJvbGQGaXRhbGljBnJvY2tldAh3aGF0c2FwcAVkb3QtMwxpbmZvLWNpcmNsZWQIdmlkZW9jYW0LcXVvdGUtcmlnaHQHcGljdHVyZQdwYWxldHRlBGxhbXAJYm9vay1vcGVuAm9rCGNoYXQtYWx0B2FyY2hpdmUEcGxheQVwYXVzZQlkb3duLW9wZW4HdXAtb3BlbgVtaW51cwhleGNoYW5nZQduZXR3b3JrB2Rpc2NvcmQIbW9vbi1pbnYHc3VuLWludg5jYW5jZWwtY2lyY2xlZAlsaWdodG5pbmcDZGV2CXJpZ2h0LWRpcghsZWZ0LWRpcgRmaXJlCmhhY2tlcm5ld3MGcmVkZGl0BnN0cmluZwdpbnRlZ2VyAmlwBG1vcmUDa2V5CGxpbmstZXh0DmdpdGh1Yi1jaXJjbGVkBmZpbHRlcgRkb2NzC2xpc3QtYnVsbGV0DWxpc3QtbnVtYmVyZWQJdW5kZXJsaW5lBHNvcnQIbGlua2VkaW4Fc21pbGUIa2V5Ym9hcmQEY29kZQZzaGllbGQSYW5nbGUtY2lyY2xlZC1sZWZ0E2FuZ2xlLWNpcmNsZWQtcmlnaHQMeW91dHViZS1wbGF5CWJpdGJ1Y2tldAd3aW5kb3dzC2RvdC1jaXJjbGVkCndoZWVsY2hhaXIEYmFuawZnb29nbGUPYnVpbGRpbmctZmlsbGVkCGRhdGFiYXNlCGxpZmVidW95BmhlYWRlcgpiaW5vY3VsYXJzCmNoYXJ0LWFyZWEHYm9vbGVhbglwaW50ZXJlc3QGbWVkaXVtBmdpdGxhYgh0ZWxlZ3JhbQAAAAEAAf//AA8AAAAAAAAAAAAAAAAAAAAAsAAsILAAVVhFWSAgS7gADlFLsAZTWliwNBuwKFlgZiCKVViwAiVhuQgACABjYyNiGyEhsABZsABDI0SyAAEAQ2BCLbABLLAgYGYtsAIsIyEjIS2wAywgZLMDFBUAQkOwE0MgYGBCsQIUQ0KxJQNDsAJDVHggsAwjsAJDQ2FksARQeLICAgJDYEKwIWUcIbACQ0OyDhUBQhwgsAJDI0KyEwETQ2BCI7AAUFhlWbIWAQJDYEItsAQssAMrsBVDWCMhIyGwFkNDI7AAUFhlWRsgZCCwwFCwBCZasigBDUNFY0WwBkVYIbADJVlSW1ghIyEb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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;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.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-hackernews:before{content:'\e850'}.icon-reddit:before{content:'\e851'}.icon-string:before{content:'\e852'}.icon-integer:before{content:'\e853'}.icon-float:before{content:'\e854'}.icon-ip:before{content:'\e855'}.icon-more:before{content:'\e856'}.icon-key:before{content:'\e857'}.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-youtube-play:before{content:'\f16a'}.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-boolean:before{content:'\f205'}.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;object-fit:contain}.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:calc(100% + 6px);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:100%;content:"";position:absolute;z-index:99;left:3px}.tooltip.down:hover:after{top:calc(100% + 6px);bottom:inherit}.tooltip.down:hover:before{top:100%;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;border-bottom:none;box-shadow:0 0 3px rgba(0,0,0,.05);display:block;padding:30px;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}.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}.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:visible;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 .dashboard .chart-bar{height:4rem;width:auto;display:flex;align-items:flex-end}@media only screen and (min-width:1199px){.console .dashboard .chart-bar{padding-right:15px}}.console .dashboard .chart-bar .bar{width:12.5%;background-color:var(--config-color-chart-fade);margin:0 2px;border-top:2px solid var(--config-color-chart)}.console .dashboard .chart-bar .bar:hover{background-color:var(--config-color-chart)}.console .dashboard .chart-bar .bar.bar-100{height:100%}.console .dashboard .chart-bar .bar.bar-90{height:90%}.console .dashboard .chart-bar .bar.bar-80{height:80%}.console .dashboard .chart-bar .bar.bar-70{height:70%}.console .dashboard .chart-bar .bar.bar-60{height:60%}.console .dashboard .chart-bar .bar.bar-50{height:50%}.console .dashboard .chart-bar .bar.bar-40{height:40%}.console .dashboard .chart-bar .bar.bar-30{height:30%}.console .dashboard .chart-bar .bar.bar-20{height:20%}.console .dashboard .chart-bar .bar.bar-10{height:10%}.console .dashboard .chart-bar .bar.bar-0{height:0%}.console .dashboard .chart-bar .bar.bar-0{border-top:1px solid var(--config-color-chart)}.console .dashboard .chart-bar .bar.bar-5{height:5%}.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:var(--config-color-chart)}.console .chart-notes li.blue::before,.console .chart-notes li:nth-child(1)::before{background:var(--config-color-chart)}.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;border-bottom:none;box-shadow:0 0 3px rgba(0,0,0,.05);display:block;padding:30px}.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}}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-primary:#f02e65;--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-dark:#6e6e6e;--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-color-chart:#29b5d9;--config-color-chart-fade:#d4f0f7;--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-swift:#f2624c;--config-language-swift-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-primary:#f02e65;--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-dark:#81859b;--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-color-chart:#29b5d9;--config-color-chart-fade:#c7d8eb;--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-swift:var(--config-color-normal);--config-language-swift-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-smaller{font-size:11.5px}.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-fade-dark{color:var(--config-color-fade-dark)}.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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MQAuADAAZgBvAG4AdABlAGwAbABvAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAACAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHkBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwF4AXkBegAEdXNlcgZmb2xkZXIEbGlzdAVsb2dpbgNjb2cHdHdpdHRlcgthcnRpY2xlLWFsdAZjYW5jZWwEaG9tZQhkb3duLWRpcghmYWNlYm9vawhhc3RlcmlzawZ1cGxvYWQJc3RvcHdhdGNoBmV4cG9ydAVoZWFydARwbHVzBnVwLWRpcgRtZW51CWxlZnQtb3BlbgpyaWdodC1vcGVuBWluYm94BndyZW5jaAdjb21tZW50DXN0YWNrb3ZlcmZsb3cIcXVlc3Rpb24Kb2stY2lyY2xlZAd3YXJuaW5nBG1haWwEbGluawdrZXktaW52BXRyYXNoCGRvd25sb2FkB2dsYXNzZXMGcXJjb2RlB3NodWZmbGUDZXllBGxvY2sGc2VhcmNoBGJlbGwFdXNlcnMIbG9jYXRpb24JYnJpZWZjYXNlCWluc3RhZ3JhbQVjbG9jawVwaG9uZQhjYWxlbmRhcgVwcmludARlZGl0BGJvbGQGaXRhbGljBnJvY2tldAh3aGF0c2FwcAVkb3QtMwxpbmZvLWNpcmNsZWQIdmlkZW9jYW0LcXVvdGUtcmlnaHQHcGljdHVyZQdwYWxldHRlBGxhbXAJYm9vay1vcGVuAm9rCGNoYXQtYWx0B2FyY2hpdmUEcGxheQVwYXVzZQlkb3duLW9wZW4HdXAtb3BlbgVtaW51cwhleGNoYW5nZQduZXR3b3JrB2Rpc2NvcmQIbW9vbi1pbnYHc3VuLWludg5jYW5jZWwtY2lyY2xlZAlsaWdodG5pbmcDZGV2CXJpZ2h0LWRpcghsZWZ0LWRpcgRmaXJlCmhhY2tlcm5ld3MGcmVkZGl0BnN0cmluZwdpbnRlZ2VyAmlwBG1vcmUDa2V5CGxpbmstZXh0DmdpdGh1Yi1jaXJjbGVkBmZpbHRlcgRkb2NzC2xpc3QtYnVsbGV0DWxpc3QtbnVtYmVyZWQJdW5kZXJsaW5lBHNvcnQIbGlua2VkaW4Fc21pbGUIa2V5Ym9hcmQEY29kZQZzaGllbGQSYW5nbGUtY2lyY2xlZC1sZWZ0E2FuZ2xlLWNpcmNsZWQtcmlnaHQMeW91dHViZS1wbGF5CWJpdGJ1Y2tldAd3aW5kb3dzC2RvdC1jaXJjbGVkCndoZWVsY2hhaXIEYmFuawZnb29nbGUPYnVpbGRpbmctZmlsbGVkCGRhdGFiYXNlCGxpZmVidW95BmhlYWRlcgpiaW5vY3VsYXJzCmNoYXJ0LWFyZWEHYm9vbGVhbglwaW50ZXJlc3QGbWVkaXVtBmdpdGxhYgh0ZWxlZ3JhbQAAAAEAAf//AA8AAAAAAAAAAAAAAAAAAAAAsAAsILAAVVhFWSAgS7gADlFLsAZTWliwNBuwKFlgZiCKVViwAiVhuQgACABjYyNiGyEhsABZsABDI0SyAAEAQ2BCLbABLLAgYGYtsAIsIyEjIS2wAywgZLMDFBUAQkOwE0MgYGBCsQIUQ0KxJQNDsAJDVHggsAwjsAJDQ2FksARQeLICAgJDYEKwIWUcIbACQ0OyDhUBQhwgsAJDI0KyEwETQ2BCI7AAUFhlWbIWAQJDYEItsAQssAMrsBVDWCMhIyGwFkNDI7AAUFhlWRsgZCCwwFCwBCZasigBDUNFY0WwBkVYIbADJVlSW1ghIyEbilggsFBQWCGwQFkbILA4UFghsDhZWSCxAQ1DRWNFYWSwKFBYIbEBDUNFY0UgsDBQWCGwMFkbILDAUFggZiCKimEgsApQWGAbILAgUFghsApgGyCwNlBYIbA2YBtgWVlZG7ACJbAMQ2OwAFJYsABLsApQWCGwDEMbS7AeUFghsB5LYbgQ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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;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.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-hackernews:before{content:'\e850'}.icon-reddit:before{content:'\e851'}.icon-string:before{content:'\e852'}.icon-integer:before{content:'\e853'}.icon-float:before{content:'\e854'}.icon-ip:before{content:'\e855'}.icon-more:before{content:'\e856'}.icon-key:before{content:'\e857'}.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-youtube-play:before{content:'\f16a'}.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-boolean:before{content:'\f205'}.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;object-fit:contain}.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:calc(100% + 6px);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:100%;content:"";position:absolute;z-index:99;left:3px}.tooltip.down:hover:after{top:calc(100% + 6px);bottom:inherit}.tooltip.down:hover:before{top:100%;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;border-bottom:none;box-shadow:0 0 3px rgba(0,0,0,.05);display:block;padding:30px;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}.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}.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:visible;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 .dashboard .chart-bar{height:4rem;width:auto;display:flex;align-items:flex-end}@media only screen and (min-width:1199px){.console .dashboard .chart-bar{padding-right:15px}}.console .dashboard .chart-bar .bar{width:12.5%;background-color:var(--config-color-chart-fade);margin:0 2px;border-top:2px solid var(--config-color-chart)}.console .dashboard .chart-bar .bar:hover{background-color:var(--config-color-chart)}.console .dashboard .chart-bar .bar.bar-100{height:100%}.console .dashboard .chart-bar .bar.bar-90{height:90%}.console .dashboard .chart-bar .bar.bar-80{height:80%}.console .dashboard .chart-bar .bar.bar-70{height:70%}.console .dashboard .chart-bar .bar.bar-60{height:60%}.console .dashboard .chart-bar .bar.bar-50{height:50%}.console .dashboard .chart-bar .bar.bar-40{height:40%}.console .dashboard .chart-bar .bar.bar-30{height:30%}.console .dashboard .chart-bar .bar.bar-20{height:20%}.console .dashboard .chart-bar .bar.bar-10{height:10%}.console .dashboard .chart-bar .bar.bar-0{height:0%}.console .dashboard .chart-bar .bar.bar-0{border-top:1px solid var(--config-color-chart)}.console .dashboard .chart-bar .bar.bar-5{height:5%}.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:var(--config-color-chart)}.console .chart-notes li.blue::before,.console .chart-notes li:nth-child(1)::before{background:var(--config-color-chart)}.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;border-bottom:none;box-shadow:0 0 3px rgba(0,0,0,.05);display:block;padding:30px}.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}}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 037186883a..1f989d536c 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-primary:#f02e65;--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-dark:#6e6e6e;--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-color-chart:#29b5d9;--config-color-chart-fade:#d4f0f7;--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-swift:#f2624c;--config-language-swift-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-primary:#f02e65;--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-dark:#81859b;--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-color-chart:#29b5d9;--config-color-chart-fade:#c7d8eb;--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-swift:var(--config-color-normal);--config-language-swift-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-smaller{font-size:11.5px}.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-fade-dark{color:var(--config-color-fade-dark)}.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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aQBuAGEAbAAgAGEAdQB0AGgAbwByAHMAIABAACAAZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AZgBvAG4AdABlAGwAbABvAFIAZQBnAHUAbABhAHIAZgBvAG4AdABlAGwAbABvAGYAbwBuAHQAZQBsAGwAbwBWAGUAcgBzAGkAbwBuACAAMQAuADAAZgBvAG4AdABlAGwAbABvAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAACAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHkBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwF4AXkBegAEdXNlcgZmb2xkZXIEbGlzdAVsb2dpbgNjb2cHdHdpdHRlcgthcnRpY2xlLWFsdAZjYW5jZWwEaG9tZQhkb3duLWRpcghmYWNlYm9vawhhc3RlcmlzawZ1cGxvYWQJc3RvcHdhdGNoBmV4cG9ydAVoZWFydARwbHVzBnVwLWRpcgRtZW51CWxlZnQtb3BlbgpyaWdodC1vcGVuBWluYm94BndyZW5jaAdjb21tZW50DXN0YWNrb3ZlcmZsb3cIcXVlc3Rpb24Kb2stY2lyY2xlZAd3YXJuaW5nBG1haWwEbGluawdrZXktaW52BXRyYXNoCGRvd25sb2FkB2dsYXNzZXMGcXJjb2RlB3NodWZmbGUDZXllBGxvY2sGc2VhcmNoBGJlbGwFdXNlcnMIbG9jYXRpb24JYnJpZWZjYXNlCWluc3RhZ3JhbQVjbG9jawVwaG9uZQhjYWxlbmRhcgVwcmludARlZGl0BGJvbGQGaXRhbGljBnJvY2tldAh3aGF0c2FwcAVkb3QtMwxpbmZvLWNpcmNsZWQIdmlkZW9jYW0LcXVvdGUtcmlnaHQHcGljdHVyZQdwYWxldHRlBGxhbXAJYm9vay1vcGVuAm9rCGNoYXQtYWx0B2FyY2hpdmUEcGxheQVwYXVzZQlkb3duLW9wZW4HdXAtb3BlbgVtaW51cwhleGNoYW5nZQduZXR3b3JrB2Rpc2NvcmQIbW9vbi1pbnYHc3VuLWludg5jYW5jZWwtY2lyY2xlZAlsaWdodG5pbmcDZGV2CXJpZ2h0LWRpcghsZWZ0LWRpcgRmaXJlCmhhY2tlcm5ld3MGcmVkZGl0BnN0cmluZwdpbnRlZ2VyAmlwBG1vcmUDa2V5CGxpbmstZXh0DmdpdGh1Yi1jaXJjbGVkBmZpbHRlcgRkb2NzC2xpc3QtYnVsbGV0DWxpc3QtbnVtYmVyZWQJdW5kZXJsaW5lBHNvcnQIbGlua2VkaW4Fc21pbGUIa2V5Ym9hcmQEY29kZQZzaGllbGQSYW5nbGUtY2lyY2xlZC1sZWZ0E2FuZ2xlLWNpcmNsZWQtcmlnaHQMeW91dHViZS1wbGF5CWJpdGJ1Y2tldAd3aW5kb3dzC2RvdC1jaXJjbGVkCndoZWVsY2hhaXIEYmFuawZnb29nbGUPYnVpbGRpbmctZmlsbGVkCGRhdGFiYXNlCGxpZmVidW95BmhlYWRlcgpiaW5vY3VsYXJzCmNoYXJ0LWFyZWEHYm9vbGVhbglwaW50ZXJlc3QGbWVkaXVtBmdpdGxhYgh0ZWxlZ3JhbQAAAAEAAf//AA8AAAAAAAAAAAAAAAAAAAAAsAAsILAAVVhFWSAgS7gADlFLsAZTWliwNBuwKFlgZiCKVViwAiVhuQgACABjYyNiGyEhsABZsABDI0SyAAEAQ2BCLbABLLAgYGYtsAIsIyEjIS2wAywgZLMDFBUAQkOwE0MgYGBCsQIUQ0KxJQNDsAJDVHggsAwjsAJDQ2FksARQeLICAgJDYEKwIWUcIbACQ0OyDhUBQhwgsAJDI0KyEwETQ2BCI7AAUFhlWbIWAQJDYEItsAQssAMrsBVDWCMhIyGwFkNDI7AAUFhlWRsgZCCwwFCwBCZasigBDUNFY0WwBkVYIbADJVlSW1ghIyEb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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;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.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-hackernews:before{content:'\e850'}.icon-reddit:before{content:'\e851'}.icon-string:before{content:'\e852'}.icon-integer:before{content:'\e853'}.icon-float:before{content:'\e854'}.icon-ip:before{content:'\e855'}.icon-more:before{content:'\e856'}.icon-key:before{content:'\e857'}.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-youtube-play:before{content:'\f16a'}.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-boolean:before{content:'\f205'}.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;object-fit:contain}.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:calc(100% + 6px);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:100%;content:"";position:absolute;z-index:99;right:3px}.tooltip.down:hover:after{top:calc(100% + 6px);bottom:inherit}.tooltip.down:hover:before{top:100%;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;border-bottom:none;box-shadow:0 0 3px rgba(0,0,0,.05);display:block;padding:30px;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}.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}.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:visible;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 .dashboard .chart-bar{height:4rem;width:auto;display:flex;align-items:flex-end}@media only screen and (min-width:1199px){.console .dashboard .chart-bar{padding-right:15px}}.console .dashboard .chart-bar .bar{width:12.5%;background-color:var(--config-color-chart-fade);margin:0 2px;border-top:2px solid var(--config-color-chart)}.console .dashboard .chart-bar .bar:hover{background-color:var(--config-color-chart)}.console .dashboard .chart-bar .bar.bar-100{height:100%}.console .dashboard .chart-bar .bar.bar-90{height:90%}.console .dashboard .chart-bar .bar.bar-80{height:80%}.console .dashboard .chart-bar .bar.bar-70{height:70%}.console .dashboard .chart-bar .bar.bar-60{height:60%}.console .dashboard .chart-bar .bar.bar-50{height:50%}.console .dashboard .chart-bar .bar.bar-40{height:40%}.console .dashboard .chart-bar .bar.bar-30{height:30%}.console .dashboard .chart-bar .bar.bar-20{height:20%}.console .dashboard .chart-bar .bar.bar-10{height:10%}.console .dashboard .chart-bar .bar.bar-0{height:0%}.console .dashboard .chart-bar .bar.bar-0{border-top:1px solid var(--config-color-chart)}.console .dashboard .chart-bar .bar.bar-5{height:5%}.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:var(--config-color-chart)}.console .chart-notes li.blue::before,.console .chart-notes li:nth-child(1)::before{background:var(--config-color-chart)}.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;border-bottom:none;box-shadow:0 0 3px rgba(0,0,0,.05);display:block;padding:30px}.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}}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-primary:#f02e65;--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-dark:#6e6e6e;--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-color-chart:#29b5d9;--config-color-chart-fade:#d4f0f7;--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-swift:#f2624c;--config-language-swift-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-primary:#f02e65;--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-dark:#81859b;--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-color-chart:#29b5d9;--config-color-chart-fade:#c7d8eb;--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-swift:var(--config-color-normal);--config-language-swift-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-smaller{font-size:11.5px}.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-fade-dark{color:var(--config-color-fade-dark)}.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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MQAuADAAZgBvAG4AdABlAGwAbABvAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAACAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHkBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwF4AXkBegAEdXNlcgZmb2xkZXIEbGlzdAVsb2dpbgNjb2cHdHdpdHRlcgthcnRpY2xlLWFsdAZjYW5jZWwEaG9tZQhkb3duLWRpcghmYWNlYm9vawhhc3RlcmlzawZ1cGxvYWQJc3RvcHdhdGNoBmV4cG9ydAVoZWFydARwbHVzBnVwLWRpcgRtZW51CWxlZnQtb3BlbgpyaWdodC1vcGVuBWluYm94BndyZW5jaAdjb21tZW50DXN0YWNrb3ZlcmZsb3cIcXVlc3Rpb24Kb2stY2lyY2xlZAd3YXJuaW5nBG1haWwEbGluawdrZXktaW52BXRyYXNoCGRvd25sb2FkB2dsYXNzZXMGcXJjb2RlB3NodWZmbGUDZXllBGxvY2sGc2VhcmNoBGJlbGwFdXNlcnMIbG9jYXRpb24JYnJpZWZjYXNlCWluc3RhZ3JhbQVjbG9jawVwaG9uZQhjYWxlbmRhcgVwcmludARlZGl0BGJvbGQGaXRhbGljBnJvY2tldAh3aGF0c2FwcAVkb3QtMwxpbmZvLWNpcmNsZWQIdmlkZW9jYW0LcXVvdGUtcmlnaHQHcGljdHVyZQdwYWxldHRlBGxhbXAJYm9vay1vcGVuAm9rCGNoYXQtYWx0B2FyY2hpdmUEcGxheQVwYXVzZQlkb3duLW9wZW4HdXAtb3BlbgVtaW51cwhleGNoYW5nZQduZXR3b3JrB2Rpc2NvcmQIbW9vbi1pbnYHc3VuLWludg5jYW5jZWwtY2lyY2xlZAlsaWdodG5pbmcDZGV2CXJpZ2h0LWRpcghsZWZ0LWRpcgRmaXJlCmhhY2tlcm5ld3MGcmVkZGl0BnN0cmluZwdpbnRlZ2VyAmlwBG1vcmUDa2V5CGxpbmstZXh0DmdpdGh1Yi1jaXJjbGVkBmZpbHRlcgRkb2NzC2xpc3QtYnVsbGV0DWxpc3QtbnVtYmVyZWQJdW5kZXJsaW5lBHNvcnQIbGlua2VkaW4Fc21pbGUIa2V5Ym9hcmQEY29kZQZzaGllbGQSYW5nbGUtY2lyY2xlZC1sZWZ0E2FuZ2xlLWNpcmNsZWQtcmlnaHQMeW91dHViZS1wbGF5CWJpdGJ1Y2tldAd3aW5kb3dzC2RvdC1jaXJjbGVkCndoZWVsY2hhaXIEYmFuawZnb29nbGUPYnVpbGRpbmctZmlsbGVkCGRhdGFiYXNlCGxpZmVidW95BmhlYWRlcgpiaW5vY3VsYXJzCmNoYXJ0LWFyZWEHYm9vbGVhbglwaW50ZXJlc3QGbWVkaXVtBmdpdGxhYgh0ZWxlZ3JhbQAAAAEAAf//AA8AAAAAAAAAAAAAAAAAAAAAsAAsILAAVVhFWSAgS7gADlFLsAZTWliwNBuwKFlgZiCKVViwAiVhuQgACABjYyNiGyEhsABZsABDI0SyAAEAQ2BCLbABLLAgYGYtsAIsIyEjIS2wAywgZLMDFBUAQkOwE0MgYGBCsQIUQ0KxJQNDsAJDVHggsAwjsAJDQ2FksARQeLICAgJDYEKwIWUcIbACQ0OyDhUBQhwgsAJDI0KyEwETQ2BCI7AAUFhlWbIWAQJDYEItsAQssAMrsBVDWCMhIyGwFkNDI7AAUFhlWRsgZCCwwFCwBCZasigBDUNFY0WwBkVYIbADJVlSW1ghIyEbilggsFBQWCGwQFkbILA4UFghsDhZWSCxAQ1DRWNFYWSwKFBYIbEBDUNFY0UgsDBQWCGwMFkbILDAUFggZiCKimEgsApQWGAbILAgUFghsApgGyCwNlBYIbA2YBtgWVlZG7ACJbAMQ2OwAFJYsABLsApQWCGwDEMbS7AeUFghsB5LYbgQ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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;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.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-hackernews:before{content:'\e850'}.icon-reddit:before{content:'\e851'}.icon-string:before{content:'\e852'}.icon-integer:before{content:'\e853'}.icon-float:before{content:'\e854'}.icon-ip:before{content:'\e855'}.icon-more:before{content:'\e856'}.icon-key:before{content:'\e857'}.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-youtube-play:before{content:'\f16a'}.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-boolean:before{content:'\f205'}.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;object-fit:contain}.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:calc(100% + 6px);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:100%;content:"";position:absolute;z-index:99;right:3px}.tooltip.down:hover:after{top:calc(100% + 6px);bottom:inherit}.tooltip.down:hover:before{top:100%;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;border-bottom:none;box-shadow:0 0 3px rgba(0,0,0,.05);display:block;padding:30px;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}.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}.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:visible;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 .dashboard .chart-bar{height:4rem;width:auto;display:flex;align-items:flex-end}@media only screen and (min-width:1199px){.console .dashboard .chart-bar{padding-right:15px}}.console .dashboard .chart-bar .bar{width:12.5%;background-color:var(--config-color-chart-fade);margin:0 2px;border-top:2px solid var(--config-color-chart)}.console .dashboard .chart-bar .bar:hover{background-color:var(--config-color-chart)}.console .dashboard .chart-bar .bar.bar-100{height:100%}.console .dashboard .chart-bar .bar.bar-90{height:90%}.console .dashboard .chart-bar .bar.bar-80{height:80%}.console .dashboard .chart-bar .bar.bar-70{height:70%}.console .dashboard .chart-bar .bar.bar-60{height:60%}.console .dashboard .chart-bar .bar.bar-50{height:50%}.console .dashboard .chart-bar .bar.bar-40{height:40%}.console .dashboard .chart-bar .bar.bar-30{height:30%}.console .dashboard .chart-bar .bar.bar-20{height:20%}.console .dashboard .chart-bar .bar.bar-10{height:10%}.console .dashboard .chart-bar .bar.bar-0{height:0%}.console .dashboard .chart-bar .bar.bar-0{border-top:1px solid var(--config-color-chart)}.console .dashboard .chart-bar .bar.bar-5{height:5%}.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:var(--config-color-chart)}.console .chart-notes li.blue::before,.console .chart-notes li:nth-child(1)::before{background:var(--config-color-chart)}.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;border-bottom:none;box-shadow:0 0 3px rgba(0,0,0,.05);display:block;padding:30px}.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}}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 From 5b8cadce06277c42d764a86bb1f5cd06f29ef3e1 Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Fri, 17 Dec 2021 09:42:05 +0200 Subject: [PATCH 100/107] Updated Discord logo size --- public/styles/fontello/config.json | 18 ++++++++++++++++-- public/styles/icons.less | 6 +++--- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/public/styles/fontello/config.json b/public/styles/fontello/config.json index b6f7c27a78..b633de0056 100644 --- a/public/styles/fontello/config.json +++ b/public/styles/fontello/config.json @@ -783,13 +783,13 @@ "src": "fontawesome" }, { - "uid": "097a1d40f8e785fbd260946461a6ea9c", + "uid": "b6941a012434c6246e2ad74248b6453e", "css": "discord", "code": 59463, "src": "custom_icons", "selected": true, "svg": { - "path": "M1092.8 89.1C1010.5 51.3 922.3 23.5 830 7.6 828.4 7.2 826.7 8 825.8 9.6 814.5 29.7 801.9 56.1 793.1 76.8 693.9 61.9 595.2 61.9 498 76.8 489.2 55.6 476.2 29.7 464.8 9.6 463.9 8.1 462.2 7.3 460.5 7.6 368.3 23.4 280.1 51.2 197.8 89.1 197.1 89.4 196.5 89.9 196 90.5 28.7 340.6-17.2 584.4 5.3 825.3 5.4 826.5 6.1 827.6 7 828.3 117.4 909.4 224.4 958.6 329.4 991.3 331 991.8 332.8 991.2 333.9 989.8 358.7 955.9 380.9 920.1 399.8 882.5 401 880.3 399.9 877.7 397.6 876.8 362.5 863.5 329.1 847.3 296.9 828.8 294.4 827.3 294.1 823.7 296.5 822 303.3 816.9 310 811.6 316.5 806.3 317.7 805.3 319.3 805.1 320.7 805.7 531.9 902.2 760.6 902.2 969.4 805.7 970.8 805.1 972.4 805.3 973.6 806.2 980.1 811.6 986.9 816.9 993.7 822 996 823.7 995.9 827.3 993.3 828.8 961.2 847.6 927.7 863.5 892.6 876.8 890.3 877.6 889.3 880.3 890.4 882.5 909.8 920.1 931.9 955.8 956.3 989.7 957.3 991.2 959.1 991.8 960.8 991.3 1066.3 958.6 1173.3 909.4 1283.7 828.3 1284.6 827.6 1285.2 826.5 1285.4 825.3 1312.3 546.9 1240.3 305 1094.5 90.6 1094.1 89.9 1093.5 89.4 1092.8 89.1ZM431.4 678.6C367.8 678.6 315.4 620.2 315.4 548.5 315.4 476.8 366.8 418.4 431.4 418.4 496.5 418.4 548.4 477.3 547.4 548.5 547.4 620.2 496 678.6 431.4 678.6ZM860.3 678.6C796.7 678.6 744.3 620.2 744.3 548.5 744.3 476.8 795.7 418.4 860.3 418.4 925.5 418.4 977.4 477.3 976.3 548.5 976.3 620.2 925.5 678.6 860.3 678.6Z", + "path": "M1006.7 168.6C940.3 138.1 869 115.6 794.5 102.8 793.2 102.5 791.8 103.2 791.1 104.4 781.9 120.7 771.8 142 764.7 158.7 684.6 146.7 604.9 146.7 526.4 158.7 519.3 141.6 508.7 120.7 499.5 104.4 498.8 103.2 497.5 102.6 496.1 102.8 421.7 115.6 350.4 138.1 284 168.6 283.4 168.8 282.9 169.3 282.6 169.8 147.4 371.7 110.4 568.6 128.6 763.1 128.6 764.1 129.2 765 129.9 765.5 219.1 831 305.4 870.8 390.2 897.1 391.6 897.5 393 897 393.9 895.9 413.9 868.5 431.8 839.7 447.1 809.3 448 807.5 447.2 805.4 445.3 804.7 417 794 390 780.9 364 766 361.9 764.8 361.8 761.8 363.7 760.4 369.1 756.3 374.6 752.1 379.8 747.8 380.8 747 382.1 746.8 383.2 747.3 553.8 825.2 738.5 825.2 907.1 747.3 908.2 746.8 909.5 746.9 910.5 747.7 915.7 752 921.1 756.3 926.7 760.4 928.5 761.8 928.4 764.8 926.4 766 900.4 781.1 873.4 794 845 804.7 843.2 805.4 842.3 807.5 843.2 809.3 858.9 839.6 876.8 868.5 896.5 895.9 897.3 897 898.8 897.5 900.1 897.1 985.3 870.8 1071.7 831 1160.8 765.5 1161.6 765 1162.1 764.1 1162.2 763.2 1183.9 538.3 1125.8 343 1008 169.8 1007.8 169.3 1007.3 168.8 1006.7 168.6ZM472.6 644.7C421.2 644.7 378.9 597.5 378.9 539.6 378.9 481.7 420.4 434.6 472.6 434.6 525.2 434.6 567.1 482.1 566.3 539.6 566.3 597.5 524.8 644.7 472.6 644.7ZM819 644.7C767.6 644.7 725.3 597.5 725.3 539.6 725.3 481.7 766.8 434.6 819 434.6 871.6 434.6 913.5 482.1 912.6 539.6 912.6 597.5 871.6 644.7 819 644.7Z", "width": 1291 }, "search": [ @@ -809,6 +809,20 @@ "search": [ "discord-logo-black" ] + }, + { + "uid": "097a1d40f8e785fbd260946461a6ea9c", + "css": "discord", + "code": 59463, + "src": "custom_icons", + "selected": false, + "svg": { + "path": "M1092.8 89.1C1010.5 51.3 922.3 23.5 830 7.6 828.4 7.2 826.7 8 825.8 9.6 814.5 29.7 801.9 56.1 793.1 76.8 693.9 61.9 595.2 61.9 498 76.8 489.2 55.6 476.2 29.7 464.8 9.6 463.9 8.1 462.2 7.3 460.5 7.6 368.3 23.4 280.1 51.2 197.8 89.1 197.1 89.4 196.5 89.9 196 90.5 28.7 340.6-17.2 584.4 5.3 825.3 5.4 826.5 6.1 827.6 7 828.3 117.4 909.4 224.4 958.6 329.4 991.3 331 991.8 332.8 991.2 333.9 989.8 358.7 955.9 380.9 920.1 399.8 882.5 401 880.3 399.9 877.7 397.6 876.8 362.5 863.5 329.1 847.3 296.9 828.8 294.4 827.3 294.1 823.7 296.5 822 303.3 816.9 310 811.6 316.5 806.3 317.7 805.3 319.3 805.1 320.7 805.7 531.9 902.2 760.6 902.2 969.4 805.7 970.8 805.1 972.4 805.3 973.6 806.2 980.1 811.6 986.9 816.9 993.7 822 996 823.7 995.9 827.3 993.3 828.8 961.2 847.6 927.7 863.5 892.6 876.8 890.3 877.6 889.3 880.3 890.4 882.5 909.8 920.1 931.9 955.8 956.3 989.7 957.3 991.2 959.1 991.8 960.8 991.3 1066.3 958.6 1173.3 909.4 1283.7 828.3 1284.6 827.6 1285.2 826.5 1285.4 825.3 1312.3 546.9 1240.3 305 1094.5 90.6 1094.1 89.9 1093.5 89.4 1092.8 89.1ZM431.4 678.6C367.8 678.6 315.4 620.2 315.4 548.5 315.4 476.8 366.8 418.4 431.4 418.4 496.5 418.4 548.4 477.3 547.4 548.5 547.4 620.2 496 678.6 431.4 678.6ZM860.3 678.6C796.7 678.6 744.3 620.2 744.3 548.5 744.3 476.8 795.7 418.4 860.3 418.4 925.5 418.4 977.4 477.3 976.3 548.5 976.3 620.2 925.5 678.6 860.3 678.6Z", + "width": 1291 + }, + "search": [ + "discord-logo-color" + ] } ] } \ No newline at end of file diff --git a/public/styles/icons.less b/public/styles/icons.less index fbd1a5e9d6..20229c52ac 100644 --- a/public/styles/icons.less +++ b/public/styles/icons.less @@ -1,7 +1,7 @@ @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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MQAuADAAZgBvAG4AdABlAGwAbABvAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAACAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHkBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwF4AXkBegAEdXNlcgZmb2xkZXIEbGlzdAVsb2dpbgNjb2cHdHdpdHRlcgthcnRpY2xlLWFsdAZjYW5jZWwEaG9tZQhkb3duLWRpcghmYWNlYm9vawhhc3RlcmlzawZ1cGxvYWQJc3RvcHdhdGNoBmV4cG9ydAVoZWFydARwbHVzBnVwLWRpcgRtZW51CWxlZnQtb3BlbgpyaWdodC1vcGVuBWluYm94BndyZW5jaAdjb21tZW50DXN0YWNrb3ZlcmZsb3cIcXVlc3Rpb24Kb2stY2lyY2xlZAd3YXJuaW5nBG1haWwEbGluawdrZXktaW52BXRyYXNoCGRvd25sb2FkB2dsYXNzZXMGcXJjb2RlB3NodWZmbGUDZXllBGxvY2sGc2VhcmNoBGJlbGwFdXNlcnMIbG9jYXRpb24JYnJpZWZjYXNlCWluc3RhZ3JhbQVjbG9jawVwaG9uZQhjYWxlbmRhcgVwcmludARlZGl0BGJvbGQGaXRhbGljBnJvY2tldAh3aGF0c2FwcAVkb3QtMwxpbmZvLWNpcmNsZWQIdmlkZW9jYW0LcXVvdGUtcmlnaHQHcGljdHVyZQdwYWxldHRlBGxhbXAJYm9vay1vcGVuAm9rCGNoYXQtYWx0B2FyY2hpdmUEcGxheQVwYXVzZQlkb3duLW9wZW4HdXAtb3BlbgVtaW51cwhleGNoYW5nZQduZXR3b3JrB2Rpc2NvcmQIbW9vbi1pbnYHc3VuLWludg5jYW5jZWwtY2lyY2xlZAlsaWdodG5pbmcDZGV2CXJpZ2h0LWRpcghsZWZ0LWRpcgRmaXJlCmhhY2tlcm5ld3MGcmVkZGl0BnN0cmluZwdpbnRlZ2VyAmlwBG1vcmUDa2V5CGxpbmstZXh0DmdpdGh1Yi1jaXJjbGVkBmZpbHRlcgRkb2NzC2xpc3QtYnVsbGV0DWxpc3QtbnVtYmVyZWQJdW5kZXJsaW5lBHNvcnQIbGlua2VkaW4Fc21pbGUIa2V5Ym9hcmQEY29kZQZzaGllbGQSYW5nbGUtY2lyY2xlZC1sZWZ0E2FuZ2xlLWNpcmNsZWQtcmlnaHQMeW91dHViZS1wbGF5CWJpdGJ1Y2tldAd3aW5kb3dzC2RvdC1jaXJjbGVkCndoZWVsY2hhaXIEYmFuawZnb29nbGUPYnVpbGRpbmctZmlsbGVkCGRhdGFiYXNlCGxpZmVidW95BmhlYWRlcgpiaW5vY3VsYXJzCmNoYXJ0LWFyZWEHYm9vbGVhbglwaW50ZXJlc3QGbWVkaXVtBmdpdGxhYgh0ZWxlZ3JhbQAAAAEAAf//AA8AAAAAAAAAAAAAAAAAAAAAsAAsILAAVVhFWSAgS7gADlFLsAZTWliwNBuwKFlgZiCKVViwAiVhuQgACABjYyNiGyEhsABZsABDI0SyAAEAQ2BCLbABLLAgYGYtsAIsIyEjIS2wAywgZLMDFBUAQkOwE0MgYGBCsQIUQ0KxJQNDsAJDVHggsAwjsAJDQ2FksARQeLICAgJDYEKwIWUcIbACQ0OyDhUBQhwgsAJDI0KyEwETQ2BCI7AAUFhlWbIWAQJDYEItsAQssAMrsBVDWCMhIyGwFkNDI7AAUFhlWRsgZCCwwFCwBCZasigBDUNFY0WwBkVYIbADJVlSW1ghIyEbilggsFBQWCGwQFkbILA4UFghsDhZWSCxAQ1DRWNFYWSwKFBYIbEBDUNFY0UgsDBQWCGwMFkbILDAUFggZiCKimEgsApQWGAbILAgUFghsApgGyCwNlBYIbA2YBtgWVlZG7ACJbAMQ2OwAFJYsABLsApQWCGwDEMbS7AeUFghsB5LYbgQ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') format('truetype'); + src: url('data:application/octet-stream;base64,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') format('woff'), + url('data:application/octet-stream;base64,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MQAuADAAZgBvAG4AdABlAGwAbABvAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAACAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHkBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwF4AXkBegAEdXNlcgZmb2xkZXIEbGlzdAVsb2dpbgNjb2cHdHdpdHRlcgthcnRpY2xlLWFsdAZjYW5jZWwEaG9tZQhkb3duLWRpcghmYWNlYm9vawhhc3RlcmlzawZ1cGxvYWQJc3RvcHdhdGNoBmV4cG9ydAVoZWFydARwbHVzBnVwLWRpcgRtZW51CWxlZnQtb3BlbgpyaWdodC1vcGVuBWluYm94BndyZW5jaAdjb21tZW50DXN0YWNrb3ZlcmZsb3cIcXVlc3Rpb24Kb2stY2lyY2xlZAd3YXJuaW5nBG1haWwEbGluawdrZXktaW52BXRyYXNoCGRvd25sb2FkB2dsYXNzZXMGcXJjb2RlB3NodWZmbGUDZXllBGxvY2sGc2VhcmNoBGJlbGwFdXNlcnMIbG9jYXRpb24JYnJpZWZjYXNlCWluc3RhZ3JhbQVjbG9jawVwaG9uZQhjYWxlbmRhcgVwcmludARlZGl0BGJvbGQGaXRhbGljBnJvY2tldAh3aGF0c2FwcAVkb3QtMwxpbmZvLWNpcmNsZWQIdmlkZW9jYW0LcXVvdGUtcmlnaHQHcGljdHVyZQdwYWxldHRlBGxhbXAJYm9vay1vcGVuAm9rCGNoYXQtYWx0B2FyY2hpdmUEcGxheQVwYXVzZQlkb3duLW9wZW4HdXAtb3BlbgVtaW51cwhleGNoYW5nZQduZXR3b3JrB2Rpc2NvcmQIbW9vbi1pbnYHc3VuLWludg5jYW5jZWwtY2lyY2xlZAlsaWdodG5pbmcDZGV2CXJpZ2h0LWRpcghsZWZ0LWRpcgRmaXJlCmhhY2tlcm5ld3MGcmVkZGl0BnN0cmluZwdpbnRlZ2VyAmlwBG1vcmUDa2V5CGxpbmstZXh0DmdpdGh1Yi1jaXJjbGVkBmZpbHRlcgRkb2NzC2xpc3QtYnVsbGV0DWxpc3QtbnVtYmVyZWQJdW5kZXJsaW5lBHNvcnQIbGlua2VkaW4Fc21pbGUIa2V5Ym9hcmQEY29kZQZzaGllbGQSYW5nbGUtY2lyY2xlZC1sZWZ0E2FuZ2xlLWNpcmNsZWQtcmlnaHQMeW91dHViZS1wbGF5CWJpdGJ1Y2tldAd3aW5kb3dzC2RvdC1jaXJjbGVkCndoZWVsY2hhaXIEYmFuawZnb29nbGUPYnVpbGRpbmctZmlsbGVkCGRhdGFiYXNlCGxpZmVidW95BmhlYWRlcgpiaW5vY3VsYXJzCmNoYXJ0LWFyZWEHYm9vbGVhbglwaW50ZXJlc3QGbWVkaXVtBmdpdGxhYgh0ZWxlZ3JhbQAAAAEAAf//AA8AAAAAAAAAAAAAAAAAAAAAsAAsILAAVVhFWSAgS7gADlFLsAZTWliwNBuwKFlgZiCKVViwAiVhuQgACABjYyNiGyEhsABZsABDI0SyAAEAQ2BCLbABLLAgYGYtsAIsIyEjIS2wAywgZLMDFBUAQkOwE0MgYGBCsQIUQ0KxJQNDsAJDVHggsAwjsAJDQ2FksARQeLICAgJDYEKwIWUcIbACQ0OyDhUBQhwgsAJDI0KyEwETQ2BCI7AAUFhlWbIWAQJDYEItsAQssAMrsBVDWCMhIyGwFkNDI7AAUFhlWRsgZCCwwFCwBCZasigBDUNFY0WwBkVYIbADJVlSW1ghIyEbilggsFBQWCGwQFkbILA4UFghsDhZWSCxAQ1DRWNFYWSwKFBYIbEBDUNFY0UgsDBQWCGwMFkbILDAUFggZiCKimEgsApQWGAbILAgUFghsApgGyCwNlBYIbA2YBtgWVlZG7ACJbAMQ2OwAFJYsABLsApQWCGwDEMbS7AeUFghsB5LYbgQ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') format('truetype'); } /* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ /* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ @@ -9,7 +9,7 @@ @media screen and (-webkit-min-device-pixel-ratio:0) { @font-face { font-family: 'fontello'; - src: url('../font/fontello.svg?70085415#fontello') format('svg'); + src: url('../font/fontello.svg?81943528#fontello') format('svg'); } } */ From d8d1d1b98a630df6367a60bb071af9b3358a0e70 Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Fri, 17 Dec 2021 09:42:48 +0200 Subject: [PATCH 101/107] Updated less build --- public/dist/styles/default-ltr.css | 2 +- public/dist/styles/default-rtl.css | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/public/dist/styles/default-ltr.css b/public/dist/styles/default-ltr.css index ab82ead83e..119c023867 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-primary:#f02e65;--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-dark:#6e6e6e;--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-color-chart:#29b5d9;--config-color-chart-fade:#d4f0f7;--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-swift:#f2624c;--config-language-swift-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-primary:#f02e65;--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-dark:#81859b;--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-color-chart:#29b5d9;--config-color-chart-fade:#c7d8eb;--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-swift:var(--config-color-normal);--config-language-swift-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-smaller{font-size:11.5px}.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-fade-dark{color:var(--config-color-fade-dark)}.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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MQAuADAAZgBvAG4AdABlAGwAbABvAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAACAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHkBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwF4AXkBegAEdXNlcgZmb2xkZXIEbGlzdAVsb2dpbgNjb2cHdHdpdHRlcgthcnRpY2xlLWFsdAZjYW5jZWwEaG9tZQhkb3duLWRpcghmYWNlYm9vawhhc3RlcmlzawZ1cGxvYWQJc3RvcHdhdGNoBmV4cG9ydAVoZWFydARwbHVzBnVwLWRpcgRtZW51CWxlZnQtb3BlbgpyaWdodC1vcGVuBWluYm94BndyZW5jaAdjb21tZW50DXN0YWNrb3ZlcmZsb3cIcXVlc3Rpb24Kb2stY2lyY2xlZAd3YXJuaW5nBG1haWwEbGluawdrZXktaW52BXRyYXNoCGRvd25sb2FkB2dsYXNzZXMGcXJjb2RlB3NodWZmbGUDZXllBGxvY2sGc2VhcmNoBGJlbGwFdXNlcnMIbG9jYXRpb24JYnJpZWZjYXNlCWluc3RhZ3JhbQVjbG9jawVwaG9uZQhjYWxlbmRhcgVwcmludARlZGl0BGJvbGQGaXRhbGljBnJvY2tldAh3aGF0c2FwcAVkb3QtMwxpbmZvLWNpcmNsZWQIdmlkZW9jYW0LcXVvdGUtcmlnaHQHcGljdHVyZQdwYWxldHRlBGxhbXAJYm9vay1vcGVuAm9rCGNoYXQtYWx0B2FyY2hpdmUEcGxheQVwYXVzZQlkb3duLW9wZW4HdXAtb3BlbgVtaW51cwhleGNoYW5nZQduZXR3b3JrB2Rpc2NvcmQIbW9vbi1pbnYHc3VuLWludg5jYW5jZWwtY2lyY2xlZAlsaWdodG5pbmcDZGV2CXJpZ2h0LWRpcghsZWZ0LWRpcgRmaXJlCmhhY2tlcm5ld3MGcmVkZGl0BnN0cmluZwdpbnRlZ2VyAmlwBG1vcmUDa2V5CGxpbmstZXh0DmdpdGh1Yi1jaXJjbGVkBmZpbHRlcgRkb2NzC2xpc3QtYnVsbGV0DWxpc3QtbnVtYmVyZWQJdW5kZXJsaW5lBHNvcnQIbGlua2VkaW4Fc21pbGUIa2V5Ym9hcmQEY29kZQZzaGllbGQSYW5nbGUtY2lyY2xlZC1sZWZ0E2FuZ2xlLWNpcmNsZWQtcmlnaHQMeW91dHViZS1wbGF5CWJpdGJ1Y2tldAd3aW5kb3dzC2RvdC1jaXJjbGVkCndoZWVsY2hhaXIEYmFuawZnb29nbGUPYnVpbGRpbmctZmlsbGVkCGRhdGFiYXNlCGxpZmVidW95BmhlYWRlcgpiaW5vY3VsYXJzCmNoYXJ0LWFyZWEHYm9vbGVhbglwaW50ZXJlc3QGbWVkaXVtBmdpdGxhYgh0ZWxlZ3JhbQAAAAEAAf//AA8AAAAAAAAAAAAAAAAAAAAAsAAsILAAVVhFWSAgS7gADlFLsAZTWliwNBuwKFlgZiCKVViwAiVhuQgACABjYyNiGyEhsABZsABDI0SyAAEAQ2BCLbABLLAgYGYtsAIsIyEjIS2wAywgZLMDFBUAQkOwE0MgYGBCsQIUQ0KxJQNDsAJDVHggsAwjsAJDQ2FksARQeLICAgJDYEKwIWUcIbACQ0OyDhUBQhwgsAJDI0KyEwETQ2BCI7AAUFhlWbIWAQJDYEItsAQssAMrsBVDWCMhIyGwFkNDI7AAUFhlWRsgZCCwwFCwBCZasigBDUNFY0WwBkVYIbADJVlSW1ghIyEbilggsFBQWCGwQFkbILA4UFghsDhZWSCxAQ1DRWNFYWSwKFBYIbEBDUNFY0UgsDBQWCGwMFkbILDAUFggZiCKimEgsApQWGAbILAgUFghsApgGyCwNlBYIbA2YBtgWVlZG7ACJbAMQ2OwAFJYsABLsApQWCGwDEMbS7AeUFghsB5LYbgQ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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;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.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-hackernews:before{content:'\e850'}.icon-reddit:before{content:'\e851'}.icon-string:before{content:'\e852'}.icon-integer:before{content:'\e853'}.icon-float:before{content:'\e854'}.icon-ip:before{content:'\e855'}.icon-more:before{content:'\e856'}.icon-key:before{content:'\e857'}.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-youtube-play:before{content:'\f16a'}.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-boolean:before{content:'\f205'}.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;object-fit:contain}.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:calc(100% + 6px);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:100%;content:"";position:absolute;z-index:99;left:3px}.tooltip.down:hover:after{top:calc(100% + 6px);bottom:inherit}.tooltip.down:hover:before{top:100%;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;border-bottom:none;box-shadow:0 0 3px rgba(0,0,0,.05);display:block;padding:30px;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}.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}.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:visible;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 .dashboard .chart-bar{height:4rem;width:auto;display:flex;align-items:flex-end}@media only screen and (min-width:1199px){.console .dashboard .chart-bar{padding-right:15px}}.console .dashboard .chart-bar .bar{width:12.5%;background-color:var(--config-color-chart-fade);margin:0 2px;border-top:2px solid var(--config-color-chart)}.console .dashboard .chart-bar .bar:hover{background-color:var(--config-color-chart)}.console .dashboard .chart-bar .bar.bar-100{height:100%}.console .dashboard .chart-bar .bar.bar-90{height:90%}.console .dashboard .chart-bar .bar.bar-80{height:80%}.console .dashboard .chart-bar .bar.bar-70{height:70%}.console .dashboard .chart-bar .bar.bar-60{height:60%}.console .dashboard .chart-bar .bar.bar-50{height:50%}.console .dashboard .chart-bar .bar.bar-40{height:40%}.console .dashboard .chart-bar .bar.bar-30{height:30%}.console .dashboard .chart-bar .bar.bar-20{height:20%}.console .dashboard .chart-bar .bar.bar-10{height:10%}.console .dashboard .chart-bar .bar.bar-0{height:0%}.console .dashboard .chart-bar .bar.bar-0{border-top:1px solid var(--config-color-chart)}.console .dashboard .chart-bar .bar.bar-5{height:5%}.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:var(--config-color-chart)}.console .chart-notes li.blue::before,.console .chart-notes li:nth-child(1)::before{background:var(--config-color-chart)}.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;border-bottom:none;box-shadow:0 0 3px rgba(0,0,0,.05);display:block;padding:30px}.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}}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-primary:#f02e65;--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-dark:#6e6e6e;--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-color-chart:#29b5d9;--config-color-chart-fade:#d4f0f7;--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-swift:#f2624c;--config-language-swift-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-primary:#f02e65;--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-dark:#81859b;--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-color-chart:#29b5d9;--config-color-chart-fade:#c7d8eb;--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-swift:var(--config-color-normal);--config-language-swift-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-smaller{font-size:11.5px}.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-fade-dark{color:var(--config-color-fade-dark)}.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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MQAuADAAZgBvAG4AdABlAGwAbABvAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAACAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHkBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwF4AXkBegAEdXNlcgZmb2xkZXIEbGlzdAVsb2dpbgNjb2cHdHdpdHRlcgthcnRpY2xlLWFsdAZjYW5jZWwEaG9tZQhkb3duLWRpcghmYWNlYm9vawhhc3RlcmlzawZ1cGxvYWQJc3RvcHdhdGNoBmV4cG9ydAVoZWFydARwbHVzBnVwLWRpcgRtZW51CWxlZnQtb3BlbgpyaWdodC1vcGVuBWluYm94BndyZW5jaAdjb21tZW50DXN0YWNrb3ZlcmZsb3cIcXVlc3Rpb24Kb2stY2lyY2xlZAd3YXJuaW5nBG1haWwEbGluawdrZXktaW52BXRyYXNoCGRvd25sb2FkB2dsYXNzZXMGcXJjb2RlB3NodWZmbGUDZXllBGxvY2sGc2VhcmNoBGJlbGwFdXNlcnMIbG9jYXRpb24JYnJpZWZjYXNlCWluc3RhZ3JhbQVjbG9jawVwaG9uZQhjYWxlbmRhcgVwcmludARlZGl0BGJvbGQGaXRhbGljBnJvY2tldAh3aGF0c2FwcAVkb3QtMwxpbmZvLWNpcmNsZWQIdmlkZW9jYW0LcXVvdGUtcmlnaHQHcGljdHVyZQdwYWxldHRlBGxhbXAJYm9vay1vcGVuAm9rCGNoYXQtYWx0B2FyY2hpdmUEcGxheQVwYXVzZQlkb3duLW9wZW4HdXAtb3BlbgVtaW51cwhleGNoYW5nZQduZXR3b3JrB2Rpc2NvcmQIbW9vbi1pbnYHc3VuLWludg5jYW5jZWwtY2lyY2xlZAlsaWdodG5pbmcDZGV2CXJpZ2h0LWRpcghsZWZ0LWRpcgRmaXJlCmhhY2tlcm5ld3MGcmVkZGl0BnN0cmluZwdpbnRlZ2VyAmlwBG1vcmUDa2V5CGxpbmstZXh0DmdpdGh1Yi1jaXJjbGVkBmZpbHRlcgRkb2NzC2xpc3QtYnVsbGV0DWxpc3QtbnVtYmVyZWQJdW5kZXJsaW5lBHNvcnQIbGlua2VkaW4Fc21pbGUIa2V5Ym9hcmQEY29kZQZzaGllbGQSYW5nbGUtY2lyY2xlZC1sZWZ0E2FuZ2xlLWNpcmNsZWQtcmlnaHQMeW91dHViZS1wbGF5CWJpdGJ1Y2tldAd3aW5kb3dzC2RvdC1jaXJjbGVkCndoZWVsY2hhaXIEYmFuawZnb29nbGUPYnVpbGRpbmctZmlsbGVkCGRhdGFiYXNlCGxpZmVidW95BmhlYWRlcgpiaW5vY3VsYXJzCmNoYXJ0LWFyZWEHYm9vbGVhbglwaW50ZXJlc3QGbWVkaXVtBmdpdGxhYgh0ZWxlZ3JhbQAAAAEAAf//AA8AAAAAAAAAAAAAAAAAAAAAsAAsILAAVVhFWSAgS7gADlFLsAZTWliwNBuwKFlgZiCKVViwAiVhuQgACABjYyNiGyEhsABZsABDI0SyAAEAQ2BCLbABLLAgYGYtsAIsIyEjIS2wAywgZLMDFBUAQkOwE0MgYGBCsQIUQ0KxJQNDsAJDVHggsAwjsAJDQ2FksARQeLICAgJDYEKwIWUcIbACQ0OyDhUBQhwgsAJDI0KyEwETQ2BCI7AAUFhlWbIWAQJDYEItsAQssAMrsBVDWCMhIyGwFkNDI7AAUFhlWRsgZCCwwFCwBCZasigBDUNFY0WwBkVYIbADJVlSW1ghIyEbilggsFBQWCGwQFkbILA4UFghsDhZWSCxAQ1DRWNFYWSwKFBYIbEBDUNFY0UgsDBQWCGwMFkbILDAUFggZiCKimEgsApQWGAbILAgUFghsApgGyCwNlBYIbA2YBtgWVlZG7ACJbAMQ2OwAFJYsABLsApQWCGwDEMbS7AeUFghsB5LYbgQ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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;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.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-hackernews:before{content:'\e850'}.icon-reddit:before{content:'\e851'}.icon-string:before{content:'\e852'}.icon-integer:before{content:'\e853'}.icon-float:before{content:'\e854'}.icon-ip:before{content:'\e855'}.icon-more:before{content:'\e856'}.icon-key:before{content:'\e857'}.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-youtube-play:before{content:'\f16a'}.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-boolean:before{content:'\f205'}.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;object-fit:contain}.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:calc(100% + 6px);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:100%;content:"";position:absolute;z-index:99;left:3px}.tooltip.down:hover:after{top:calc(100% + 6px);bottom:inherit}.tooltip.down:hover:before{top:100%;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;border-bottom:none;box-shadow:0 0 3px rgba(0,0,0,.05);display:block;padding:30px;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}.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}.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:visible;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 .dashboard .chart-bar{height:4rem;width:auto;display:flex;align-items:flex-end}@media only screen and (min-width:1199px){.console .dashboard .chart-bar{padding-right:15px}}.console .dashboard .chart-bar .bar{width:12.5%;background-color:var(--config-color-chart-fade);margin:0 2px;border-top:2px solid var(--config-color-chart)}.console .dashboard .chart-bar .bar:hover{background-color:var(--config-color-chart)}.console .dashboard .chart-bar .bar.bar-100{height:100%}.console .dashboard .chart-bar .bar.bar-90{height:90%}.console .dashboard .chart-bar .bar.bar-80{height:80%}.console .dashboard .chart-bar .bar.bar-70{height:70%}.console .dashboard .chart-bar .bar.bar-60{height:60%}.console .dashboard .chart-bar .bar.bar-50{height:50%}.console .dashboard .chart-bar .bar.bar-40{height:40%}.console .dashboard .chart-bar .bar.bar-30{height:30%}.console .dashboard .chart-bar .bar.bar-20{height:20%}.console .dashboard .chart-bar .bar.bar-10{height:10%}.console .dashboard .chart-bar .bar.bar-0{height:0%}.console .dashboard .chart-bar .bar.bar-0{border-top:1px solid var(--config-color-chart)}.console .dashboard .chart-bar .bar.bar-5{height:5%}.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:var(--config-color-chart)}.console .chart-notes li.blue::before,.console .chart-notes li:nth-child(1)::before{background:var(--config-color-chart)}.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;border-bottom:none;box-shadow:0 0 3px rgba(0,0,0,.05);display:block;padding:30px}.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}}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 1f989d536c..81acea530b 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-primary:#f02e65;--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-dark:#6e6e6e;--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-color-chart:#29b5d9;--config-color-chart-fade:#d4f0f7;--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-swift:#f2624c;--config-language-swift-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-primary:#f02e65;--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-dark:#81859b;--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-color-chart:#29b5d9;--config-color-chart-fade:#c7d8eb;--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-swift:var(--config-color-normal);--config-language-swift-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-smaller{font-size:11.5px}.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-fade-dark{color:var(--config-color-fade-dark)}.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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MQAuADAAZgBvAG4AdABlAGwAbABvAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAACAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHkBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwF4AXkBegAEdXNlcgZmb2xkZXIEbGlzdAVsb2dpbgNjb2cHdHdpdHRlcgthcnRpY2xlLWFsdAZjYW5jZWwEaG9tZQhkb3duLWRpcghmYWNlYm9vawhhc3RlcmlzawZ1cGxvYWQJc3RvcHdhdGNoBmV4cG9ydAVoZWFydARwbHVzBnVwLWRpcgRtZW51CWxlZnQtb3BlbgpyaWdodC1vcGVuBWluYm94BndyZW5jaAdjb21tZW50DXN0YWNrb3ZlcmZsb3cIcXVlc3Rpb24Kb2stY2lyY2xlZAd3YXJuaW5nBG1haWwEbGluawdrZXktaW52BXRyYXNoCGRvd25sb2FkB2dsYXNzZXMGcXJjb2RlB3NodWZmbGUDZXllBGxvY2sGc2VhcmNoBGJlbGwFdXNlcnMIbG9jYXRpb24JYnJpZWZjYXNlCWluc3RhZ3JhbQVjbG9jawVwaG9uZQhjYWxlbmRhcgVwcmludARlZGl0BGJvbGQGaXRhbGljBnJvY2tldAh3aGF0c2FwcAVkb3QtMwxpbmZvLWNpcmNsZWQIdmlkZW9jYW0LcXVvdGUtcmlnaHQHcGljdHVyZQdwYWxldHRlBGxhbXAJYm9vay1vcGVuAm9rCGNoYXQtYWx0B2FyY2hpdmUEcGxheQVwYXVzZQlkb3duLW9wZW4HdXAtb3BlbgVtaW51cwhleGNoYW5nZQduZXR3b3JrB2Rpc2NvcmQIbW9vbi1pbnYHc3VuLWludg5jYW5jZWwtY2lyY2xlZAlsaWdodG5pbmcDZGV2CXJpZ2h0LWRpcghsZWZ0LWRpcgRmaXJlCmhhY2tlcm5ld3MGcmVkZGl0BnN0cmluZwdpbnRlZ2VyAmlwBG1vcmUDa2V5CGxpbmstZXh0DmdpdGh1Yi1jaXJjbGVkBmZpbHRlcgRkb2NzC2xpc3QtYnVsbGV0DWxpc3QtbnVtYmVyZWQJdW5kZXJsaW5lBHNvcnQIbGlua2VkaW4Fc21pbGUIa2V5Ym9hcmQEY29kZQZzaGllbGQSYW5nbGUtY2lyY2xlZC1sZWZ0E2FuZ2xlLWNpcmNsZWQtcmlnaHQMeW91dHViZS1wbGF5CWJpdGJ1Y2tldAd3aW5kb3dzC2RvdC1jaXJjbGVkCndoZWVsY2hhaXIEYmFuawZnb29nbGUPYnVpbGRpbmctZmlsbGVkCGRhdGFiYXNlCGxpZmVidW95BmhlYWRlcgpiaW5vY3VsYXJzCmNoYXJ0LWFyZWEHYm9vbGVhbglwaW50ZXJlc3QGbWVkaXVtBmdpdGxhYgh0ZWxlZ3JhbQAAAAEAAf//AA8AAAAAAAAAAAAAAAAAAAAAsAAsILAAVVhFWSAgS7gADlFLsAZTWliwNBuwKFlgZiCKVViwAiVhuQgACABjYyNiGyEhsABZsABDI0SyAAEAQ2BCLbABLLAgYGYtsAIsIyEjIS2wAywgZLMDFBUAQkOwE0MgYGBCsQIUQ0KxJQNDsAJDVHggsAwjsAJDQ2FksARQeLICAgJDYEKwIWUcIbACQ0OyDhUBQhwgsAJDI0KyEwETQ2BCI7AAUFhlWbIWAQJDYEItsAQssAMrsBVDWCMhIyGwFkNDI7AAUFhlWRsgZCCwwFCwBCZasigBDUNFY0WwBkVYIbADJVlSW1ghIyEbilggsFBQWCGwQFkbILA4UFghsDhZWSCxAQ1DRWNFYWSwKFBYIbEBDUNFY0UgsDBQWCGwMFkbILDAUFggZiCKimEgsApQWGAbILAgUFghsApgGyCwNlBYIbA2YBtgWVlZG7ACJbAMQ2OwAFJYsABLsApQWCGwDEMbS7AeUFghsB5LYbgQ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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;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.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-hackernews:before{content:'\e850'}.icon-reddit:before{content:'\e851'}.icon-string:before{content:'\e852'}.icon-integer:before{content:'\e853'}.icon-float:before{content:'\e854'}.icon-ip:before{content:'\e855'}.icon-more:before{content:'\e856'}.icon-key:before{content:'\e857'}.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-youtube-play:before{content:'\f16a'}.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-boolean:before{content:'\f205'}.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;object-fit:contain}.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:calc(100% + 6px);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:100%;content:"";position:absolute;z-index:99;right:3px}.tooltip.down:hover:after{top:calc(100% + 6px);bottom:inherit}.tooltip.down:hover:before{top:100%;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;border-bottom:none;box-shadow:0 0 3px rgba(0,0,0,.05);display:block;padding:30px;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}.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}.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:visible;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 .dashboard .chart-bar{height:4rem;width:auto;display:flex;align-items:flex-end}@media only screen and (min-width:1199px){.console .dashboard .chart-bar{padding-right:15px}}.console .dashboard .chart-bar .bar{width:12.5%;background-color:var(--config-color-chart-fade);margin:0 2px;border-top:2px solid var(--config-color-chart)}.console .dashboard .chart-bar .bar:hover{background-color:var(--config-color-chart)}.console .dashboard .chart-bar .bar.bar-100{height:100%}.console .dashboard .chart-bar .bar.bar-90{height:90%}.console .dashboard .chart-bar .bar.bar-80{height:80%}.console .dashboard .chart-bar .bar.bar-70{height:70%}.console .dashboard .chart-bar .bar.bar-60{height:60%}.console .dashboard .chart-bar .bar.bar-50{height:50%}.console .dashboard .chart-bar .bar.bar-40{height:40%}.console .dashboard .chart-bar .bar.bar-30{height:30%}.console .dashboard .chart-bar .bar.bar-20{height:20%}.console .dashboard .chart-bar .bar.bar-10{height:10%}.console .dashboard .chart-bar .bar.bar-0{height:0%}.console .dashboard .chart-bar .bar.bar-0{border-top:1px solid var(--config-color-chart)}.console .dashboard .chart-bar .bar.bar-5{height:5%}.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:var(--config-color-chart)}.console .chart-notes li.blue::before,.console .chart-notes li:nth-child(1)::before{background:var(--config-color-chart)}.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;border-bottom:none;box-shadow:0 0 3px rgba(0,0,0,.05);display:block;padding:30px}.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}}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-primary:#f02e65;--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-dark:#6e6e6e;--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-color-chart:#29b5d9;--config-color-chart-fade:#d4f0f7;--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-swift:#f2624c;--config-language-swift-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-primary:#f02e65;--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-dark:#81859b;--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-color-chart:#29b5d9;--config-color-chart-fade:#c7d8eb;--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-swift:var(--config-color-normal);--config-language-swift-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-smaller{font-size:11.5px}.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-fade-dark{color:var(--config-color-fade-dark)}.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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MQAuADAAZgBvAG4AdABlAGwAbABvAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAACAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHkBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwF4AXkBegAEdXNlcgZmb2xkZXIEbGlzdAVsb2dpbgNjb2cHdHdpdHRlcgthcnRpY2xlLWFsdAZjYW5jZWwEaG9tZQhkb3duLWRpcghmYWNlYm9vawhhc3RlcmlzawZ1cGxvYWQJc3RvcHdhdGNoBmV4cG9ydAVoZWFydARwbHVzBnVwLWRpcgRtZW51CWxlZnQtb3BlbgpyaWdodC1vcGVuBWluYm94BndyZW5jaAdjb21tZW50DXN0YWNrb3ZlcmZsb3cIcXVlc3Rpb24Kb2stY2lyY2xlZAd3YXJuaW5nBG1haWwEbGluawdrZXktaW52BXRyYXNoCGRvd25sb2FkB2dsYXNzZXMGcXJjb2RlB3NodWZmbGUDZXllBGxvY2sGc2VhcmNoBGJlbGwFdXNlcnMIbG9jYXRpb24JYnJpZWZjYXNlCWluc3RhZ3JhbQVjbG9jawVwaG9uZQhjYWxlbmRhcgVwcmludARlZGl0BGJvbGQGaXRhbGljBnJvY2tldAh3aGF0c2FwcAVkb3QtMwxpbmZvLWNpcmNsZWQIdmlkZW9jYW0LcXVvdGUtcmlnaHQHcGljdHVyZQdwYWxldHRlBGxhbXAJYm9vay1vcGVuAm9rCGNoYXQtYWx0B2FyY2hpdmUEcGxheQVwYXVzZQlkb3duLW9wZW4HdXAtb3BlbgVtaW51cwhleGNoYW5nZQduZXR3b3JrB2Rpc2NvcmQIbW9vbi1pbnYHc3VuLWludg5jYW5jZWwtY2lyY2xlZAlsaWdodG5pbmcDZGV2CXJpZ2h0LWRpcghsZWZ0LWRpcgRmaXJlCmhhY2tlcm5ld3MGcmVkZGl0BnN0cmluZwdpbnRlZ2VyAmlwBG1vcmUDa2V5CGxpbmstZXh0DmdpdGh1Yi1jaXJjbGVkBmZpbHRlcgRkb2NzC2xpc3QtYnVsbGV0DWxpc3QtbnVtYmVyZWQJdW5kZXJsaW5lBHNvcnQIbGlua2VkaW4Fc21pbGUIa2V5Ym9hcmQEY29kZQZzaGllbGQSYW5nbGUtY2lyY2xlZC1sZWZ0E2FuZ2xlLWNpcmNsZWQtcmlnaHQMeW91dHViZS1wbGF5CWJpdGJ1Y2tldAd3aW5kb3dzC2RvdC1jaXJjbGVkCndoZWVsY2hhaXIEYmFuawZnb29nbGUPYnVpbGRpbmctZmlsbGVkCGRhdGFiYXNlCGxpZmVidW95BmhlYWRlcgpiaW5vY3VsYXJzCmNoYXJ0LWFyZWEHYm9vbGVhbglwaW50ZXJlc3QGbWVkaXVtBmdpdGxhYgh0ZWxlZ3JhbQAAAAEAAf//AA8AAAAAAAAAAAAAAAAAAAAAsAAsILAAVVhFWSAgS7gADlFLsAZTWliwNBuwKFlgZiCKVViwAiVhuQgACABjYyNiGyEhsABZsABDI0SyAAEAQ2BCLbABLLAgYGYtsAIsIyEjIS2wAywgZLMDFBUAQkOwE0MgYGBCsQIUQ0KxJQNDsAJDVHggsAwjsAJDQ2FksARQeLICAgJDYEKwIWUcIbACQ0OyDhUBQhwgsAJDI0KyEwETQ2BCI7AAUFhlWbIWAQJDYEItsAQssAMrsBVDWCMhIyGwFkNDI7AAUFhlWRsgZCCwwFCwBCZasigBDUNFY0WwBkVYIbADJVlSW1ghIyEbilggsFBQWCGwQFkbILA4UFghsDhZWSCxAQ1DRWNFYWSwKFBYIbEBDUNFY0UgsDBQWCGwMFkbILDAUFggZiCKimEgsApQWGAbILAgUFghsApgGyCwNlBYIbA2YBtgWVlZG7ACJbAMQ2OwAFJYsABLsApQWCGwDEMbS7AeUFghsB5LYbgQ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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;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.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-hackernews:before{content:'\e850'}.icon-reddit:before{content:'\e851'}.icon-string:before{content:'\e852'}.icon-integer:before{content:'\e853'}.icon-float:before{content:'\e854'}.icon-ip:before{content:'\e855'}.icon-more:before{content:'\e856'}.icon-key:before{content:'\e857'}.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-youtube-play:before{content:'\f16a'}.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-boolean:before{content:'\f205'}.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;object-fit:contain}.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:calc(100% + 6px);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:100%;content:"";position:absolute;z-index:99;right:3px}.tooltip.down:hover:after{top:calc(100% + 6px);bottom:inherit}.tooltip.down:hover:before{top:100%;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;border-bottom:none;box-shadow:0 0 3px rgba(0,0,0,.05);display:block;padding:30px;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}.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}.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:visible;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 .dashboard .chart-bar{height:4rem;width:auto;display:flex;align-items:flex-end}@media only screen and (min-width:1199px){.console .dashboard .chart-bar{padding-right:15px}}.console .dashboard .chart-bar .bar{width:12.5%;background-color:var(--config-color-chart-fade);margin:0 2px;border-top:2px solid var(--config-color-chart)}.console .dashboard .chart-bar .bar:hover{background-color:var(--config-color-chart)}.console .dashboard .chart-bar .bar.bar-100{height:100%}.console .dashboard .chart-bar .bar.bar-90{height:90%}.console .dashboard .chart-bar .bar.bar-80{height:80%}.console .dashboard .chart-bar .bar.bar-70{height:70%}.console .dashboard .chart-bar .bar.bar-60{height:60%}.console .dashboard .chart-bar .bar.bar-50{height:50%}.console .dashboard .chart-bar .bar.bar-40{height:40%}.console .dashboard .chart-bar .bar.bar-30{height:30%}.console .dashboard .chart-bar .bar.bar-20{height:20%}.console .dashboard .chart-bar .bar.bar-10{height:10%}.console .dashboard .chart-bar .bar.bar-0{height:0%}.console .dashboard .chart-bar .bar.bar-0{border-top:1px solid var(--config-color-chart)}.console .dashboard .chart-bar .bar.bar-5{height:5%}.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:var(--config-color-chart)}.console .chart-notes li.blue::before,.console .chart-notes li:nth-child(1)::before{background:var(--config-color-chart)}.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;border-bottom:none;box-shadow:0 0 3px rgba(0,0,0,.05);display:block;padding:30px}.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}}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 From e2297da3da5bc6652bff67aea8c63c8f7b6512f7 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Fri, 17 Dec 2021 11:41:26 +0100 Subject: [PATCH 102/107] feat: add more arrow functions --- app/controllers/api/avatars.php | 12 +++------- app/http.php | 22 ++++--------------- app/init.php | 4 +--- app/realtime.php | 19 ++++------------ .../Realtime/RealtimeCustomClientTest.php | 2 +- 5 files changed, 13 insertions(+), 46 deletions(-) diff --git a/app/controllers/api/avatars.php b/app/controllers/api/avatars.php index f5f40cd3cd..161e87b130 100644 --- a/app/controllers/api/avatars.php +++ b/app/controllers/api/avatars.php @@ -95,9 +95,7 @@ App::get('/v1/avatars/credit-cards/:code') ->param('height', 100, new Range(0, 2000), 'Image height. Pass an integer between 0 to 2000. Defaults to 100.', true) ->param('quality', 100, new Range(0, 100), 'Image quality. Pass an integer between 0 to 100. Defaults to 100.', true) ->inject('response') - ->action(function ($code, $width, $height, $quality, $response) use ($avatarCallback) { - return $avatarCallback('credit-cards', $code, $width, $height, $quality, $response); - }); + ->action(fn($code, $width, $height, $quality, $response) => $avatarCallback('credit-cards', $code, $width, $height, $quality, $response)); App::get('/v1/avatars/browsers/:code') ->desc('Get Browser Icon') @@ -115,9 +113,7 @@ App::get('/v1/avatars/browsers/:code') ->param('height', 100, new Range(0, 2000), 'Image height. Pass an integer between 0 to 2000. Defaults to 100.', true) ->param('quality', 100, new Range(0, 100), 'Image quality. Pass an integer between 0 to 100. Defaults to 100.', true) ->inject('response') - ->action(function ($code, $width, $height, $quality, $response) use ($avatarCallback) { - return $avatarCallback('browsers', $code, $width, $height, $quality, $response); - }); + ->action(fn($code, $width, $height, $quality, $response) => $avatarCallback('browsers', $code, $width, $height, $quality, $response)); App::get('/v1/avatars/flags/:code') ->desc('Get Country Flag') @@ -135,9 +131,7 @@ App::get('/v1/avatars/flags/:code') ->param('height', 100, new Range(0, 2000), 'Image height. Pass an integer between 0 to 2000. Defaults to 100.', true) ->param('quality', 100, new Range(0, 100), 'Image quality. Pass an integer between 0 to 100. Defaults to 100.', true) ->inject('response') - ->action(function ($code, $width, $height, $quality, $response) use ($avatarCallback) { - return $avatarCallback('flags', $code, $width, $height, $quality, $response); - }); + ->action(fn($code, $width, $height, $quality, $response) => $avatarCallback('flags', $code, $width, $height, $quality, $response)); App::get('/v1/avatars/image') ->desc('Get Image from URL') diff --git a/app/http.php b/app/http.php index 28b070d3a4..78152126be 100644 --- a/app/http.php +++ b/app/http.php @@ -73,17 +73,8 @@ $http->on('start', function (Server $http) use ($payloadSize, $register) { } } while ($attempts < $max); - App::setResource('db', function () use (&$db) { - return $db; - }); - - App::setResource('cache', function () use (&$redis) { - return $redis; - }); - - App::setResource('app', function() use (&$app) { - return $app; - }); + App::setResource('db', fn() => $db); + App::setResource('cache', fn() => $redis); $dbForConsole = $app->getResource('dbForConsole'); /** @var Utopia\Database\Database $dbForConsole */ @@ -170,14 +161,9 @@ $http->on('request', function (SwooleRequest $swooleRequest, SwooleResponse $swo $db = $register->get('dbPool')->get(); $redis = $register->get('redisPool')->get(); - App::setResource('db', function () use (&$db) { - return $db; - }); + App::setResource('db', fn() => $db); + App::setResource('cache', fn() => $redis); - App::setResource('cache', function () use (&$redis) { - return $redis; - }); - try { Authorization::cleanRoles(); Authorization::setRole('role:all'); diff --git a/app/init.php b/app/init.php index 45cdf438b6..e97e51ae1f 100644 --- a/app/init.php +++ b/app/init.php @@ -543,9 +543,7 @@ Locale::setLanguageFromJSON('zh-tw', __DIR__.'/config/locale/translations/zh-tw. // Runtime Execution -App::setResource('register', function() use ($register) { - return $register; -}); +App::setResource('register', fn() => $register); App::setResource('layout', function($locale) { $layout = new View(__DIR__.'/views/layouts/default.phtml'); diff --git a/app/realtime.php b/app/realtime.php index 80d1494208..5215cd2477 100644 --- a/app/realtime.php +++ b/app/realtime.php @@ -323,21 +323,10 @@ $server->onOpen(function (int $connection, SwooleRequest $request) use ($server, Console::info("Connection open (user: {$connection})"); - App::setResource('db', function () use (&$db) { - return $db; - }); - - App::setResource('cache', function () use (&$redis) { - return $redis; - }); - - App::setResource('request', function () use ($request) { - return $request; - }); - - App::setResource('response', function () use ($response) { - return $response; - }); + App::setResource('db', fn() => $db); + App::setResource('cache', fn() => $redis); + App::setResource('request', fn() => $request); + App::setResource('response', fn() => $response); try { /** @var \Utopia\Database\Document $user */ diff --git a/tests/e2e/Services/Realtime/RealtimeCustomClientTest.php b/tests/e2e/Services/Realtime/RealtimeCustomClientTest.php index 6b815c9043..0c5b7b61e7 100644 --- a/tests/e2e/Services/Realtime/RealtimeCustomClientTest.php +++ b/tests/e2e/Services/Realtime/RealtimeCustomClientTest.php @@ -569,7 +569,7 @@ class RealtimeCustomClientTest extends Scope 'x-appwrite-project' => $this->getProject()['$id'], 'x-appwrite-key' => $this->getProject()['apiKey'] ]), [ - 'attributeId' => 'name', + 'key' => 'name', 'size' => 256, 'required' => true, ]); From 7f1fd96657c105763831374d539bdf20fc366d15 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Fri, 17 Dec 2021 12:16:53 +0100 Subject: [PATCH 103/107] fix: rebuild js and specs --- app/config/specs/0.12.x.client.json | 2 +- app/config/specs/0.12.x.console.json | 2 +- app/config/specs/0.12.x.server.json | 2 +- app/views/console/database/collection.phtml | 44 +++--- public/scripts/dependencies/appwrite.js | 148 ++++++++++---------- 5 files changed, 99 insertions(+), 99 deletions(-) diff --git a/app/config/specs/0.12.x.client.json b/app/config/specs/0.12.x.client.json index 1e2165c018..313ef3445c 100644 --- a/app/config/specs/0.12.x.client.json +++ b/app/config/specs/0.12.x.client.json @@ -1 +1 @@ -{"swagger":"2.0","info":{"version":"0.12.0","title":"Appwrite","description":"Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)","termsOfService":"https:\/\/appwrite.io\/policy\/terms","contact":{"name":"Appwrite Team","url":"https:\/\/appwrite.io\/support","email":"team@appwrite.io"},"license":{"name":"BSD-3-Clause","url":"https:\/\/raw.githubusercontent.com\/appwrite\/appwrite\/master\/LICENSE"}},"host":"appwrite.io","basePath":"\/v1","schemes":["https"],"consumes":["application\/json","multipart\/form-data"],"produces":["application\/json"],"securityDefinitions":{"Project":{"type":"apiKey","name":"X-Appwrite-Project","description":"Your project ID","in":"header","x-appwrite":{"demo":"5df5acd0d48c2"}},"JWT":{"type":"apiKey","name":"X-Appwrite-JWT","description":"Your secret JSON Web Token","in":"header","x-appwrite":{"demo":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."}},"Locale":{"type":"apiKey","name":"X-Appwrite-Locale","description":"","in":"header","x-appwrite":{"demo":"en"}}},"paths":{"\/account":{"get":{"summary":"Get Account","operationId":"accountGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user data as JSON object.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"get","weight":47,"cookies":false,"type":"","demo":"account\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]},"post":{"summary":"Create Account","operationId":"accountCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to allow a new user to register a new account in your project. After the user registration completes successfully, you can use the [\/account\/verfication](\/docs\/client\/account#accountCreateVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](\/docs\/client\/account#accountCreateSession).","responses":{"201":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"create","weight":37,"cookies":false,"type":"","demo":"account\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"},"name":{"type":"string","description":"User name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["userId","email","password"]}}]},"delete":{"summary":"Delete Account","operationId":"accountDelete","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Delete a currently logged in user account. Behind the scene, the user record is not deleted but permanently blocked from any access. This is done to avoid deleted accounts being overtaken by new users with the same email address. Any user-related resources like documents or storage files should be deleted separately.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":56,"cookies":false,"type":"","demo":"account\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/account\/email":{"patch":{"summary":"Update Account Email","operationId":"accountUpdateEmail","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account email address. After changing user address, the user confirmation status will get reset. A new confirmation email is not sent automatically however you can use the send confirmation email endpoint again to send the confirmation email. For security measures, user password is required to complete this request.\nThis endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.\n","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateEmail","weight":54,"cookies":false,"type":"","demo":"account\/update-email.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-email.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["email","password"]}}]}},"\/account\/jwt":{"post":{"summary":"Create Account JWT","operationId":"accountCreateJWT","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to create a JSON Web Token. You can use the resulting JWT to authenticate on behalf of the current user when working with the Appwrite server-side API and SDKs. The JWT secret is valid for 15 minutes from its creation and will be invalid if the user will logout in that time frame.","responses":{"201":{"description":"JWT","schema":{"$ref":"#\/definitions\/jwt"}}},"x-appwrite":{"method":"createJWT","weight":46,"cookies":false,"type":"","demo":"account\/create-j-w-t.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-jwt.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{userId}","scope":"account","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}]}},"\/account\/logs":{"get":{"summary":"Get Account Logs","operationId":"accountGetLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user list of latest security activity logs. Each log returns user IP address, location and date and time of log.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"getLogs","weight":50,"cookies":false,"type":"","demo":"account\/get-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"limit","description":"Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/account\/name":{"patch":{"summary":"Update Account Name","operationId":"accountUpdateName","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account name.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateName","weight":52,"cookies":false,"type":"","demo":"account\/update-name.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-name.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"User name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]}},"\/account\/password":{"patch":{"summary":"Update Account Password","operationId":"accountUpdatePassword","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user password. For validation, user is required to pass in the new password, and the old password. For users created with OAuth and Team Invites, oldPassword is optional.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePassword","weight":53,"cookies":false,"type":"","demo":"account\/update-password.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-password.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"},"oldPassword":{"type":"string","description":"Old user password. Must be at least 8 chars.","default":"","x-example":"password"}},"required":["password"]}}]}},"\/account\/prefs":{"get":{"summary":"Get Account Preferences","operationId":"accountGetPrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user preferences as a key-value object.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"getPrefs","weight":48,"cookies":false,"type":"","demo":"account\/get-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]},"patch":{"summary":"Update Account Preferences","operationId":"accountUpdatePrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account preferences. You can pass only the specific settings you wish to update.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePrefs","weight":55,"cookies":false,"type":"","demo":"account\/update-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"prefs":{"type":"object","description":"Prefs key-value JSON object.","default":{},"x-example":"{}"}},"required":["prefs"]}}]}},"\/account\/recovery":{"post":{"summary":"Create Password Recovery","operationId":"accountCreateRecovery","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Sends the user an email with a temporary secret key for password reset. When the user clicks the confirmation link he is redirected back to your app password reset URL with the secret key and email address values attached to the URL query string. Use the query string params to submit a request to the [PUT \/account\/recovery](\/docs\/client\/account#accountUpdateRecovery) endpoint to complete the process. The verification link sent to the user's email address is valid for 1 hour.","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createRecovery","weight":59,"cookies":false,"type":"","demo":"account\/create-recovery.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-recovery.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"url":{"type":"string","description":"URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"}},"required":["email","url"]}}]},"put":{"summary":"Create Password Recovery (confirmation)","operationId":"accountUpdateRecovery","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/recovery](\/docs\/client\/account#accountCreateRecovery) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.","responses":{"200":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"updateRecovery","weight":60,"cookies":false,"type":"","demo":"account\/update-recovery.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-recovery.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User account UID address.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Valid reset token.","default":null,"x-example":"[SECRET]"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"},"passwordAgain":{"type":"string","description":"New password again. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["userId","secret","password","passwordAgain"]}}]}},"\/account\/sessions":{"get":{"summary":"Get Account Sessions","operationId":"accountGetSessions","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user list of active sessions across different devices.","responses":{"200":{"description":"Sessions List","schema":{"$ref":"#\/definitions\/sessionList"}}},"x-appwrite":{"method":"getSessions","weight":49,"cookies":false,"type":"","demo":"account\/get-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]},"post":{"summary":"Create Account Session","operationId":"accountCreateSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Allow the user to login into their account by providing a valid email and password combination. This route will create a new session for the user.","responses":{"201":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"createSession","weight":38,"cookies":false,"type":"","demo":"account\/create-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["email","password"]}}]},"delete":{"summary":"Delete All Account Sessions","operationId":"accountDeleteSessions","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Delete all sessions from the user account and remove any sessions cookies from the end client.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSessions","weight":58,"cookies":false,"type":"","demo":"account\/delete-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-sessions.md","rate-limit":100,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/account\/sessions\/anonymous":{"post":{"summary":"Create Anonymous Session","operationId":"accountCreateAnonymousSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to allow a new user to register an anonymous account in your project. This route will also create a new session for the user. To allow the new user to convert an anonymous account to a normal account, you need to update its [email and password](\/docs\/client\/account#accountUpdateEmail) or create an [OAuth2 session](\/docs\/client\/account#accountCreateOAuth2Session).","responses":{"201":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"createAnonymousSession","weight":45,"cookies":false,"type":"","demo":"account\/create-anonymous-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session-anonymous.md","rate-limit":50,"rate-time":3600,"rate-key":"ip:{ip}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}]}},"\/account\/sessions\/magic-url":{"post":{"summary":"Create Magic URL session","operationId":"accountCreateMagicURLSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Sends the user an email with a secret key for creating a session. When the user clicks the link in the email, the user is redirected back to the URL you provided with the secret key and userId values attached to the URL query string. Use the query string parameters to submit a request to the [PUT \/account\/sessions\/magic-url](\/docs\/client\/account#accountUpdateMagicURLSession) endpoint to complete the login process. The link sent to the user's email address is valid for 1 hour. If you are on a mobile device you can leave the URL parameter empty, so that the login completion will be handled by your Appwrite instance by default.","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createMagicURLSession","weight":43,"cookies":false,"type":"","demo":"account\/create-magic-u-r-l-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-magic-url-session.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"url":{"type":"string","description":"URL to redirect the user back to your app from the magic URL login. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":"","x-example":"https:\/\/example.com"}},"required":["userId","email"]}}]},"put":{"summary":"Create Magic URL session (confirmation)","operationId":"accountUpdateMagicURLSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete creating the session with the Magic URL. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/sessions\/magic-url](\/docs\/client\/account#accountCreateMagicURLSession) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.","responses":{"200":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"updateMagicURLSession","weight":44,"cookies":false,"type":"","demo":"account\/update-magic-u-r-l-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-magic-url-session.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User unique ID.","default":null,"x-example":null},"secret":{"type":"string","description":"Valid verification token.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/account\/sessions\/oauth2\/{provider}":{"get":{"summary":"Create Account Session with OAuth2","operationId":"accountCreateOAuth2Session","consumes":["application\/json"],"produces":["text\/html"],"tags":["account"],"description":"Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the email received from the OAuth2 provider and attach the new session to the existing user. If no matching user is found - the server will create a new user..\n","responses":{"301":{"description":"No content"}},"x-appwrite":{"method":"createOAuth2Session","weight":39,"cookies":false,"type":"webAuth","demo":"account\/create-o-auth2session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session-oauth2.md","rate-limit":50,"rate-time":3600,"rate-key":"ip:{ip}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"provider","description":"OAuth2 Provider. Currently, supported providers are: amazon, apple, bitbucket, bitly, box, discord, dropbox, facebook, github, gitlab, google, linkedin, microsoft, paypal, paypalSandbox, salesforce, slack, spotify, tradeshift, tradeshiftBox, twitch, vk, yahoo, yandex, wordpress.","required":true,"type":"string","x-example":"amazon","in":"path"},{"name":"success","description":"URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","required":false,"type":"string","format":"url","x-example":"https:\/\/example.com","default":"","in":"query"},{"name":"failure","description":"URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","required":false,"type":"string","format":"url","x-example":"https:\/\/example.com","default":"","in":"query"},{"name":"scopes","description":"A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"}]}},"\/account\/sessions\/{sessionId}":{"get":{"summary":"Get Session By ID","operationId":"accountGetSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to get a logged in user's session using a Session ID. Inputting 'current' will return the current session being used.","responses":{"200":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"getSession","weight":51,"cookies":false,"type":"","demo":"account\/get-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-session.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"sessionId","description":"Session unique ID. Use the string 'current' to get the current device session.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]},"delete":{"summary":"Delete Account Session","operationId":"accountDeleteSession","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Use this endpoint to log out the currently logged in user from all their account sessions across all of their different devices. When using the option id argument, only the session unique ID provider will be deleted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSession","weight":57,"cookies":false,"type":"","demo":"account\/delete-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-session.md","rate-limit":100,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"sessionId","description":"Session unique ID. Use the string 'current' to delete the current device session.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]}},"\/account\/verification":{"post":{"summary":"Create Email Verification","operationId":"accountCreateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](\/docs\/client\/account#accountUpdateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createVerification","weight":61,"cookies":false,"type":"","demo":"account\/create-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-verification.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{userId}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"url":{"type":"string","description":"URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"}},"required":["url"]}}]},"put":{"summary":"Create Email Verification (confirmation)","operationId":"accountUpdateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.","responses":{"200":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"updateVerification","weight":62,"cookies":false,"type":"","demo":"account\/update-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-verification.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User unique ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Valid verification token.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/avatars\/browsers\/{code}":{"get":{"summary":"Get Browser Icon","operationId":"avatarsGetBrowser","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user \/account\/sessions endpoint. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getBrowser","weight":64,"cookies":false,"type":"location","demo":"avatars\/get-browser.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-browser.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"code","description":"Browser Code.","required":true,"type":"string","x-example":"aa","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/credit-cards\/{code}":{"get":{"summary":"Get Credit Card Icon","operationId":"avatarsGetCreditCard","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getCreditCard","weight":63,"cookies":false,"type":"location","demo":"avatars\/get-credit-card.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-credit-card.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"code","description":"Credit Card Code. Possible values: amex, argencard, cabal, censosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro.","required":true,"type":"string","x-example":"amex","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/favicon":{"get":{"summary":"Get Favicon","operationId":"avatarsGetFavicon","consumes":["application\/json"],"produces":["image\/*"],"tags":["avatars"],"description":"Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFavicon","weight":67,"cookies":false,"type":"location","demo":"avatars\/get-favicon.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-favicon.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"url","description":"Website URL which you want to fetch the favicon from.","required":true,"type":"string","format":"url","x-example":"https:\/\/example.com","in":"query"}]}},"\/avatars\/flags\/{code}":{"get":{"summary":"Get Country Flag","operationId":"avatarsGetFlag","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFlag","weight":65,"cookies":false,"type":"location","demo":"avatars\/get-flag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-flag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"code","description":"Country Code. ISO Alpha-2 country code format.","required":true,"type":"string","x-example":"af","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/image":{"get":{"summary":"Get Image from URL","operationId":"avatarsGetImage","consumes":["application\/json"],"produces":["image\/*"],"tags":["avatars"],"description":"Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getImage","weight":66,"cookies":false,"type":"location","demo":"avatars\/get-image.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-image.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"url","description":"Image URL which you want to crop.","required":true,"type":"string","format":"url","x-example":"https:\/\/example.com","in":"query"},{"name":"width","description":"Resize preview image width, Pass an integer between 0 to 2000.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"},{"name":"height","description":"Resize preview image height, Pass an integer between 0 to 2000.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"}]}},"\/avatars\/initials":{"get":{"summary":"Get User Initials","operationId":"avatarsGetInitials","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.\n\nYou can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getInitials","weight":69,"cookies":false,"type":"location","demo":"avatars\/get-initials.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-initials.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"name","description":"Full Name. When empty, current user name or email will be used. Max length: 128 chars.","required":false,"type":"string","x-example":"[NAME]","default":"","in":"query"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":500,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":500,"in":"query"},{"name":"color","description":"Changes text color. By default a random color will be picked and stay will persistent to the given name.","required":false,"type":"string","default":"","in":"query"},{"name":"background","description":"Changes background color. By default a random color will be picked and stay will persistent to the given name.","required":false,"type":"string","default":"","in":"query"}]}},"\/avatars\/qr":{"get":{"summary":"Get QR Code","operationId":"avatarsGetQR","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getQR","weight":68,"cookies":false,"type":"location","demo":"avatars\/get-q-r.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-qr.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"text","description":"Plain text to be converted to QR code image.","required":true,"type":"string","x-example":"[TEXT]","in":"query"},{"name":"size","description":"QR code size. Pass an integer between 0 to 1000. Defaults to 400.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"},{"name":"margin","description":"Margin from edge. Pass an integer between 0 to 10. Defaults to 1.","required":false,"type":"integer","format":"int32","x-example":0,"default":1,"in":"query"},{"name":"download","description":"Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.","required":false,"type":"boolean","x-example":false,"default":false,"in":"query"}]}},"\/database\/collections\/{collectionId}\/documents":{"get":{"summary":"List Documents","operationId":"databaseListDocuments","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a list of all the user documents. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's documents. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Documents List","schema":{"$ref":"#\/definitions\/documentList"}}},"x-appwrite":{"method":"listDocuments","weight":94,"cookies":false,"type":"","demo":"database\/list-documents.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-documents.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"queries","description":"Array of query strings.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"},{"name":"limit","description":"Maximum number of documents to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the document used as the starting point for the query, excluding the document itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderAttributes","description":"Array of attributes used to sort results.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"},{"name":"orderTypes","description":"Array of order directions for sorting attribtues. Possible values are DESC for descending order, or ASC for ascending order.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"}]},"post":{"summary":"Create Document","operationId":"databaseCreateDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](\/docs\/server\/database#databaseCreateCollection) API or directly from your database console.","responses":{"201":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"createDocument","weight":93,"cookies":false,"type":"","demo":"database\/create-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection with validation rules using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"documentId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"data":{"type":"object","description":"Document data as JSON object.","default":{},"x-example":"{}"},"read":{"type":"array","description":"An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["documentId","data"]}}]}},"\/database\/collections\/{collectionId}\/documents\/{documentId}":{"get":{"summary":"Get Document","operationId":"databaseGetDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a document by its unique ID. This endpoint response returns a JSON object with the document data.","responses":{"200":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"getDocument","weight":95,"cookies":false,"type":"","demo":"database\/get-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"}]},"patch":{"summary":"Update Document","operationId":"databaseUpdateDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.","responses":{"200":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"updateDocument","weight":97,"cookies":false,"type":"","demo":"database\/update-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/update-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection with validation rules using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"data":{"type":"object","description":"Document data as JSON object.","default":{},"x-example":"{}"},"read":{"type":"array","description":"An array of strings with read permissions. By default inherits the existing read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default inherits the existing write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["data"]}}]},"delete":{"summary":"Delete Document","operationId":"databaseDeleteDocument","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"Delete a document by its unique ID. This endpoint deletes only the parent documents, its attributes and relations to other documents. Child documents **will not** be deleted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteDocument","weight":98,"cookies":false,"type":"","demo":"database\/delete-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"}]}},"\/functions\/{functionId}\/executions":{"get":{"summary":"List Executions","operationId":"functionsListExecutions","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the current user function execution logs. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's executions. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Executions List","schema":{"$ref":"#\/definitions\/executionList"}}},"x-appwrite":{"method":"listExecutions","weight":199,"cookies":false,"type":"","demo":"functions\/list-executions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-executions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"execution.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"cursor","description":"ID of the execution used as the starting point for the query, excluding the execution itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"}]},"post":{"summary":"Create Execution","operationId":"functionsCreateExecution","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.","responses":{"201":{"description":"Execution","schema":{"$ref":"#\/definitions\/execution"}}},"x-appwrite":{"method":"createExecution","weight":198,"cookies":false,"type":"","demo":"functions\/create-execution.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-execution.md","rate-limit":60,"rate-time":60,"rate-key":"url:{url},ip:{ip}","scope":"execution.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"data":{"type":"string","description":"String of custom data to send to function.","default":"","x-example":"[DATA]"}}}}]}},"\/functions\/{functionId}\/executions\/{executionId}":{"get":{"summary":"Get Execution","operationId":"functionsGetExecution","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a function execution log by its unique ID.","responses":{"200":{"description":"Execution","schema":{"$ref":"#\/definitions\/execution"}}},"x-appwrite":{"method":"getExecution","weight":200,"cookies":false,"type":"","demo":"functions\/get-execution.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-execution.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"execution.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"executionId","description":"Execution unique ID.","required":true,"type":"string","x-example":"[EXECUTION_ID]","in":"path"}]}},"\/locale":{"get":{"summary":"Get User Locale","operationId":"localeGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.\n\n([IP Geolocation by DB-IP](https:\/\/db-ip.com))","responses":{"200":{"description":"Locale","schema":{"$ref":"#\/definitions\/locale"}}},"x-appwrite":{"method":"get","weight":99,"cookies":false,"type":"","demo":"locale\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/locale\/continents":{"get":{"summary":"List Continents","operationId":"localeGetContinents","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all continents. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Continents List","schema":{"$ref":"#\/definitions\/continentList"}}},"x-appwrite":{"method":"getContinents","weight":103,"cookies":false,"type":"","demo":"locale\/get-continents.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-continents.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/locale\/countries":{"get":{"summary":"List Countries","operationId":"localeGetCountries","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Countries List","schema":{"$ref":"#\/definitions\/countryList"}}},"x-appwrite":{"method":"getCountries","weight":100,"cookies":false,"type":"","demo":"locale\/get-countries.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/locale\/countries\/eu":{"get":{"summary":"List EU Countries","operationId":"localeGetCountriesEU","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries that are currently members of the EU. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Countries List","schema":{"$ref":"#\/definitions\/countryList"}}},"x-appwrite":{"method":"getCountriesEU","weight":101,"cookies":false,"type":"","demo":"locale\/get-countries-e-u.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries-eu.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/locale\/countries\/phones":{"get":{"summary":"List Countries Phone Codes","operationId":"localeGetCountriesPhones","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries phone codes. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Phones List","schema":{"$ref":"#\/definitions\/phoneList"}}},"x-appwrite":{"method":"getCountriesPhones","weight":102,"cookies":false,"type":"","demo":"locale\/get-countries-phones.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries-phones.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/locale\/currencies":{"get":{"summary":"List Currencies","operationId":"localeGetCurrencies","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Currencies List","schema":{"$ref":"#\/definitions\/currencyList"}}},"x-appwrite":{"method":"getCurrencies","weight":104,"cookies":false,"type":"","demo":"locale\/get-currencies.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-currencies.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/locale\/languages":{"get":{"summary":"List Languages","operationId":"localeGetLanguages","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.","responses":{"200":{"description":"Languages List","schema":{"$ref":"#\/definitions\/languageList"}}},"x-appwrite":{"method":"getLanguages","weight":105,"cookies":false,"type":"","demo":"locale\/get-languages.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-languages.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/storage\/files":{"get":{"summary":"List Files","operationId":"storageListFiles","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Get a list of all the user files. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's files. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Files List","schema":{"$ref":"#\/definitions\/fileList"}}},"x-appwrite":{"method":"listFiles","weight":150,"cookies":false,"type":"","demo":"storage\/list-files.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the file used as the starting point for the query, excluding the file itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create File","operationId":"storageCreateFile","consumes":["multipart\/form-data"],"produces":["application\/json"],"tags":["storage"],"description":"Create a new file. The user who creates the file will automatically be assigned to read and write access unless he has passed custom values for read and write arguments.","responses":{"201":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"createFile","weight":149,"cookies":false,"type":"upload","demo":"storage\/create-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","required":true,"type":"string","in":"formData"},{"name":"file","description":"Binary file.","required":true,"type":"file","in":"formData"},{"name":"read","description":"An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"in":"formData"},{"name":"write","description":"An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"in":"formData"}]}},"\/storage\/files\/{fileId}":{"get":{"summary":"Get File","operationId":"storageGetFile","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.","responses":{"200":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"getFile","weight":151,"cookies":false,"type":"","demo":"storage\/get-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]},"put":{"summary":"Update File","operationId":"storageUpdateFile","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Update a file by its unique ID. Only users with write permissions have access to update this resource.","responses":{"200":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"updateFile","weight":155,"cookies":false,"type":"","demo":"storage\/update-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"read":{"type":"array","description":"An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["read","write"]}}]},"delete":{"summary":"Delete File","operationId":"storageDeleteFile","consumes":["application\/json"],"produces":[],"tags":["storage"],"description":"Delete a file by its unique ID. Only users with write permissions have access to delete this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteFile","weight":156,"cookies":false,"type":"","demo":"storage\/delete-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/files\/{fileId}\/download":{"get":{"summary":"Get File for Download","operationId":"storageGetFileDownload","consumes":["application\/json"],"produces":["*\/*"],"tags":["storage"],"description":"Get a file content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.","responses":{"200":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getFileDownload","weight":153,"cookies":false,"type":"location","demo":"storage\/get-file-download.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/files\/{fileId}\/preview":{"get":{"summary":"Get File Preview","operationId":"storageGetFilePreview","consumes":["application\/json"],"produces":["image\/*"],"tags":["storage"],"description":"Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFilePreview","weight":152,"cookies":false,"type":"location","demo":"storage\/get-file-preview.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"},{"name":"width","description":"Resize preview image width, Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"height","description":"Resize preview image height, Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"gravity","description":"Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right","required":false,"type":"string","x-example":"center","default":"center","in":"query"},{"name":"quality","description":"Preview image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"borderWidth","description":"Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"borderColor","description":"Preview image border color. Use a valid HEX color, no # is needed for prefix.","required":false,"type":"string","default":"","in":"query"},{"name":"borderRadius","description":"Preview image border radius in pixels. Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"opacity","description":"Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.","required":false,"type":"number","format":"float","x-example":0,"default":1,"in":"query"},{"name":"rotation","description":"Preview image rotation in degrees. Pass an integer between -360 and 360.","required":false,"type":"integer","format":"int32","x-example":-360,"default":0,"in":"query"},{"name":"background","description":"Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.","required":false,"type":"string","default":"","in":"query"},{"name":"output","description":"Output format type (jpeg, jpg, png, gif and webp).","required":false,"type":"string","x-example":"jpg","default":"","in":"query"}]}},"\/storage\/files\/{fileId}\/view":{"get":{"summary":"Get File for View","operationId":"storageGetFileView","consumes":["application\/json"],"produces":["*\/*"],"tags":["storage"],"description":"Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.","responses":{"200":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getFileView","weight":154,"cookies":false,"type":"location","demo":"storage\/get-file-view.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/teams":{"get":{"summary":"List Teams","operationId":"teamsList","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a list of all the current user teams. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's teams. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Teams List","schema":{"$ref":"#\/definitions\/teamList"}}},"x-appwrite":{"method":"list","weight":160,"cookies":false,"type":"","demo":"teams\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the team used as the starting point for the query, excluding the team itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Team","operationId":"teamsCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Create a new team. The user who creates the team will automatically be assigned as the owner of the team. The team owner can invite new members, who will be able add new owners and update or delete the team from your project.","responses":{"201":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"create","weight":159,"cookies":false,"type":"","demo":"teams\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"teamId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Team name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"roles":{"type":"array","description":"Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":["owner"],"x-example":null,"items":{"type":"string"}}},"required":["teamId","name"]}}]}},"\/teams\/{teamId}":{"get":{"summary":"Get Team","operationId":"teamsGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team by its unique ID. All team members have read access for this resource.","responses":{"200":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"get","weight":161,"cookies":false,"type":"","demo":"teams\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"}]},"put":{"summary":"Update Team","operationId":"teamsUpdate","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Update a team by its unique ID. Only team owners have write access for this resource.","responses":{"200":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"update","weight":162,"cookies":false,"type":"","demo":"teams\/update.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Team name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]},"delete":{"summary":"Delete Team","operationId":"teamsDelete","consumes":["application\/json"],"produces":[],"tags":["teams"],"description":"Delete a team by its unique ID. Only team owners have write access for this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":163,"cookies":false,"type":"","demo":"teams\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"}]}},"\/teams\/{teamId}\/memberships":{"get":{"summary":"Get Team Memberships","operationId":"teamsGetMemberships","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team members by the team unique ID. All team members have read access for this list of resources.","responses":{"200":{"description":"Memberships List","schema":{"$ref":"#\/definitions\/membershipList"}}},"x-appwrite":{"method":"getMemberships","weight":165,"cookies":false,"type":"","demo":"teams\/get-memberships.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-members.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the membership used as the starting point for the query, excluding the membership itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Team Membership","operationId":"teamsCreateMembership","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"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.\n\nUse 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.\n\nPlease 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.","responses":{"201":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"createMembership","weight":164,"cookies":false,"type":"","demo":"teams\/create-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team-membership.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"New team member email.","default":null,"x-example":"email@example.com"},"roles":{"type":"array","description":"Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":null,"x-example":null,"items":{"type":"string"}},"url":{"type":"string","description":"URL to redirect the user back to your app from the invitation email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"},"name":{"type":"string","description":"New team member name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["email","roles","url"]}}]}},"\/teams\/{teamId}\/memberships\/{membershipId}":{"get":{"summary":"Get Team Membership","operationId":"teamsGetMembership","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team member by the membership unique id. All team members have read access for this resource.","responses":{"200":{"description":"Memberships List","schema":{"$ref":"#\/definitions\/membershipList"}}},"x-appwrite":{"method":"getMembership","weight":166,"cookies":false,"type":"","demo":"teams\/get-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"membership unique ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"}]},"patch":{"summary":"Update Membership Roles","operationId":"teamsUpdateMembershipRoles","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"","responses":{"200":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"updateMembershipRoles","weight":167,"cookies":false,"type":"","demo":"teams\/update-membership-roles.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-roles.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"roles":{"type":"array","description":"Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["roles"]}}]},"delete":{"summary":"Delete Team Membership","operationId":"teamsDeleteMembership","consumes":["application\/json"],"produces":[],"tags":["teams"],"description":"This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteMembership","weight":169,"cookies":false,"type":"","demo":"teams\/delete-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"}]}},"\/teams\/{teamId}\/memberships\/{membershipId}\/status":{"patch":{"summary":"Update Team Membership Status","operationId":"teamsUpdateMembershipStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user.","responses":{"200":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"updateMembershipStatus","weight":168,"cookies":false,"type":"","demo":"teams\/update-membership-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User unique ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Secret key.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}}},"tags":[{"name":"account","description":"The Account service allows you to authenticate and manage a user account."},{"name":"avatars","description":"The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars."},{"name":"database","description":"The Database service allows you to create structured collections of documents, query and filter lists of documents"},{"name":"locale","description":"The Locale service allows you to customize your app based on your users' location."},{"name":"health","description":"The Health service allows you to both validate and monitor your Appwrite server's health."},{"name":"projects","description":"The Project service allows you to manage all the projects in your Appwrite server."},{"name":"storage","description":"The Storage service allows you to manage your project files."},{"name":"teams","description":"The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources"},{"name":"users","description":"The Users service allows you to manage your project users."},{"name":"functions","description":"The Functions Service allows you view, create and manage your Cloud Functions."}],"definitions":{"documentList":{"description":"Documents List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"documents":{"type":"array","description":"List of documents.","items":{"type":"object","$ref":"#\/definitions\/document"},"x-example":""}},"required":["sum","documents"]},"sessionList":{"description":"Sessions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"sessions":{"type":"array","description":"List of sessions.","items":{"type":"object","$ref":"#\/definitions\/session"},"x-example":""}},"required":["sum","sessions"]},"logList":{"description":"Logs List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"logs":{"type":"array","description":"List of logs.","items":{"type":"object","$ref":"#\/definitions\/log"},"x-example":""}},"required":["sum","logs"]},"fileList":{"description":"Files List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"files":{"type":"array","description":"List of files.","items":{"type":"object","$ref":"#\/definitions\/file"},"x-example":""}},"required":["sum","files"]},"teamList":{"description":"Teams List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"teams":{"type":"array","description":"List of teams.","items":{"type":"object","$ref":"#\/definitions\/team"},"x-example":""}},"required":["sum","teams"]},"membershipList":{"description":"Memberships List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"memberships":{"type":"array","description":"List of memberships.","items":{"type":"object","$ref":"#\/definitions\/membership"},"x-example":""}},"required":["sum","memberships"]},"executionList":{"description":"Executions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"executions":{"type":"array","description":"List of executions.","items":{"type":"object","$ref":"#\/definitions\/execution"},"x-example":""}},"required":["sum","executions"]},"countryList":{"description":"Countries List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"countries":{"type":"array","description":"List of countries.","items":{"type":"object","$ref":"#\/definitions\/country"},"x-example":""}},"required":["sum","countries"]},"continentList":{"description":"Continents List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"continents":{"type":"array","description":"List of continents.","items":{"type":"object","$ref":"#\/definitions\/continent"},"x-example":""}},"required":["sum","continents"]},"languageList":{"description":"Languages List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"languages":{"type":"array","description":"List of languages.","items":{"type":"object","$ref":"#\/definitions\/language"},"x-example":""}},"required":["sum","languages"]},"currencyList":{"description":"Currencies List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"currencies":{"type":"array","description":"List of currencies.","items":{"type":"object","$ref":"#\/definitions\/currency"},"x-example":""}},"required":["sum","currencies"]},"phoneList":{"description":"Phones List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"phones":{"type":"array","description":"List of phones.","items":{"type":"object","$ref":"#\/definitions\/phone"},"x-example":""}},"required":["sum","phones"]},"document":{"description":"Document","type":"object","properties":{"$id":{"type":"string","description":"Document ID.","x-example":"5e5ea5c16897e"},"$collection":{"type":"string","description":"Collection ID.","x-example":"5e5ea5c15117e"},"$read":{"type":"array","description":"Document read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"Document write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"}},"additionalProperties":true,"required":["$id","$collection","$read","$write"]},"log":{"description":"Log","type":"object","properties":{"event":{"type":"string","description":"Event name.","x-example":"account.sessions.create"},"userId":{"type":"string","description":"User ID.","x-example":"610fc2f985ee0"},"userEmail":{"type":"string","description":"User Email.","x-example":"john@appwrite.io"},"userName":{"type":"string","description":"User Name.","x-example":"John Doe"},"mode":{"type":"string","description":"API mode when event triggered.","x-example":"admin"},"ip":{"type":"string","description":"IP session in use when the session was created.","x-example":"127.0.0.1"},"time":{"type":"integer","description":"Log creation time in Unix timestamp.","x-example":1592981250,"format":"int32"},"osCode":{"type":"string","description":"Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).","x-example":"Mac"},"osName":{"type":"string","description":"Operating system name.","x-example":"Mac"},"osVersion":{"type":"string","description":"Operating system version.","x-example":"Mac"},"clientType":{"type":"string","description":"Client type.","x-example":"browser"},"clientCode":{"type":"string","description":"Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).","x-example":"CM"},"clientName":{"type":"string","description":"Client name.","x-example":"Chrome Mobile iOS"},"clientVersion":{"type":"string","description":"Client version.","x-example":"84.0"},"clientEngine":{"type":"string","description":"Client engine name.","x-example":"WebKit"},"clientEngineVersion":{"type":"string","description":"Client engine name.","x-example":"605.1.15"},"deviceName":{"type":"string","description":"Device name.","x-example":"smartphone"},"deviceBrand":{"type":"string","description":"Device brand name.","x-example":"Google"},"deviceModel":{"type":"string","description":"Device model name.","x-example":"Nexus 5"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"}},"required":["event","userId","userEmail","userName","mode","ip","time","osCode","osName","osVersion","clientType","clientCode","clientName","clientVersion","clientEngine","clientEngineVersion","deviceName","deviceBrand","deviceModel","countryCode","countryName"]},"user":{"description":"User","type":"object","properties":{"$id":{"type":"string","description":"User ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"User name.","x-example":"John Doe"},"registration":{"type":"integer","description":"User registration date in Unix timestamp.","x-example":1592981250,"format":"int32"},"status":{"type":"boolean","description":"User status. Pass `true` for enabled and `false` for disabled.","x-example":true},"passwordUpdate":{"type":"integer","description":"Unix timestamp of the most recent password update","x-example":1592981250,"format":"int32"},"email":{"type":"string","description":"User email address.","x-example":"john@appwrite.io"},"emailVerification":{"type":"boolean","description":"Email verification status.","x-example":true},"prefs":{"type":"object","description":"User preferences as a key-value object","x-example":{"theme":"pink","timezone":"UTC"},"items":{"type":"object","$ref":"#\/definitions\/preferences"}}},"required":["$id","name","registration","status","passwordUpdate","email","emailVerification","prefs"]},"preferences":{"description":"Preferences","type":"object","additionalProperties":true},"session":{"description":"Session","type":"object","properties":{"$id":{"type":"string","description":"Session ID.","x-example":"5e5ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5bb8c16897e"},"expire":{"type":"integer","description":"Session expiration date in Unix timestamp.","x-example":1592981250,"format":"int32"},"provider":{"type":"string","description":"Session Provider.","x-example":"email"},"providerUid":{"type":"string","description":"Session Provider User ID.","x-example":"user@example.com"},"providerToken":{"type":"string","description":"Session Provider Token.","x-example":"MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"},"ip":{"type":"string","description":"IP in use when the session was created.","x-example":"127.0.0.1"},"osCode":{"type":"string","description":"Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).","x-example":"Mac"},"osName":{"type":"string","description":"Operating system name.","x-example":"Mac"},"osVersion":{"type":"string","description":"Operating system version.","x-example":"Mac"},"clientType":{"type":"string","description":"Client type.","x-example":"browser"},"clientCode":{"type":"string","description":"Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).","x-example":"CM"},"clientName":{"type":"string","description":"Client name.","x-example":"Chrome Mobile iOS"},"clientVersion":{"type":"string","description":"Client version.","x-example":"84.0"},"clientEngine":{"type":"string","description":"Client engine name.","x-example":"WebKit"},"clientEngineVersion":{"type":"string","description":"Client engine name.","x-example":"605.1.15"},"deviceName":{"type":"string","description":"Device name.","x-example":"smartphone"},"deviceBrand":{"type":"string","description":"Device brand name.","x-example":"Google"},"deviceModel":{"type":"string","description":"Device model name.","x-example":"Nexus 5"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"},"current":{"type":"boolean","description":"Returns true if this the current user session.","x-example":true}},"required":["$id","userId","expire","provider","providerUid","providerToken","ip","osCode","osName","osVersion","clientType","clientCode","clientName","clientVersion","clientEngine","clientEngineVersion","deviceName","deviceBrand","deviceModel","countryCode","countryName","current"]},"token":{"description":"Token","type":"object","properties":{"$id":{"type":"string","description":"Token ID.","x-example":"bb8ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5ea5c168bb8"},"secret":{"type":"string","description":"Token secret key. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.","x-example":""},"expire":{"type":"integer","description":"Token expiration date in Unix timestamp.","x-example":1592981250,"format":"int32"}},"required":["$id","userId","secret","expire"]},"jwt":{"description":"JWT","type":"object","properties":{"jwt":{"type":"string","description":"JWT encoded string.","x-example":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"}},"required":["jwt"]},"locale":{"description":"Locale","type":"object","properties":{"ip":{"type":"string","description":"User IP address.","x-example":"127.0.0.1"},"countryCode":{"type":"string","description":"Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format","x-example":"US"},"country":{"type":"string","description":"Country name. This field support localization.","x-example":"United States"},"continentCode":{"type":"string","description":"Continent code. A two character continent code \"AF\" for Africa, \"AN\" for Antarctica, \"AS\" for Asia, \"EU\" for Europe, \"NA\" for North America, \"OC\" for Oceania, and \"SA\" for South America.","x-example":"NA"},"continent":{"type":"string","description":"Continent name. This field support localization.","x-example":"North America"},"eu":{"type":"boolean","description":"True if country is part of the Europian Union.","x-example":false},"currency":{"type":"string","description":"Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format","x-example":"USD"}},"required":["ip","countryCode","country","continentCode","continent","eu","currency"]},"file":{"description":"File","type":"object","properties":{"$id":{"type":"string","description":"File ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"File read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"File write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"},"name":{"type":"string","description":"File name.","x-example":"Pink.png"},"dateCreated":{"type":"integer","description":"File creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"signature":{"type":"string","description":"File MD5 signature.","x-example":"5d529fd02b544198ae075bd57c1762bb"},"mimeType":{"type":"string","description":"File mime type.","x-example":"image\/png"},"sizeOriginal":{"type":"integer","description":"File original size in bytes.","x-example":17890,"format":"int32"}},"required":["$id","$read","$write","name","dateCreated","signature","mimeType","sizeOriginal"]},"team":{"description":"Team","type":"object","properties":{"$id":{"type":"string","description":"Team ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Team name.","x-example":"VIP"},"dateCreated":{"type":"integer","description":"Team creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"sum":{"type":"integer","description":"Total sum of team members.","x-example":7,"format":"int32"}},"required":["$id","name","dateCreated","sum"]},"membership":{"description":"Membership","type":"object","properties":{"$id":{"type":"string","description":"Membership ID.","x-example":"5e5ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5ea5c16897e"},"teamId":{"type":"string","description":"Team ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"User name.","x-example":"VIP"},"email":{"type":"string","description":"User email address.","x-example":"john@appwrite.io"},"invited":{"type":"integer","description":"Date, the user has been invited to join the team in Unix timestamp.","x-example":1592981250,"format":"int32"},"joined":{"type":"integer","description":"Date, the user has accepted the invitation to join the team in Unix timestamp.","x-example":1592981250,"format":"int32"},"confirm":{"type":"boolean","description":"User confirmation status, true if the user has joined the team or false otherwise.","x-example":false},"roles":{"type":"array","description":"User list of roles","items":{"type":"string"},"x-example":"admin"}},"required":["$id","userId","teamId","name","email","invited","joined","confirm","roles"]},"execution":{"description":"Execution","type":"object","properties":{"$id":{"type":"string","description":"Execution ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"Execution read permissions.","items":{"type":"string"},"x-example":"role:all"},"functionId":{"type":"string","description":"Function ID.","x-example":"5e5ea6g16897e"},"dateCreated":{"type":"integer","description":"The execution creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"trigger":{"type":"string","description":"The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.","x-example":"http"},"status":{"type":"string","description":"The status of the function execution. Possible values can be: `waiting`, `processing`, `completed`, or `failed`.","x-example":"processing"},"exitCode":{"type":"integer","description":"The script exit code.","x-example":0,"format":"int32"},"stdout":{"type":"string","description":"The script stdout output string. Logs the last 4,000 characters of the execution stdout output.","x-example":""},"stderr":{"type":"string","description":"The script stderr output string. Logs the last 4,000 characters of the execution stderr output","x-example":""},"time":{"type":"number","description":"The script execution time in seconds.","x-example":0.4,"format":"double"}},"required":["$id","$read","functionId","dateCreated","trigger","status","exitCode","stdout","stderr","time"]},"country":{"description":"Country","type":"object","properties":{"name":{"type":"string","description":"Country name.","x-example":"United States"},"code":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"}},"required":["name","code"]},"continent":{"description":"Continent","type":"object","properties":{"name":{"type":"string","description":"Continent name.","x-example":"Europe"},"code":{"type":"string","description":"Continent two letter code.","x-example":"EU"}},"required":["name","code"]},"language":{"description":"Language","type":"object","properties":{"name":{"type":"string","description":"Language name.","x-example":"Italian"},"code":{"type":"string","description":"Language two-character ISO 639-1 codes.","x-example":"it"},"nativeName":{"type":"string","description":"Language native name.","x-example":"Italiano"}},"required":["name","code","nativeName"]},"currency":{"description":"Currency","type":"object","properties":{"symbol":{"type":"string","description":"Currency symbol.","x-example":"$"},"name":{"type":"string","description":"Currency name.","x-example":"US dollar"},"symbolNative":{"type":"string","description":"Currency native symbol.","x-example":"$"},"decimalDigits":{"type":"integer","description":"Number of decimal digits.","x-example":2,"format":"int32"},"rounding":{"type":"number","description":"Currency digit rounding.","x-example":0,"format":"double"},"code":{"type":"string","description":"Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format.","x-example":"USD"},"namePlural":{"type":"string","description":"Currency plural name","x-example":"US dollars"}},"required":["symbol","name","symbolNative","decimalDigits","rounding","code","namePlural"]},"phone":{"description":"Phone","type":"object","properties":{"code":{"type":"string","description":"Phone code.","x-example":"+1"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"}},"required":["code","countryCode","countryName"]}},"externalDocs":{"description":"Full API docs, specs and tutorials","url":"https:\/\/appwrite.io\/docs"}} \ No newline at end of file +{"swagger":"2.0","info":{"version":"0.12.0","title":"Appwrite","description":"Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)","termsOfService":"https:\/\/appwrite.io\/policy\/terms","contact":{"name":"Appwrite Team","url":"https:\/\/appwrite.io\/support","email":"team@appwrite.io"},"license":{"name":"BSD-3-Clause","url":"https:\/\/raw.githubusercontent.com\/appwrite\/appwrite\/master\/LICENSE"}},"host":"appwrite.io","basePath":"\/v1","schemes":["https"],"consumes":["application\/json","multipart\/form-data"],"produces":["application\/json"],"securityDefinitions":{"Project":{"type":"apiKey","name":"X-Appwrite-Project","description":"Your project ID","in":"header","x-appwrite":{"demo":"5df5acd0d48c2"}},"JWT":{"type":"apiKey","name":"X-Appwrite-JWT","description":"Your secret JSON Web Token","in":"header","x-appwrite":{"demo":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."}},"Locale":{"type":"apiKey","name":"X-Appwrite-Locale","description":"","in":"header","x-appwrite":{"demo":"en"}}},"paths":{"\/account":{"get":{"summary":"Get Account","operationId":"accountGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user data as JSON object.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"get","weight":47,"cookies":false,"type":"","demo":"account\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]},"post":{"summary":"Create Account","operationId":"accountCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to allow a new user to register a new account in your project. After the user registration completes successfully, you can use the [\/account\/verfication](\/docs\/client\/account#accountCreateVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](\/docs\/client\/account#accountCreateSession).","responses":{"201":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"create","weight":37,"cookies":false,"type":"","demo":"account\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"},"name":{"type":"string","description":"User name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["userId","email","password"]}}]},"delete":{"summary":"Delete Account","operationId":"accountDelete","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Delete a currently logged in user account. Behind the scene, the user record is not deleted but permanently blocked from any access. This is done to avoid deleted accounts being overtaken by new users with the same email address. Any user-related resources like documents or storage files should be deleted separately.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":56,"cookies":false,"type":"","demo":"account\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/account\/email":{"patch":{"summary":"Update Account Email","operationId":"accountUpdateEmail","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account email address. After changing user address, the user confirmation status will get reset. A new confirmation email is not sent automatically however you can use the send confirmation email endpoint again to send the confirmation email. For security measures, user password is required to complete this request.\nThis endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.\n","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateEmail","weight":54,"cookies":false,"type":"","demo":"account\/update-email.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-email.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["email","password"]}}]}},"\/account\/jwt":{"post":{"summary":"Create Account JWT","operationId":"accountCreateJWT","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to create a JSON Web Token. You can use the resulting JWT to authenticate on behalf of the current user when working with the Appwrite server-side API and SDKs. The JWT secret is valid for 15 minutes from its creation and will be invalid if the user will logout in that time frame.","responses":{"201":{"description":"JWT","schema":{"$ref":"#\/definitions\/jwt"}}},"x-appwrite":{"method":"createJWT","weight":46,"cookies":false,"type":"","demo":"account\/create-j-w-t.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-jwt.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{userId}","scope":"account","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}]}},"\/account\/logs":{"get":{"summary":"Get Account Logs","operationId":"accountGetLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user list of latest security activity logs. Each log returns user IP address, location and date and time of log.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"getLogs","weight":50,"cookies":false,"type":"","demo":"account\/get-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"limit","description":"Maximum number of logs to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this value to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/account\/name":{"patch":{"summary":"Update Account Name","operationId":"accountUpdateName","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account name.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateName","weight":52,"cookies":false,"type":"","demo":"account\/update-name.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-name.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"User name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]}},"\/account\/password":{"patch":{"summary":"Update Account Password","operationId":"accountUpdatePassword","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user password. For validation, user is required to pass in the new password, and the old password. For users created with OAuth and Team Invites, oldPassword is optional.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePassword","weight":53,"cookies":false,"type":"","demo":"account\/update-password.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-password.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"password":{"type":"string","description":"New user password. Must be at least 8 chars.","default":null,"x-example":"password"},"oldPassword":{"type":"string","description":"Current user password. Must be at least 8 chars.","default":"","x-example":"password"}},"required":["password"]}}]}},"\/account\/prefs":{"get":{"summary":"Get Account Preferences","operationId":"accountGetPrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user preferences as a key-value object.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"getPrefs","weight":48,"cookies":false,"type":"","demo":"account\/get-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]},"patch":{"summary":"Update Account Preferences","operationId":"accountUpdatePrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account preferences. You can pass only the specific settings you wish to update.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePrefs","weight":55,"cookies":false,"type":"","demo":"account\/update-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"prefs":{"type":"object","description":"Prefs key-value JSON object.","default":{},"x-example":"{}"}},"required":["prefs"]}}]}},"\/account\/recovery":{"post":{"summary":"Create Password Recovery","operationId":"accountCreateRecovery","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Sends the user an email with a temporary secret key for password reset. When the user clicks the confirmation link he is redirected back to your app password reset URL with the secret key and email address values attached to the URL query string. Use the query string params to submit a request to the [PUT \/account\/recovery](\/docs\/client\/account#accountUpdateRecovery) endpoint to complete the process. The verification link sent to the user's email address is valid for 1 hour.","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createRecovery","weight":59,"cookies":false,"type":"","demo":"account\/create-recovery.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-recovery.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"url":{"type":"string","description":"URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"}},"required":["email","url"]}}]},"put":{"summary":"Create Password Recovery (confirmation)","operationId":"accountUpdateRecovery","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/recovery](\/docs\/client\/account#accountCreateRecovery) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.","responses":{"200":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"updateRecovery","weight":60,"cookies":false,"type":"","demo":"account\/update-recovery.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-recovery.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Valid reset token.","default":null,"x-example":"[SECRET]"},"password":{"type":"string","description":"New user password. Must be at least 8 chars.","default":null,"x-example":"password"},"passwordAgain":{"type":"string","description":"Repeat new user password. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["userId","secret","password","passwordAgain"]}}]}},"\/account\/sessions":{"get":{"summary":"Get Account Sessions","operationId":"accountGetSessions","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user list of active sessions across different devices.","responses":{"200":{"description":"Sessions List","schema":{"$ref":"#\/definitions\/sessionList"}}},"x-appwrite":{"method":"getSessions","weight":49,"cookies":false,"type":"","demo":"account\/get-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]},"post":{"summary":"Create Account Session","operationId":"accountCreateSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Allow the user to login into their account by providing a valid email and password combination. This route will create a new session for the user.","responses":{"201":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"createSession","weight":38,"cookies":false,"type":"","demo":"account\/create-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["email","password"]}}]},"delete":{"summary":"Delete All Account Sessions","operationId":"accountDeleteSessions","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Delete all sessions from the user account and remove any sessions cookies from the end client.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSessions","weight":58,"cookies":false,"type":"","demo":"account\/delete-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-sessions.md","rate-limit":100,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/account\/sessions\/anonymous":{"post":{"summary":"Create Anonymous Session","operationId":"accountCreateAnonymousSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to allow a new user to register an anonymous account in your project. This route will also create a new session for the user. To allow the new user to convert an anonymous account to a normal account, you need to update its [email and password](\/docs\/client\/account#accountUpdateEmail) or create an [OAuth2 session](\/docs\/client\/account#accountCreateOAuth2Session).","responses":{"201":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"createAnonymousSession","weight":45,"cookies":false,"type":"","demo":"account\/create-anonymous-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session-anonymous.md","rate-limit":50,"rate-time":3600,"rate-key":"ip:{ip}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}]}},"\/account\/sessions\/magic-url":{"post":{"summary":"Create Magic URL session","operationId":"accountCreateMagicURLSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Sends the user an email with a secret key for creating a session. When the user clicks the link in the email, the user is redirected back to the URL you provided with the secret key and userId values attached to the URL query string. Use the query string parameters to submit a request to the [PUT \/account\/sessions\/magic-url](\/docs\/client\/account#accountUpdateMagicURLSession) endpoint to complete the login process. The link sent to the user's email address is valid for 1 hour. If you are on a mobile device you can leave the URL parameter empty, so that the login completion will be handled by your Appwrite instance by default.","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createMagicURLSession","weight":43,"cookies":false,"type":"","demo":"account\/create-magic-u-r-l-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-magic-url-session.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"url":{"type":"string","description":"URL to redirect the user back to your app from the magic URL login. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":"","x-example":"https:\/\/example.com"}},"required":["userId","email"]}}]},"put":{"summary":"Create Magic URL session (confirmation)","operationId":"accountUpdateMagicURLSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete creating the session with the Magic URL. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/sessions\/magic-url](\/docs\/client\/account#accountCreateMagicURLSession) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.","responses":{"200":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"updateMagicURLSession","weight":44,"cookies":false,"type":"","demo":"account\/update-magic-u-r-l-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-magic-url-session.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User ID.","default":null,"x-example":null},"secret":{"type":"string","description":"Valid verification token.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/account\/sessions\/oauth2\/{provider}":{"get":{"summary":"Create Account Session with OAuth2","operationId":"accountCreateOAuth2Session","consumes":["application\/json"],"produces":["text\/html"],"tags":["account"],"description":"Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the email received from the OAuth2 provider and attach the new session to the existing user. If no matching user is found - the server will create a new user..\n","responses":{"301":{"description":"No content"}},"x-appwrite":{"method":"createOAuth2Session","weight":39,"cookies":false,"type":"webAuth","demo":"account\/create-o-auth2session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session-oauth2.md","rate-limit":50,"rate-time":3600,"rate-key":"ip:{ip}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"provider","description":"OAuth2 Provider. Currently, supported providers are: amazon, apple, bitbucket, bitly, box, discord, dropbox, facebook, github, gitlab, google, linkedin, microsoft, paypal, paypalSandbox, salesforce, slack, spotify, tradeshift, tradeshiftBox, twitch, vk, yahoo, yandex, wordpress.","required":true,"type":"string","x-example":"amazon","in":"path"},{"name":"success","description":"URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","required":false,"type":"string","format":"url","x-example":"https:\/\/example.com","default":"","in":"query"},{"name":"failure","description":"URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","required":false,"type":"string","format":"url","x-example":"https:\/\/example.com","default":"","in":"query"},{"name":"scopes","description":"A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"}]}},"\/account\/sessions\/{sessionId}":{"get":{"summary":"Get Session By ID","operationId":"accountGetSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to get a logged in user's session using a Session ID. Inputting 'current' will return the current session being used.","responses":{"200":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"getSession","weight":51,"cookies":false,"type":"","demo":"account\/get-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-session.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"sessionId","description":"Session ID. Use the string 'current' to get the current device session.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]},"delete":{"summary":"Delete Account Session","operationId":"accountDeleteSession","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Use this endpoint to log out the currently logged in user from all their account sessions across all of their different devices. When using the option id argument, only the session unique ID provider will be deleted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSession","weight":57,"cookies":false,"type":"","demo":"account\/delete-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-session.md","rate-limit":100,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"sessionId","description":"Session ID. Use the string 'current' to delete the current device session.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]}},"\/account\/verification":{"post":{"summary":"Create Email Verification","operationId":"accountCreateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](\/docs\/client\/account#accountUpdateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createVerification","weight":61,"cookies":false,"type":"","demo":"account\/create-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-verification.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{userId}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"url":{"type":"string","description":"URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"}},"required":["url"]}}]},"put":{"summary":"Create Email Verification (confirmation)","operationId":"accountUpdateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.","responses":{"200":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"updateVerification","weight":62,"cookies":false,"type":"","demo":"account\/update-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-verification.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Valid verification token.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/avatars\/browsers\/{code}":{"get":{"summary":"Get Browser Icon","operationId":"avatarsGetBrowser","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user \/account\/sessions endpoint. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getBrowser","weight":64,"cookies":false,"type":"location","demo":"avatars\/get-browser.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-browser.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"code","description":"Browser Code.","required":true,"type":"string","x-example":"aa","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/credit-cards\/{code}":{"get":{"summary":"Get Credit Card Icon","operationId":"avatarsGetCreditCard","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getCreditCard","weight":63,"cookies":false,"type":"location","demo":"avatars\/get-credit-card.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-credit-card.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"code","description":"Credit Card Code. Possible values: amex, argencard, cabal, censosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro.","required":true,"type":"string","x-example":"amex","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/favicon":{"get":{"summary":"Get Favicon","operationId":"avatarsGetFavicon","consumes":["application\/json"],"produces":["image\/*"],"tags":["avatars"],"description":"Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFavicon","weight":67,"cookies":false,"type":"location","demo":"avatars\/get-favicon.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-favicon.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"url","description":"Website URL which you want to fetch the favicon from.","required":true,"type":"string","format":"url","x-example":"https:\/\/example.com","in":"query"}]}},"\/avatars\/flags\/{code}":{"get":{"summary":"Get Country Flag","operationId":"avatarsGetFlag","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFlag","weight":65,"cookies":false,"type":"location","demo":"avatars\/get-flag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-flag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"code","description":"Country Code. ISO Alpha-2 country code format.","required":true,"type":"string","x-example":"af","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/image":{"get":{"summary":"Get Image from URL","operationId":"avatarsGetImage","consumes":["application\/json"],"produces":["image\/*"],"tags":["avatars"],"description":"Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getImage","weight":66,"cookies":false,"type":"location","demo":"avatars\/get-image.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-image.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"url","description":"Image URL which you want to crop.","required":true,"type":"string","format":"url","x-example":"https:\/\/example.com","in":"query"},{"name":"width","description":"Resize preview image width, Pass an integer between 0 to 2000.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"},{"name":"height","description":"Resize preview image height, Pass an integer between 0 to 2000.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"}]}},"\/avatars\/initials":{"get":{"summary":"Get User Initials","operationId":"avatarsGetInitials","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.\n\nYou can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getInitials","weight":69,"cookies":false,"type":"location","demo":"avatars\/get-initials.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-initials.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"name","description":"Full Name. When empty, current user name or email will be used. Max length: 128 chars.","required":false,"type":"string","x-example":"[NAME]","default":"","in":"query"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":500,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":500,"in":"query"},{"name":"color","description":"Changes text color. By default a random color will be picked and stay will persistent to the given name.","required":false,"type":"string","default":"","in":"query"},{"name":"background","description":"Changes background color. By default a random color will be picked and stay will persistent to the given name.","required":false,"type":"string","default":"","in":"query"}]}},"\/avatars\/qr":{"get":{"summary":"Get QR Code","operationId":"avatarsGetQR","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getQR","weight":68,"cookies":false,"type":"location","demo":"avatars\/get-q-r.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-qr.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"text","description":"Plain text to be converted to QR code image.","required":true,"type":"string","x-example":"[TEXT]","in":"query"},{"name":"size","description":"QR code size. Pass an integer between 0 to 1000. Defaults to 400.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"},{"name":"margin","description":"Margin from edge. Pass an integer between 0 to 10. Defaults to 1.","required":false,"type":"integer","format":"int32","x-example":0,"default":1,"in":"query"},{"name":"download","description":"Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.","required":false,"type":"boolean","x-example":false,"default":false,"in":"query"}]}},"\/database\/collections\/{collectionId}\/documents":{"get":{"summary":"List Documents","operationId":"databaseListDocuments","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a list of all the user documents. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's documents. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Documents List","schema":{"$ref":"#\/definitions\/documentList"}}},"x-appwrite":{"method":"listDocuments","weight":94,"cookies":false,"type":"","demo":"database\/list-documents.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-documents.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"queries","description":"Array of query strings.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"},{"name":"limit","description":"Maximum number of documents to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this value to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the document used as the starting point for the query, excluding the document itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderAttributes","description":"Array of attributes used to sort results.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"},{"name":"orderTypes","description":"Array of order directions for sorting attribtues. Possible values are DESC for descending order, or ASC for ascending order.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"}]},"post":{"summary":"Create Document","operationId":"databaseCreateDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](\/docs\/server\/database#databaseCreateCollection) API or directly from your database console.","responses":{"201":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"createDocument","weight":93,"cookies":false,"type":"","demo":"database\/create-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection with validation rules using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"documentId":{"type":"string","description":"Document ID. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"data":{"type":"object","description":"Document data as JSON object.","default":{},"x-example":"{}"},"read":{"type":"array","description":"An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["documentId","data"]}}]}},"\/database\/collections\/{collectionId}\/documents\/{documentId}":{"get":{"summary":"Get Document","operationId":"databaseGetDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a document by its unique ID. This endpoint response returns a JSON object with the document data.","responses":{"200":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"getDocument","weight":95,"cookies":false,"type":"","demo":"database\/get-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"}]},"patch":{"summary":"Update Document","operationId":"databaseUpdateDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.","responses":{"200":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"updateDocument","weight":97,"cookies":false,"type":"","demo":"database\/update-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/update-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection with validation rules using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"data":{"type":"object","description":"Document data as JSON object.","default":{},"x-example":"{}"},"read":{"type":"array","description":"An array of strings with read permissions. By default inherits the existing read permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default inherits the existing write permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["data"]}}]},"delete":{"summary":"Delete Document","operationId":"databaseDeleteDocument","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"Delete a document by its unique ID. This endpoint deletes only the parent documents, its attributes and relations to other documents. Child documents **will not** be deleted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteDocument","weight":98,"cookies":false,"type":"","demo":"database\/delete-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"}]}},"\/functions\/{functionId}\/executions":{"get":{"summary":"List Executions","operationId":"functionsListExecutions","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the current user function execution logs. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's executions. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Executions List","schema":{"$ref":"#\/definitions\/executionList"}}},"x-appwrite":{"method":"listExecutions","weight":199,"cookies":false,"type":"","demo":"functions\/list-executions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-executions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"execution.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"limit","description":"Maximum number of executions to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this value to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"cursor","description":"ID of the execution used as the starting point for the query, excluding the execution itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"}]},"post":{"summary":"Create Execution","operationId":"functionsCreateExecution","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.","responses":{"201":{"description":"Execution","schema":{"$ref":"#\/definitions\/execution"}}},"x-appwrite":{"method":"createExecution","weight":198,"cookies":false,"type":"","demo":"functions\/create-execution.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-execution.md","rate-limit":60,"rate-time":60,"rate-key":"url:{url},ip:{ip}","scope":"execution.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"data":{"type":"string","description":"String of custom data to send to function.","default":"","x-example":"[DATA]"}}}}]}},"\/functions\/{functionId}\/executions\/{executionId}":{"get":{"summary":"Get Execution","operationId":"functionsGetExecution","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a function execution log by its unique ID.","responses":{"200":{"description":"Execution","schema":{"$ref":"#\/definitions\/execution"}}},"x-appwrite":{"method":"getExecution","weight":200,"cookies":false,"type":"","demo":"functions\/get-execution.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-execution.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"execution.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"executionId","description":"Execution ID.","required":true,"type":"string","x-example":"[EXECUTION_ID]","in":"path"}]}},"\/locale":{"get":{"summary":"Get User Locale","operationId":"localeGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.\n\n([IP Geolocation by DB-IP](https:\/\/db-ip.com))","responses":{"200":{"description":"Locale","schema":{"$ref":"#\/definitions\/locale"}}},"x-appwrite":{"method":"get","weight":99,"cookies":false,"type":"","demo":"locale\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/locale\/continents":{"get":{"summary":"List Continents","operationId":"localeGetContinents","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all continents. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Continents List","schema":{"$ref":"#\/definitions\/continentList"}}},"x-appwrite":{"method":"getContinents","weight":103,"cookies":false,"type":"","demo":"locale\/get-continents.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-continents.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/locale\/countries":{"get":{"summary":"List Countries","operationId":"localeGetCountries","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Countries List","schema":{"$ref":"#\/definitions\/countryList"}}},"x-appwrite":{"method":"getCountries","weight":100,"cookies":false,"type":"","demo":"locale\/get-countries.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/locale\/countries\/eu":{"get":{"summary":"List EU Countries","operationId":"localeGetCountriesEU","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries that are currently members of the EU. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Countries List","schema":{"$ref":"#\/definitions\/countryList"}}},"x-appwrite":{"method":"getCountriesEU","weight":101,"cookies":false,"type":"","demo":"locale\/get-countries-e-u.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries-eu.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/locale\/countries\/phones":{"get":{"summary":"List Countries Phone Codes","operationId":"localeGetCountriesPhones","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries phone codes. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Phones List","schema":{"$ref":"#\/definitions\/phoneList"}}},"x-appwrite":{"method":"getCountriesPhones","weight":102,"cookies":false,"type":"","demo":"locale\/get-countries-phones.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries-phones.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/locale\/currencies":{"get":{"summary":"List Currencies","operationId":"localeGetCurrencies","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Currencies List","schema":{"$ref":"#\/definitions\/currencyList"}}},"x-appwrite":{"method":"getCurrencies","weight":104,"cookies":false,"type":"","demo":"locale\/get-currencies.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-currencies.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/locale\/languages":{"get":{"summary":"List Languages","operationId":"localeGetLanguages","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.","responses":{"200":{"description":"Languages List","schema":{"$ref":"#\/definitions\/languageList"}}},"x-appwrite":{"method":"getLanguages","weight":105,"cookies":false,"type":"","demo":"locale\/get-languages.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-languages.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/storage\/files":{"get":{"summary":"List Files","operationId":"storageListFiles","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Get a list of all the user files. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's files. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Files List","schema":{"$ref":"#\/definitions\/fileList"}}},"x-appwrite":{"method":"listFiles","weight":150,"cookies":false,"type":"","demo":"storage\/list-files.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Maximum number of files to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the file used as the starting point for the query, excluding the file itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create File","operationId":"storageCreateFile","consumes":["multipart\/form-data"],"produces":["application\/json"],"tags":["storage"],"description":"Create a new file. The user who creates the file will automatically be assigned to read and write access unless he has passed custom values for read and write arguments.","responses":{"201":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"createFile","weight":149,"cookies":false,"type":"upload","demo":"storage\/create-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File ID. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","required":true,"type":"string","in":"formData"},{"name":"file","description":"Binary file.","required":true,"type":"file","in":"formData"},{"name":"read","description":"An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"in":"formData"},{"name":"write","description":"An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"in":"formData"}]}},"\/storage\/files\/{fileId}":{"get":{"summary":"Get File","operationId":"storageGetFile","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.","responses":{"200":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"getFile","weight":151,"cookies":false,"type":"","demo":"storage\/get-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]},"put":{"summary":"Update File","operationId":"storageUpdateFile","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Update a file by its unique ID. Only users with write permissions have access to update this resource.","responses":{"200":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"updateFile","weight":155,"cookies":false,"type":"","demo":"storage\/update-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"read":{"type":"array","description":"An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["read","write"]}}]},"delete":{"summary":"Delete File","operationId":"storageDeleteFile","consumes":["application\/json"],"produces":[],"tags":["storage"],"description":"Delete a file by its unique ID. Only users with write permissions have access to delete this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteFile","weight":156,"cookies":false,"type":"","demo":"storage\/delete-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/files\/{fileId}\/download":{"get":{"summary":"Get File for Download","operationId":"storageGetFileDownload","consumes":["application\/json"],"produces":["*\/*"],"tags":["storage"],"description":"Get a file content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.","responses":{"200":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getFileDownload","weight":153,"cookies":false,"type":"location","demo":"storage\/get-file-download.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/files\/{fileId}\/preview":{"get":{"summary":"Get File Preview","operationId":"storageGetFilePreview","consumes":["application\/json"],"produces":["image\/*"],"tags":["storage"],"description":"Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFilePreview","weight":152,"cookies":false,"type":"location","demo":"storage\/get-file-preview.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"},{"name":"width","description":"Resize preview image width, Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"height","description":"Resize preview image height, Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"gravity","description":"Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right","required":false,"type":"string","x-example":"center","default":"center","in":"query"},{"name":"quality","description":"Preview image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"borderWidth","description":"Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"borderColor","description":"Preview image border color. Use a valid HEX color, no # is needed for prefix.","required":false,"type":"string","default":"","in":"query"},{"name":"borderRadius","description":"Preview image border radius in pixels. Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"opacity","description":"Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.","required":false,"type":"number","format":"float","x-example":0,"default":1,"in":"query"},{"name":"rotation","description":"Preview image rotation in degrees. Pass an integer between -360 and 360.","required":false,"type":"integer","format":"int32","x-example":-360,"default":0,"in":"query"},{"name":"background","description":"Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.","required":false,"type":"string","default":"","in":"query"},{"name":"output","description":"Output format type (jpeg, jpg, png, gif and webp).","required":false,"type":"string","x-example":"jpg","default":"","in":"query"}]}},"\/storage\/files\/{fileId}\/view":{"get":{"summary":"Get File for View","operationId":"storageGetFileView","consumes":["application\/json"],"produces":["*\/*"],"tags":["storage"],"description":"Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.","responses":{"200":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getFileView","weight":154,"cookies":false,"type":"location","demo":"storage\/get-file-view.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/teams":{"get":{"summary":"List Teams","operationId":"teamsList","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a list of all the current user teams. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's teams. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Teams List","schema":{"$ref":"#\/definitions\/teamList"}}},"x-appwrite":{"method":"list","weight":160,"cookies":false,"type":"","demo":"teams\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Maximum number of teams to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the team used as the starting point for the query, excluding the team itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Team","operationId":"teamsCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Create a new team. The user who creates the team will automatically be assigned as the owner of the team. The team owner can invite new members, who will be able add new owners and update or delete the team from your project.","responses":{"201":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"create","weight":159,"cookies":false,"type":"","demo":"teams\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"teamId":{"type":"string","description":"Team ID. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Team name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"roles":{"type":"array","description":"Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":["owner"],"x-example":null,"items":{"type":"string"}}},"required":["teamId","name"]}}]}},"\/teams\/{teamId}":{"get":{"summary":"Get Team","operationId":"teamsGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team by its unique ID. All team members have read access for this resource.","responses":{"200":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"get","weight":161,"cookies":false,"type":"","demo":"teams\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"}]},"put":{"summary":"Update Team","operationId":"teamsUpdate","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Update a team by its unique ID. Only team owners have write access for this resource.","responses":{"200":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"update","weight":162,"cookies":false,"type":"","demo":"teams\/update.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Team name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]},"delete":{"summary":"Delete Team","operationId":"teamsDelete","consumes":["application\/json"],"produces":[],"tags":["teams"],"description":"Delete a team by its unique ID. Only team owners have write access for this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":163,"cookies":false,"type":"","demo":"teams\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"}]}},"\/teams\/{teamId}\/memberships":{"get":{"summary":"Get Team Memberships","operationId":"teamsGetMemberships","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team members by the team unique ID. All team members have read access for this list of resources.","responses":{"200":{"description":"Memberships List","schema":{"$ref":"#\/definitions\/membershipList"}}},"x-appwrite":{"method":"getMemberships","weight":165,"cookies":false,"type":"","demo":"teams\/get-memberships.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-members.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Maximum number of memberships to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this value to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the membership used as the starting point for the query, excluding the membership itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Team Membership","operationId":"teamsCreateMembership","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"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.\n\nUse 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.\n\nPlease 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.","responses":{"201":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"createMembership","weight":164,"cookies":false,"type":"","demo":"teams\/create-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team-membership.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"Team member email.","default":null,"x-example":"email@example.com"},"roles":{"type":"array","description":"Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":null,"x-example":null,"items":{"type":"string"}},"url":{"type":"string","description":"URL to redirect the user back to your app from the invitation email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"},"name":{"type":"string","description":"Team member name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["email","roles","url"]}}]}},"\/teams\/{teamId}\/memberships\/{membershipId}":{"get":{"summary":"Get Team Membership","operationId":"teamsGetMembership","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team member by the membership unique id. All team members have read access for this resource.","responses":{"200":{"description":"Memberships List","schema":{"$ref":"#\/definitions\/membershipList"}}},"x-appwrite":{"method":"getMembership","weight":166,"cookies":false,"type":"","demo":"teams\/get-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"}]},"patch":{"summary":"Update Membership Roles","operationId":"teamsUpdateMembershipRoles","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"","responses":{"200":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"updateMembershipRoles","weight":167,"cookies":false,"type":"","demo":"teams\/update-membership-roles.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-roles.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"roles":{"type":"array","description":"Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Max length for each role is 32 chars.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["roles"]}}]},"delete":{"summary":"Delete Team Membership","operationId":"teamsDeleteMembership","consumes":["application\/json"],"produces":[],"tags":["teams"],"description":"This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteMembership","weight":169,"cookies":false,"type":"","demo":"teams\/delete-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"}]}},"\/teams\/{teamId}\/memberships\/{membershipId}\/status":{"patch":{"summary":"Update Team Membership Status","operationId":"teamsUpdateMembershipStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user.","responses":{"200":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"updateMembershipStatus","weight":168,"cookies":false,"type":"","demo":"teams\/update-membership-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Secret key.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}}},"tags":[{"name":"account","description":"The Account service allows you to authenticate and manage a user account."},{"name":"avatars","description":"The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars."},{"name":"database","description":"The Database service allows you to create structured collections of documents, query and filter lists of documents"},{"name":"locale","description":"The Locale service allows you to customize your app based on your users' location."},{"name":"health","description":"The Health service allows you to both validate and monitor your Appwrite server's health."},{"name":"projects","description":"The Project service allows you to manage all the projects in your Appwrite server."},{"name":"storage","description":"The Storage service allows you to manage your project files."},{"name":"teams","description":"The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources"},{"name":"users","description":"The Users service allows you to manage your project users."},{"name":"functions","description":"The Functions Service allows you view, create and manage your Cloud Functions."}],"definitions":{"documentList":{"description":"Documents List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"documents":{"type":"array","description":"List of documents.","items":{"type":"object","$ref":"#\/definitions\/document"},"x-example":""}},"required":["sum","documents"]},"sessionList":{"description":"Sessions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"sessions":{"type":"array","description":"List of sessions.","items":{"type":"object","$ref":"#\/definitions\/session"},"x-example":""}},"required":["sum","sessions"]},"logList":{"description":"Logs List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"logs":{"type":"array","description":"List of logs.","items":{"type":"object","$ref":"#\/definitions\/log"},"x-example":""}},"required":["sum","logs"]},"fileList":{"description":"Files List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"files":{"type":"array","description":"List of files.","items":{"type":"object","$ref":"#\/definitions\/file"},"x-example":""}},"required":["sum","files"]},"teamList":{"description":"Teams List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"teams":{"type":"array","description":"List of teams.","items":{"type":"object","$ref":"#\/definitions\/team"},"x-example":""}},"required":["sum","teams"]},"membershipList":{"description":"Memberships List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"memberships":{"type":"array","description":"List of memberships.","items":{"type":"object","$ref":"#\/definitions\/membership"},"x-example":""}},"required":["sum","memberships"]},"executionList":{"description":"Executions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"executions":{"type":"array","description":"List of executions.","items":{"type":"object","$ref":"#\/definitions\/execution"},"x-example":""}},"required":["sum","executions"]},"countryList":{"description":"Countries List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"countries":{"type":"array","description":"List of countries.","items":{"type":"object","$ref":"#\/definitions\/country"},"x-example":""}},"required":["sum","countries"]},"continentList":{"description":"Continents List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"continents":{"type":"array","description":"List of continents.","items":{"type":"object","$ref":"#\/definitions\/continent"},"x-example":""}},"required":["sum","continents"]},"languageList":{"description":"Languages List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"languages":{"type":"array","description":"List of languages.","items":{"type":"object","$ref":"#\/definitions\/language"},"x-example":""}},"required":["sum","languages"]},"currencyList":{"description":"Currencies List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"currencies":{"type":"array","description":"List of currencies.","items":{"type":"object","$ref":"#\/definitions\/currency"},"x-example":""}},"required":["sum","currencies"]},"phoneList":{"description":"Phones List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"phones":{"type":"array","description":"List of phones.","items":{"type":"object","$ref":"#\/definitions\/phone"},"x-example":""}},"required":["sum","phones"]},"collection":{"description":"Collection","type":"object","properties":{"$id":{"type":"string","description":"Collection ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"Collection read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"Collection write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"},"name":{"type":"string","description":"Collection name.","x-example":"My Collection"},"enabled":{"type":"boolean","description":"Collection enabled.","x-example":false},"permission":{"type":"string","description":"Collection permission model. Possible values: `document` or `collection`","x-example":"document"},"attributes":{"type":"array","description":"Collection attributes.","items":{"anyOf":[{"$ref":"#\/definitions\/attributeBoolean"},{"$ref":"#\/definitions\/attributeInteger"},{"$ref":"#\/definitions\/attributeFloat"},{"$ref":"#\/definitions\/attributeEmail"},{"$ref":"#\/definitions\/attributeEnum"},{"$ref":"#\/definitions\/attributeUrl"},{"$ref":"#\/definitions\/attributeIp"},{"$ref":"#\/definitions\/attributeString"}]},"x-example":{}},"indexes":{"type":"array","description":"Collection indexes.","items":{"type":"object","$ref":"#\/definitions\/index"},"x-example":{}}},"required":["$id","$read","$write","name","enabled","permission","attributes","indexes"]},"index":{"description":"Index","type":"object","properties":{"key":{"type":"string","description":"Index Key.","x-example":"index1"},"type":{"type":"string","description":"Index type.","x-example":""},"status":{"type":"string","description":"Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"attributes":{"type":"array","description":"Index attributes.","items":{"type":"string"},"x-example":[]},"orders":{"type":"array","description":"Index orders.","items":{"type":"string"},"x-example":[]}},"required":["key","type","status","attributes","orders"]},"document":{"description":"Document","type":"object","properties":{"$id":{"type":"string","description":"Document ID.","x-example":"5e5ea5c16897e"},"$collection":{"type":"string","description":"Collection ID.","x-example":"5e5ea5c15117e"},"$read":{"type":"array","description":"Document read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"Document write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"}},"additionalProperties":true,"required":["$id","$collection","$read","$write"]},"log":{"description":"Log","type":"object","properties":{"event":{"type":"string","description":"Event name.","x-example":"account.sessions.create"},"userId":{"type":"string","description":"User ID.","x-example":"610fc2f985ee0"},"userEmail":{"type":"string","description":"User Email.","x-example":"john@appwrite.io"},"userName":{"type":"string","description":"User Name.","x-example":"John Doe"},"mode":{"type":"string","description":"API mode when event triggered.","x-example":"admin"},"ip":{"type":"string","description":"IP session in use when the session was created.","x-example":"127.0.0.1"},"time":{"type":"integer","description":"Log creation time in Unix timestamp.","x-example":1592981250,"format":"int32"},"osCode":{"type":"string","description":"Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).","x-example":"Mac"},"osName":{"type":"string","description":"Operating system name.","x-example":"Mac"},"osVersion":{"type":"string","description":"Operating system version.","x-example":"Mac"},"clientType":{"type":"string","description":"Client type.","x-example":"browser"},"clientCode":{"type":"string","description":"Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).","x-example":"CM"},"clientName":{"type":"string","description":"Client name.","x-example":"Chrome Mobile iOS"},"clientVersion":{"type":"string","description":"Client version.","x-example":"84.0"},"clientEngine":{"type":"string","description":"Client engine name.","x-example":"WebKit"},"clientEngineVersion":{"type":"string","description":"Client engine name.","x-example":"605.1.15"},"deviceName":{"type":"string","description":"Device name.","x-example":"smartphone"},"deviceBrand":{"type":"string","description":"Device brand name.","x-example":"Google"},"deviceModel":{"type":"string","description":"Device model name.","x-example":"Nexus 5"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"}},"required":["event","userId","userEmail","userName","mode","ip","time","osCode","osName","osVersion","clientType","clientCode","clientName","clientVersion","clientEngine","clientEngineVersion","deviceName","deviceBrand","deviceModel","countryCode","countryName"]},"user":{"description":"User","type":"object","properties":{"$id":{"type":"string","description":"User ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"User name.","x-example":"John Doe"},"registration":{"type":"integer","description":"User registration date in Unix timestamp.","x-example":1592981250,"format":"int32"},"status":{"type":"boolean","description":"User status. Pass `true` for enabled and `false` for disabled.","x-example":true},"passwordUpdate":{"type":"integer","description":"Unix timestamp of the most recent password update","x-example":1592981250,"format":"int32"},"email":{"type":"string","description":"User email address.","x-example":"john@appwrite.io"},"emailVerification":{"type":"boolean","description":"Email verification status.","x-example":true},"prefs":{"type":"object","description":"User preferences as a key-value object","x-example":{"theme":"pink","timezone":"UTC"},"items":{"type":"object","$ref":"#\/definitions\/preferences"}}},"required":["$id","name","registration","status","passwordUpdate","email","emailVerification","prefs"]},"preferences":{"description":"Preferences","type":"object","additionalProperties":true},"session":{"description":"Session","type":"object","properties":{"$id":{"type":"string","description":"Session ID.","x-example":"5e5ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5bb8c16897e"},"expire":{"type":"integer","description":"Session expiration date in Unix timestamp.","x-example":1592981250,"format":"int32"},"provider":{"type":"string","description":"Session Provider.","x-example":"email"},"providerUid":{"type":"string","description":"Session Provider User ID.","x-example":"user@example.com"},"providerToken":{"type":"string","description":"Session Provider Token.","x-example":"MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"},"ip":{"type":"string","description":"IP in use when the session was created.","x-example":"127.0.0.1"},"osCode":{"type":"string","description":"Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).","x-example":"Mac"},"osName":{"type":"string","description":"Operating system name.","x-example":"Mac"},"osVersion":{"type":"string","description":"Operating system version.","x-example":"Mac"},"clientType":{"type":"string","description":"Client type.","x-example":"browser"},"clientCode":{"type":"string","description":"Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).","x-example":"CM"},"clientName":{"type":"string","description":"Client name.","x-example":"Chrome Mobile iOS"},"clientVersion":{"type":"string","description":"Client version.","x-example":"84.0"},"clientEngine":{"type":"string","description":"Client engine name.","x-example":"WebKit"},"clientEngineVersion":{"type":"string","description":"Client engine name.","x-example":"605.1.15"},"deviceName":{"type":"string","description":"Device name.","x-example":"smartphone"},"deviceBrand":{"type":"string","description":"Device brand name.","x-example":"Google"},"deviceModel":{"type":"string","description":"Device model name.","x-example":"Nexus 5"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"},"current":{"type":"boolean","description":"Returns true if this the current user session.","x-example":true}},"required":["$id","userId","expire","provider","providerUid","providerToken","ip","osCode","osName","osVersion","clientType","clientCode","clientName","clientVersion","clientEngine","clientEngineVersion","deviceName","deviceBrand","deviceModel","countryCode","countryName","current"]},"token":{"description":"Token","type":"object","properties":{"$id":{"type":"string","description":"Token ID.","x-example":"bb8ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5ea5c168bb8"},"secret":{"type":"string","description":"Token secret key. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.","x-example":""},"expire":{"type":"integer","description":"Token expiration date in Unix timestamp.","x-example":1592981250,"format":"int32"}},"required":["$id","userId","secret","expire"]},"jwt":{"description":"JWT","type":"object","properties":{"jwt":{"type":"string","description":"JWT encoded string.","x-example":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"}},"required":["jwt"]},"locale":{"description":"Locale","type":"object","properties":{"ip":{"type":"string","description":"User IP address.","x-example":"127.0.0.1"},"countryCode":{"type":"string","description":"Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format","x-example":"US"},"country":{"type":"string","description":"Country name. This field support localization.","x-example":"United States"},"continentCode":{"type":"string","description":"Continent code. A two character continent code \"AF\" for Africa, \"AN\" for Antarctica, \"AS\" for Asia, \"EU\" for Europe, \"NA\" for North America, \"OC\" for Oceania, and \"SA\" for South America.","x-example":"NA"},"continent":{"type":"string","description":"Continent name. This field support localization.","x-example":"North America"},"eu":{"type":"boolean","description":"True if country is part of the Europian Union.","x-example":false},"currency":{"type":"string","description":"Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format","x-example":"USD"}},"required":["ip","countryCode","country","continentCode","continent","eu","currency"]},"file":{"description":"File","type":"object","properties":{"$id":{"type":"string","description":"File ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"File read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"File write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"},"name":{"type":"string","description":"File name.","x-example":"Pink.png"},"dateCreated":{"type":"integer","description":"File creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"signature":{"type":"string","description":"File MD5 signature.","x-example":"5d529fd02b544198ae075bd57c1762bb"},"mimeType":{"type":"string","description":"File mime type.","x-example":"image\/png"},"sizeOriginal":{"type":"integer","description":"File original size in bytes.","x-example":17890,"format":"int32"}},"required":["$id","$read","$write","name","dateCreated","signature","mimeType","sizeOriginal"]},"team":{"description":"Team","type":"object","properties":{"$id":{"type":"string","description":"Team ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Team name.","x-example":"VIP"},"dateCreated":{"type":"integer","description":"Team creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"sum":{"type":"integer","description":"Total sum of team members.","x-example":7,"format":"int32"}},"required":["$id","name","dateCreated","sum"]},"membership":{"description":"Membership","type":"object","properties":{"$id":{"type":"string","description":"Membership ID.","x-example":"5e5ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5ea5c16897e"},"teamId":{"type":"string","description":"Team ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"User name.","x-example":"VIP"},"email":{"type":"string","description":"User email address.","x-example":"john@appwrite.io"},"invited":{"type":"integer","description":"Date, the user has been invited to join the team in Unix timestamp.","x-example":1592981250,"format":"int32"},"joined":{"type":"integer","description":"Date, the user has accepted the invitation to join the team in Unix timestamp.","x-example":1592981250,"format":"int32"},"confirm":{"type":"boolean","description":"User confirmation status, true if the user has joined the team or false otherwise.","x-example":false},"roles":{"type":"array","description":"User list of roles","items":{"type":"string"},"x-example":"admin"}},"required":["$id","userId","teamId","name","email","invited","joined","confirm","roles"]},"function":{"description":"Function","type":"object","properties":{"$id":{"type":"string","description":"Function ID.","x-example":"5e5ea5c16897e"},"execute":{"type":"string","description":"Execution permissions.","x-example":"role:member"},"name":{"type":"string","description":"Function name.","x-example":"My Function"},"dateCreated":{"type":"integer","description":"Function creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"dateUpdated":{"type":"integer","description":"Function update date in Unix timestamp.","x-example":1592981257,"format":"int32"},"status":{"type":"string","description":"Function status. Possible values: `disabled`, `enabled`","x-example":"enabled"},"runtime":{"type":"string","description":"Function execution runtime.","x-example":"python-3.8"},"tag":{"type":"string","description":"Function active tag ID.","x-example":"5e5ea5c16897e"},"vars":{"type":"string","description":"Function environment variables.","x-example":{"key":"value"}},"events":{"type":"array","description":"Function trigger events.","items":{"type":"string"},"x-example":"account.create"},"schedule":{"type":"string","description":"Function execution schedult in CRON format.","x-example":"5 4 * * *"},"scheduleNext":{"type":"integer","description":"Function next scheduled execution date in Unix timestamp.","x-example":1592981292,"format":"int32"},"schedulePrevious":{"type":"integer","description":"Function next scheduled execution date in Unix timestamp.","x-example":1592981237,"format":"int32"},"timeout":{"type":"integer","description":"Function execution timeout in seconds.","x-example":1592981237,"format":"int32"}},"required":["$id","execute","name","dateCreated","dateUpdated","status","runtime","tag","vars","events","schedule","scheduleNext","schedulePrevious","timeout"]},"runtime":{"description":"Runtime","type":"object","properties":{"$id":{"type":"string","description":"Runtime ID.","x-example":"python-3.8"},"name":{"type":"string","description":"Runtime Name.","x-example":"Python"},"version":{"type":"string","description":"Runtime version.","x-example":"3.8"},"base":{"type":"string","description":"Base Docker image used to build the runtime.","x-example":"python:3.8-alpine"},"image":{"type":"string","description":"Image name of Docker Hub.","x-example":"appwrite\\\/runtime-for-python:3.8"},"logo":{"type":"string","description":"Name of the logo image.","x-example":"python.png"},"supports":{"type":"array","description":"List of supported architectures.","items":{"type":"string"},"x-example":"amd64"}},"required":["$id","name","version","base","image","logo","supports"]},"tag":{"description":"Tag","type":"object","properties":{"$id":{"type":"string","description":"Tag ID.","x-example":"5e5ea5c16897e"},"functionId":{"type":"string","description":"Function ID.","x-example":"5e5ea6g16897e"},"dateCreated":{"type":"integer","description":"The tag creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"command":{"type":"string","description":"The entrypoint command in use to execute the tag code.","x-example":"enabled"},"size":{"type":"string","description":"The code size in bytes.","x-example":"python-3.8"}},"required":["$id","functionId","dateCreated","command","size"]},"execution":{"description":"Execution","type":"object","properties":{"$id":{"type":"string","description":"Execution ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"Execution read permissions.","items":{"type":"string"},"x-example":"role:all"},"functionId":{"type":"string","description":"Function ID.","x-example":"5e5ea6g16897e"},"dateCreated":{"type":"integer","description":"The execution creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"trigger":{"type":"string","description":"The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.","x-example":"http"},"status":{"type":"string","description":"The status of the function execution. Possible values can be: `waiting`, `processing`, `completed`, or `failed`.","x-example":"processing"},"exitCode":{"type":"integer","description":"The script exit code.","x-example":0,"format":"int32"},"stdout":{"type":"string","description":"The script stdout output string. Logs the last 4,000 characters of the execution stdout output.","x-example":""},"stderr":{"type":"string","description":"The script stderr output string. Logs the last 4,000 characters of the execution stderr output","x-example":""},"time":{"type":"number","description":"The script execution time in seconds.","x-example":0.4,"format":"double"}},"required":["$id","$read","functionId","dateCreated","trigger","status","exitCode","stdout","stderr","time"]},"country":{"description":"Country","type":"object","properties":{"name":{"type":"string","description":"Country name.","x-example":"United States"},"code":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"}},"required":["name","code"]},"continent":{"description":"Continent","type":"object","properties":{"name":{"type":"string","description":"Continent name.","x-example":"Europe"},"code":{"type":"string","description":"Continent two letter code.","x-example":"EU"}},"required":["name","code"]},"language":{"description":"Language","type":"object","properties":{"name":{"type":"string","description":"Language name.","x-example":"Italian"},"code":{"type":"string","description":"Language two-character ISO 639-1 codes.","x-example":"it"},"nativeName":{"type":"string","description":"Language native name.","x-example":"Italiano"}},"required":["name","code","nativeName"]},"currency":{"description":"Currency","type":"object","properties":{"symbol":{"type":"string","description":"Currency symbol.","x-example":"$"},"name":{"type":"string","description":"Currency name.","x-example":"US dollar"},"symbolNative":{"type":"string","description":"Currency native symbol.","x-example":"$"},"decimalDigits":{"type":"integer","description":"Number of decimal digits.","x-example":2,"format":"int32"},"rounding":{"type":"number","description":"Currency digit rounding.","x-example":0,"format":"double"},"code":{"type":"string","description":"Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format.","x-example":"USD"},"namePlural":{"type":"string","description":"Currency plural name","x-example":"US dollars"}},"required":["symbol","name","symbolNative","decimalDigits","rounding","code","namePlural"]},"phone":{"description":"Phone","type":"object","properties":{"code":{"type":"string","description":"Phone code.","x-example":"+1"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"}},"required":["code","countryCode","countryName"]}},"externalDocs":{"description":"Full API docs, specs and tutorials","url":"https:\/\/appwrite.io\/docs"}} \ No newline at end of file diff --git a/app/config/specs/0.12.x.console.json b/app/config/specs/0.12.x.console.json index fb149208ec..ce1b37b99d 100644 --- a/app/config/specs/0.12.x.console.json +++ b/app/config/specs/0.12.x.console.json @@ -1 +1 @@ -{"swagger":"2.0","info":{"version":"0.12.0","title":"Appwrite","description":"Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)","termsOfService":"https:\/\/appwrite.io\/policy\/terms","contact":{"name":"Appwrite Team","url":"https:\/\/appwrite.io\/support","email":"team@appwrite.io"},"license":{"name":"BSD-3-Clause","url":"https:\/\/raw.githubusercontent.com\/appwrite\/appwrite\/master\/LICENSE"}},"host":"appwrite.io","basePath":"\/v1","schemes":["https"],"consumes":["application\/json","multipart\/form-data"],"produces":["application\/json"],"securityDefinitions":{"Project":{"type":"apiKey","name":"X-Appwrite-Project","description":"Your project ID","in":"header","x-appwrite":{"demo":"5df5acd0d48c2"}},"Key":{"type":"apiKey","name":"X-Appwrite-Key","description":"Your secret API key","in":"header","x-appwrite":{"demo":"919c2d18fb5d4...a2ae413da83346ad2"}},"JWT":{"type":"apiKey","name":"X-Appwrite-JWT","description":"Your secret JSON Web Token","in":"header","x-appwrite":{"demo":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."}},"Locale":{"type":"apiKey","name":"X-Appwrite-Locale","description":"","in":"header","x-appwrite":{"demo":"en"}},"Mode":{"type":"apiKey","name":"X-Appwrite-Mode","description":"","in":"header","x-appwrite":{"demo":""}}},"paths":{"\/account":{"get":{"summary":"Get Account","operationId":"accountGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user data as JSON object.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"get","weight":47,"cookies":false,"type":"","demo":"account\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]},"post":{"summary":"Create Account","operationId":"accountCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to allow a new user to register a new account in your project. After the user registration completes successfully, you can use the [\/account\/verfication](\/docs\/client\/account#accountCreateVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](\/docs\/client\/account#accountCreateSession).","responses":{"201":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"create","weight":37,"cookies":false,"type":"","demo":"account\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"},"name":{"type":"string","description":"User name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["userId","email","password"]}}]},"delete":{"summary":"Delete Account","operationId":"accountDelete","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Delete a currently logged in user account. Behind the scene, the user record is not deleted but permanently blocked from any access. This is done to avoid deleted accounts being overtaken by new users with the same email address. Any user-related resources like documents or storage files should be deleted separately.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":56,"cookies":false,"type":"","demo":"account\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/account\/email":{"patch":{"summary":"Update Account Email","operationId":"accountUpdateEmail","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account email address. After changing user address, the user confirmation status will get reset. A new confirmation email is not sent automatically however you can use the send confirmation email endpoint again to send the confirmation email. For security measures, user password is required to complete this request.\nThis endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.\n","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateEmail","weight":54,"cookies":false,"type":"","demo":"account\/update-email.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-email.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["email","password"]}}]}},"\/account\/jwt":{"post":{"summary":"Create Account JWT","operationId":"accountCreateJWT","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to create a JSON Web Token. You can use the resulting JWT to authenticate on behalf of the current user when working with the Appwrite server-side API and SDKs. The JWT secret is valid for 15 minutes from its creation and will be invalid if the user will logout in that time frame.","responses":{"201":{"description":"JWT","schema":{"$ref":"#\/definitions\/jwt"}}},"x-appwrite":{"method":"createJWT","weight":46,"cookies":false,"type":"","demo":"account\/create-j-w-t.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-jwt.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{userId}","scope":"account","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}]}},"\/account\/logs":{"get":{"summary":"Get Account Logs","operationId":"accountGetLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user list of latest security activity logs. Each log returns user IP address, location and date and time of log.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"getLogs","weight":50,"cookies":false,"type":"","demo":"account\/get-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"limit","description":"Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/account\/name":{"patch":{"summary":"Update Account Name","operationId":"accountUpdateName","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account name.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateName","weight":52,"cookies":false,"type":"","demo":"account\/update-name.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-name.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"User name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]}},"\/account\/password":{"patch":{"summary":"Update Account Password","operationId":"accountUpdatePassword","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user password. For validation, user is required to pass in the new password, and the old password. For users created with OAuth and Team Invites, oldPassword is optional.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePassword","weight":53,"cookies":false,"type":"","demo":"account\/update-password.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-password.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"},"oldPassword":{"type":"string","description":"Old user password. Must be at least 8 chars.","default":"","x-example":"password"}},"required":["password"]}}]}},"\/account\/prefs":{"get":{"summary":"Get Account Preferences","operationId":"accountGetPrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user preferences as a key-value object.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"getPrefs","weight":48,"cookies":false,"type":"","demo":"account\/get-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]},"patch":{"summary":"Update Account Preferences","operationId":"accountUpdatePrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account preferences. You can pass only the specific settings you wish to update.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePrefs","weight":55,"cookies":false,"type":"","demo":"account\/update-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"prefs":{"type":"object","description":"Prefs key-value JSON object.","default":{},"x-example":"{}"}},"required":["prefs"]}}]}},"\/account\/recovery":{"post":{"summary":"Create Password Recovery","operationId":"accountCreateRecovery","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Sends the user an email with a temporary secret key for password reset. When the user clicks the confirmation link he is redirected back to your app password reset URL with the secret key and email address values attached to the URL query string. Use the query string params to submit a request to the [PUT \/account\/recovery](\/docs\/client\/account#accountUpdateRecovery) endpoint to complete the process. The verification link sent to the user's email address is valid for 1 hour.","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createRecovery","weight":59,"cookies":false,"type":"","demo":"account\/create-recovery.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-recovery.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"url":{"type":"string","description":"URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"}},"required":["email","url"]}}]},"put":{"summary":"Create Password Recovery (confirmation)","operationId":"accountUpdateRecovery","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/recovery](\/docs\/client\/account#accountCreateRecovery) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.","responses":{"200":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"updateRecovery","weight":60,"cookies":false,"type":"","demo":"account\/update-recovery.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-recovery.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User account UID address.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Valid reset token.","default":null,"x-example":"[SECRET]"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"},"passwordAgain":{"type":"string","description":"New password again. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["userId","secret","password","passwordAgain"]}}]}},"\/account\/sessions":{"get":{"summary":"Get Account Sessions","operationId":"accountGetSessions","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user list of active sessions across different devices.","responses":{"200":{"description":"Sessions List","schema":{"$ref":"#\/definitions\/sessionList"}}},"x-appwrite":{"method":"getSessions","weight":49,"cookies":false,"type":"","demo":"account\/get-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]},"post":{"summary":"Create Account Session","operationId":"accountCreateSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Allow the user to login into their account by providing a valid email and password combination. This route will create a new session for the user.","responses":{"201":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"createSession","weight":38,"cookies":false,"type":"","demo":"account\/create-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["email","password"]}}]},"delete":{"summary":"Delete All Account Sessions","operationId":"accountDeleteSessions","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Delete all sessions from the user account and remove any sessions cookies from the end client.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSessions","weight":58,"cookies":false,"type":"","demo":"account\/delete-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-sessions.md","rate-limit":100,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/account\/sessions\/anonymous":{"post":{"summary":"Create Anonymous Session","operationId":"accountCreateAnonymousSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to allow a new user to register an anonymous account in your project. This route will also create a new session for the user. To allow the new user to convert an anonymous account to a normal account, you need to update its [email and password](\/docs\/client\/account#accountUpdateEmail) or create an [OAuth2 session](\/docs\/client\/account#accountCreateOAuth2Session).","responses":{"201":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"createAnonymousSession","weight":45,"cookies":false,"type":"","demo":"account\/create-anonymous-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session-anonymous.md","rate-limit":50,"rate-time":3600,"rate-key":"ip:{ip}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}]}},"\/account\/sessions\/magic-url":{"post":{"summary":"Create Magic URL session","operationId":"accountCreateMagicURLSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Sends the user an email with a secret key for creating a session. When the user clicks the link in the email, the user is redirected back to the URL you provided with the secret key and userId values attached to the URL query string. Use the query string parameters to submit a request to the [PUT \/account\/sessions\/magic-url](\/docs\/client\/account#accountUpdateMagicURLSession) endpoint to complete the login process. The link sent to the user's email address is valid for 1 hour. If you are on a mobile device you can leave the URL parameter empty, so that the login completion will be handled by your Appwrite instance by default.","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createMagicURLSession","weight":43,"cookies":false,"type":"","demo":"account\/create-magic-u-r-l-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-magic-url-session.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"url":{"type":"string","description":"URL to redirect the user back to your app from the magic URL login. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":"","x-example":"https:\/\/example.com"}},"required":["userId","email"]}}]},"put":{"summary":"Create Magic URL session (confirmation)","operationId":"accountUpdateMagicURLSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete creating the session with the Magic URL. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/sessions\/magic-url](\/docs\/client\/account#accountCreateMagicURLSession) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.","responses":{"200":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"updateMagicURLSession","weight":44,"cookies":false,"type":"","demo":"account\/update-magic-u-r-l-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-magic-url-session.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User unique ID.","default":null,"x-example":null},"secret":{"type":"string","description":"Valid verification token.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/account\/sessions\/oauth2\/{provider}":{"get":{"summary":"Create Account Session with OAuth2","operationId":"accountCreateOAuth2Session","consumes":["application\/json"],"produces":["text\/html"],"tags":["account"],"description":"Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the email received from the OAuth2 provider and attach the new session to the existing user. If no matching user is found - the server will create a new user..\n","responses":{"301":{"description":"No content"}},"x-appwrite":{"method":"createOAuth2Session","weight":39,"cookies":false,"type":"webAuth","demo":"account\/create-o-auth2session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session-oauth2.md","rate-limit":50,"rate-time":3600,"rate-key":"ip:{ip}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"provider","description":"OAuth2 Provider. Currently, supported providers are: amazon, apple, bitbucket, bitly, box, discord, dropbox, facebook, github, gitlab, google, linkedin, microsoft, paypal, paypalSandbox, salesforce, slack, spotify, tradeshift, tradeshiftBox, twitch, vk, yahoo, yandex, wordpress.","required":true,"type":"string","x-example":"amazon","in":"path"},{"name":"success","description":"URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","required":false,"type":"string","format":"url","x-example":"https:\/\/example.com","default":"","in":"query"},{"name":"failure","description":"URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","required":false,"type":"string","format":"url","x-example":"https:\/\/example.com","default":"","in":"query"},{"name":"scopes","description":"A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"}]}},"\/account\/sessions\/{sessionId}":{"get":{"summary":"Get Session By ID","operationId":"accountGetSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to get a logged in user's session using a Session ID. Inputting 'current' will return the current session being used.","responses":{"200":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"getSession","weight":51,"cookies":false,"type":"","demo":"account\/get-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-session.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"sessionId","description":"Session unique ID. Use the string 'current' to get the current device session.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]},"delete":{"summary":"Delete Account Session","operationId":"accountDeleteSession","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Use this endpoint to log out the currently logged in user from all their account sessions across all of their different devices. When using the option id argument, only the session unique ID provider will be deleted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSession","weight":57,"cookies":false,"type":"","demo":"account\/delete-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-session.md","rate-limit":100,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"sessionId","description":"Session unique ID. Use the string 'current' to delete the current device session.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]}},"\/account\/verification":{"post":{"summary":"Create Email Verification","operationId":"accountCreateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](\/docs\/client\/account#accountUpdateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createVerification","weight":61,"cookies":false,"type":"","demo":"account\/create-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-verification.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{userId}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"url":{"type":"string","description":"URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"}},"required":["url"]}}]},"put":{"summary":"Create Email Verification (confirmation)","operationId":"accountUpdateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.","responses":{"200":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"updateVerification","weight":62,"cookies":false,"type":"","demo":"account\/update-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-verification.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User unique ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Valid verification token.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/avatars\/browsers\/{code}":{"get":{"summary":"Get Browser Icon","operationId":"avatarsGetBrowser","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user \/account\/sessions endpoint. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getBrowser","weight":64,"cookies":false,"type":"location","demo":"avatars\/get-browser.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-browser.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"code","description":"Browser Code.","required":true,"type":"string","x-example":"aa","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/credit-cards\/{code}":{"get":{"summary":"Get Credit Card Icon","operationId":"avatarsGetCreditCard","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getCreditCard","weight":63,"cookies":false,"type":"location","demo":"avatars\/get-credit-card.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-credit-card.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"code","description":"Credit Card Code. Possible values: amex, argencard, cabal, censosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro.","required":true,"type":"string","x-example":"amex","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/favicon":{"get":{"summary":"Get Favicon","operationId":"avatarsGetFavicon","consumes":["application\/json"],"produces":["image\/*"],"tags":["avatars"],"description":"Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFavicon","weight":67,"cookies":false,"type":"location","demo":"avatars\/get-favicon.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-favicon.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"url","description":"Website URL which you want to fetch the favicon from.","required":true,"type":"string","format":"url","x-example":"https:\/\/example.com","in":"query"}]}},"\/avatars\/flags\/{code}":{"get":{"summary":"Get Country Flag","operationId":"avatarsGetFlag","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFlag","weight":65,"cookies":false,"type":"location","demo":"avatars\/get-flag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-flag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"code","description":"Country Code. ISO Alpha-2 country code format.","required":true,"type":"string","x-example":"af","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/image":{"get":{"summary":"Get Image from URL","operationId":"avatarsGetImage","consumes":["application\/json"],"produces":["image\/*"],"tags":["avatars"],"description":"Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getImage","weight":66,"cookies":false,"type":"location","demo":"avatars\/get-image.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-image.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"url","description":"Image URL which you want to crop.","required":true,"type":"string","format":"url","x-example":"https:\/\/example.com","in":"query"},{"name":"width","description":"Resize preview image width, Pass an integer between 0 to 2000.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"},{"name":"height","description":"Resize preview image height, Pass an integer between 0 to 2000.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"}]}},"\/avatars\/initials":{"get":{"summary":"Get User Initials","operationId":"avatarsGetInitials","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.\n\nYou can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getInitials","weight":69,"cookies":false,"type":"location","demo":"avatars\/get-initials.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-initials.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"name","description":"Full Name. When empty, current user name or email will be used. Max length: 128 chars.","required":false,"type":"string","x-example":"[NAME]","default":"","in":"query"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":500,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":500,"in":"query"},{"name":"color","description":"Changes text color. By default a random color will be picked and stay will persistent to the given name.","required":false,"type":"string","default":"","in":"query"},{"name":"background","description":"Changes background color. By default a random color will be picked and stay will persistent to the given name.","required":false,"type":"string","default":"","in":"query"}]}},"\/avatars\/qr":{"get":{"summary":"Get QR Code","operationId":"avatarsGetQR","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getQR","weight":68,"cookies":false,"type":"location","demo":"avatars\/get-q-r.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-qr.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"text","description":"Plain text to be converted to QR code image.","required":true,"type":"string","x-example":"[TEXT]","in":"query"},{"name":"size","description":"QR code size. Pass an integer between 0 to 1000. Defaults to 400.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"},{"name":"margin","description":"Margin from edge. Pass an integer between 0 to 10. Defaults to 1.","required":false,"type":"integer","format":"int32","x-example":0,"default":1,"in":"query"},{"name":"download","description":"Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.","required":false,"type":"boolean","x-example":false,"default":false,"in":"query"}]}},"\/database\/collections":{"get":{"summary":"List Collections","operationId":"databaseListCollections","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a list of all the user collections. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's collections. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Collections List","schema":{"$ref":"#\/definitions\/collectionList"}}},"x-appwrite":{"method":"listCollections","weight":71,"cookies":false,"type":"","demo":"database\/list-collections.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-collections.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the collection used as the starting point for the query, excluding the collection itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Collection","operationId":"databaseCreateCollection","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new Collection.","responses":{"201":{"description":"Collection","schema":{"$ref":"#\/definitions\/collection"}}},"x-appwrite":{"method":"createCollection","weight":70,"cookies":false,"type":"","demo":"database\/create-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"collectionId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Collection name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"permission":{"type":"string","description":"Permissions type model to use for reading documents in this collection. You can use collection-level permission set once on the collection using the `read` and `write` params, or you can set document-level permission where each document read and write params will decide who has access to read and write to each document individually. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"document"},"read":{"type":"array","description":"An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["collectionId","name","permission","read","write"]}}]}},"\/database\/collections\/{collectionId}":{"get":{"summary":"Get Collection","operationId":"databaseGetCollection","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.","responses":{"200":{"description":"Collection","schema":{"$ref":"#\/definitions\/collection"}}},"x-appwrite":{"method":"getCollection","weight":72,"cookies":false,"type":"","demo":"database\/get-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]},"put":{"summary":"Update Collection","operationId":"databaseUpdateCollection","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Update a collection by its unique ID.","responses":{"200":{"description":"Collection","schema":{"$ref":"#\/definitions\/collection"}}},"x-appwrite":{"method":"updateCollection","weight":76,"cookies":false,"type":"","demo":"database\/update-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/update-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Collection name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"permission":{"type":"string","description":"Permissions type model to use for reading documents in this collection. You can use collection-level permission set once on the collection using the `read` and `write` params, or you can set document-level permission where each document read and write params will decide who has access to read and write to each document individually. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"document"},"read":{"type":"array","description":"An array of strings with read permissions. By default inherits the existing read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default inherits the existing write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"enabled":{"type":"boolean","description":"Is collection enabled?","default":true,"x-example":false}},"required":["name","permission"]}}]},"delete":{"summary":"Delete Collection","operationId":"databaseDeleteCollection","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteCollection","weight":77,"cookies":false,"type":"","demo":"database\/delete-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]}},"\/database\/collections\/{collectionId}\/attributes":{"get":{"summary":"List Attributes","operationId":"databaseListAttributes","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"Attributes List","schema":{"$ref":"#\/definitions\/attributeList"}}},"x-appwrite":{"method":"listAttributes","weight":86,"cookies":false,"type":"","demo":"database\/list-attributes.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-attributes.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]}},"\/database\/collections\/{collectionId}\/attributes\/boolean":{"post":{"summary":"Create Boolean Attribute","operationId":"databaseCreateBooleanAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a boolean attribute.\n","responses":{"201":{"description":"AttributeBoolean","schema":{"$ref":"#\/definitions\/attributeBoolean"}}},"x-appwrite":{"method":"createBooleanAttribute","weight":85,"cookies":false,"type":"","demo":"database\/create-boolean-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-boolean-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"boolean","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":false},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/email":{"post":{"summary":"Create Email Attribute","operationId":"databaseCreateEmailAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create an email attribute.\n","responses":{"201":{"description":"AttributeEmail","schema":{"$ref":"#\/definitions\/attributeEmail"}}},"x-appwrite":{"method":"createEmailAttribute","weight":79,"cookies":false,"type":"","demo":"database\/create-email-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-email-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"email@example.com"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/enum":{"post":{"summary":"Create Enum Attribute","operationId":"databaseCreateEnumAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"201":{"description":"AttributeEnum","schema":{"$ref":"#\/definitions\/attributeEnum"}}},"x-appwrite":{"method":"createEnumAttribute","weight":80,"cookies":false,"type":"","demo":"database\/create-enum-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-attribute-enum.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"elements":{"type":"array","description":"Array of elements in enumerated type. Uses length of longest element to determine size.","default":null,"x-example":null,"items":{"type":"string"}},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"[DEFAULT]"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","elements","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/float":{"post":{"summary":"Create Float Attribute","operationId":"databaseCreateFloatAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a float attribute. Optionally, minimum and maximum values can be provided.\n","responses":{"201":{"description":"AttributeFloat","schema":{"$ref":"#\/definitions\/attributeFloat"}}},"x-appwrite":{"method":"createFloatAttribute","weight":84,"cookies":false,"type":"","demo":"database\/create-float-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-float-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"min":{"type":"string","description":"Minimum value to enforce on new documents","default":null,"x-example":null},"max":{"type":"string","description":"Maximum value to enforce on new documents","default":null,"x-example":null},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":null},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/integer":{"post":{"summary":"Create Integer Attribute","operationId":"databaseCreateIntegerAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create an integer attribute. Optionally, minimum and maximum values can be provided.\n","responses":{"201":{"description":"AttributeInteger","schema":{"$ref":"#\/definitions\/attributeInteger"}}},"x-appwrite":{"method":"createIntegerAttribute","weight":83,"cookies":false,"type":"","demo":"database\/create-integer-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-integer-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"min":{"type":"integer","description":"Minimum value to enforce on new documents","default":null,"x-example":null},"max":{"type":"integer","description":"Maximum value to enforce on new documents","default":null,"x-example":null},"default":{"type":"integer","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":null},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/ip":{"post":{"summary":"Create IP Address Attribute","operationId":"databaseCreateIpAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create IP address attribute.\n","responses":{"201":{"description":"AttributeIP","schema":{"$ref":"#\/definitions\/attributeIp"}}},"x-appwrite":{"method":"createIpAttribute","weight":81,"cookies":false,"type":"","demo":"database\/create-ip-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-ip-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":null},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/string":{"post":{"summary":"Create String Attribute","operationId":"databaseCreateStringAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new string attribute.\n","responses":{"201":{"description":"AttributeString","schema":{"$ref":"#\/definitions\/attributeString"}}},"x-appwrite":{"method":"createStringAttribute","weight":78,"cookies":false,"type":"","demo":"database\/create-string-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-string-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"size":{"type":"integer","description":"Attribute size for text attributes, in number of characters.","default":null,"x-example":1},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"[DEFAULT]"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","size","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/url":{"post":{"summary":"Create URL Attribute","operationId":"databaseCreateUrlAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a URL attribute.\n","responses":{"201":{"description":"AttributeURL","schema":{"$ref":"#\/definitions\/attributeUrl"}}},"x-appwrite":{"method":"createUrlAttribute","weight":82,"cookies":false,"type":"","demo":"database\/create-url-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-url-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"https:\/\/example.com"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/{attributeId}":{"get":{"summary":"Get Attribute","operationId":"databaseGetAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"AttributeBoolean, or AttributeInteger, or AttributeFloat, or AttributeEmail, or AttributeEnum, or AttributeURL, or AttributeIP, or AttributeString","schema":{"oneOf":[{"$ref":"#\/definitions\/attributeBoolean"},{"$ref":"#\/definitions\/attributeInteger"},{"$ref":"#\/definitions\/attributeFloat"},{"$ref":"#\/definitions\/attributeEmail"},{"$ref":"#\/definitions\/attributeEnum"},{"$ref":"#\/definitions\/attributeUrl"},{"$ref":"#\/definitions\/attributeIp"},{"$ref":"#\/definitions\/attributeString"}]}}},"x-appwrite":{"method":"getAttribute","weight":87,"cookies":false,"type":"","demo":"database\/get-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"attributeId","description":"Attribute ID.","required":true,"type":"string","in":"path"}]},"delete":{"summary":"Delete Attribute","operationId":"databaseDeleteAttribute","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteAttribute","weight":88,"cookies":false,"type":"","demo":"database\/delete-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"attributeId","description":"Attribute ID.","required":true,"type":"string","in":"path"}]}},"\/database\/collections\/{collectionId}\/documents":{"get":{"summary":"List Documents","operationId":"databaseListDocuments","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a list of all the user documents. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's documents. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Documents List","schema":{"$ref":"#\/definitions\/documentList"}}},"x-appwrite":{"method":"listDocuments","weight":94,"cookies":false,"type":"","demo":"database\/list-documents.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-documents.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"queries","description":"Array of query strings.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"},{"name":"limit","description":"Maximum number of documents to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the document used as the starting point for the query, excluding the document itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderAttributes","description":"Array of attributes used to sort results.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"},{"name":"orderTypes","description":"Array of order directions for sorting attribtues. Possible values are DESC for descending order, or ASC for ascending order.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"}]},"post":{"summary":"Create Document","operationId":"databaseCreateDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](\/docs\/server\/database#databaseCreateCollection) API or directly from your database console.","responses":{"201":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"createDocument","weight":93,"cookies":false,"type":"","demo":"database\/create-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection with validation rules using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"documentId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"data":{"type":"object","description":"Document data as JSON object.","default":{},"x-example":"{}"},"read":{"type":"array","description":"An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["documentId","data"]}}]}},"\/database\/collections\/{collectionId}\/documents\/{documentId}":{"get":{"summary":"Get Document","operationId":"databaseGetDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a document by its unique ID. This endpoint response returns a JSON object with the document data.","responses":{"200":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"getDocument","weight":95,"cookies":false,"type":"","demo":"database\/get-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"}]},"patch":{"summary":"Update Document","operationId":"databaseUpdateDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.","responses":{"200":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"updateDocument","weight":97,"cookies":false,"type":"","demo":"database\/update-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/update-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection with validation rules using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"data":{"type":"object","description":"Document data as JSON object.","default":{},"x-example":"{}"},"read":{"type":"array","description":"An array of strings with read permissions. By default inherits the existing read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default inherits the existing write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["data"]}}]},"delete":{"summary":"Delete Document","operationId":"databaseDeleteDocument","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"Delete a document by its unique ID. This endpoint deletes only the parent documents, its attributes and relations to other documents. Child documents **will not** be deleted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteDocument","weight":98,"cookies":false,"type":"","demo":"database\/delete-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"}]}},"\/database\/collections\/{collectionId}\/documents\/{documentId}\/logs":{"get":{"summary":"List Document Logs","operationId":"databaseListDocumentLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get the document activity logs list by its unique ID.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"listDocumentLogs","weight":96,"cookies":false,"type":"","demo":"database\/list-document-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-document-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"},{"name":"limit","description":"Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/database\/collections\/{collectionId}\/indexes":{"get":{"summary":"List Indexes","operationId":"databaseListIndexes","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"Indexes List","schema":{"$ref":"#\/definitions\/indexList"}}},"x-appwrite":{"method":"listIndexes","weight":90,"cookies":false,"type":"","demo":"database\/list-indexes.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-indexes.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]},"post":{"summary":"Create Index","operationId":"databaseCreateIndex","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"201":{"description":"Index","schema":{"$ref":"#\/definitions\/index"}}},"x-appwrite":{"method":"createIndex","weight":89,"cookies":false,"type":"","demo":"database\/create-index.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-index.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"indexId":{"type":"string","description":"Index ID.","default":null,"x-example":null},"type":{"type":"string","description":"Index type.","default":null,"x-example":"key"},"attributes":{"type":"array","description":"Array of attributes to index.","default":null,"x-example":null,"items":{"type":"string"}},"orders":{"type":"array","description":"Array of index orders.","default":[],"x-example":null,"items":{"type":"string"}}},"required":["indexId","type","attributes"]}}]}},"\/database\/collections\/{collectionId}\/indexes\/{indexId}":{"get":{"summary":"Get Index","operationId":"databaseGetIndex","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"Index","schema":{"$ref":"#\/definitions\/index"}}},"x-appwrite":{"method":"getIndex","weight":91,"cookies":false,"type":"","demo":"database\/get-index.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-index.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"indexId","description":"Index ID.","required":true,"type":"string","in":"path"}]},"delete":{"summary":"Delete Index","operationId":"databaseDeleteIndex","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteIndex","weight":92,"cookies":false,"type":"","demo":"database\/delete-index.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-index.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"indexId","description":"Index ID.","required":true,"type":"string","in":"path"}]}},"\/database\/collections\/{collectionId}\/logs":{"get":{"summary":"List Collection Logs","operationId":"databaseListCollectionLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get the collection activity logs list by its unique ID.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"listCollectionLogs","weight":75,"cookies":false,"type":"","demo":"database\/list-collection-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-collection-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"limit","description":"Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/database\/usage":{"get":{"summary":"Get usage stats for the database","operationId":"databaseGetUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"UsageDatabase","schema":{"$ref":"#\/definitions\/usageDatabase"}}},"x-appwrite":{"method":"getUsage","weight":73,"cookies":false,"type":"","demo":"database\/get-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"}]}},"\/database\/{collectionId}\/usage":{"get":{"summary":"Get usage stats for a collection","operationId":"databaseGetCollectionUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"UsageCollection","schema":{"$ref":"#\/definitions\/usageCollection"}}},"x-appwrite":{"method":"getCollectionUsage","weight":74,"cookies":false,"type":"","demo":"database\/get-collection-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"},{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]}},"\/functions":{"get":{"summary":"List Functions","operationId":"functionsList","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the project's functions. You can use the query params to filter your results.","responses":{"200":{"description":"Functions List","schema":{"$ref":"#\/definitions\/functionList"}}},"x-appwrite":{"method":"list","weight":187,"cookies":false,"type":"","demo":"functions\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-functions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the function used as the starting point for the query, excluding the function itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Function","operationId":"functionsCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Create a new function. You can pass a list of [permissions](\/docs\/permissions) to allow different project users or team with access to execute the function using the client API.","responses":{"201":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"create","weight":186,"cookies":false,"type":"","demo":"functions\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"functionId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Function name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"execute":{"type":"array","description":"An array of strings with execution permissions. By default no user is granted with any execute permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"runtime":{"type":"string","description":"Execution runtime.","default":null,"x-example":"dotnet-5.0"},"vars":{"type":"object","description":"Key-value JSON object.","default":[],"x-example":"{}"},"events":{"type":"array","description":"Events list.","default":[],"x-example":null,"items":{"type":"string"}},"schedule":{"type":"string","description":"Schedule CRON syntax.","default":"","x-example":null},"timeout":{"type":"integer","description":"Function maximum execution time in seconds.","default":15,"x-example":1}},"required":["functionId","name","execute","runtime"]}}]}},"\/functions\/runtimes":{"get":{"summary":"List the currently active function runtimes.","operationId":"functionsListRuntimes","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all runtimes that are currently active in your project.","responses":{"200":{"description":"Runtimes List","schema":{"$ref":"#\/definitions\/runtimeList"}}},"x-appwrite":{"method":"listRuntimes","weight":188,"cookies":false,"type":"","demo":"functions\/list-runtimes.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-runtimes.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/functions\/{functionId}":{"get":{"summary":"Get Function","operationId":"functionsGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a function by its unique ID.","responses":{"200":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"get","weight":189,"cookies":false,"type":"","demo":"functions\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"}]},"put":{"summary":"Update Function","operationId":"functionsUpdate","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Update function by its unique ID.","responses":{"200":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"update","weight":191,"cookies":false,"type":"","demo":"functions\/update.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/update-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Function name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"execute":{"type":"array","description":"An array of strings with execution permissions. By default no user is granted with any execute permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"vars":{"type":"object","description":"Key-value JSON object.","default":[],"x-example":"{}"},"events":{"type":"array","description":"Events list.","default":[],"x-example":null,"items":{"type":"string"}},"schedule":{"type":"string","description":"Schedule CRON syntax.","default":"","x-example":null},"timeout":{"type":"integer","description":"Function maximum execution time in seconds.","default":15,"x-example":1}},"required":["name","execute"]}}]},"delete":{"summary":"Delete Function","operationId":"functionsDelete","consumes":["application\/json"],"produces":[],"tags":["functions"],"description":"Delete a function by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":193,"cookies":false,"type":"","demo":"functions\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/delete-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"}]}},"\/functions\/{functionId}\/executions":{"get":{"summary":"List Executions","operationId":"functionsListExecutions","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the current user function execution logs. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's executions. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Executions List","schema":{"$ref":"#\/definitions\/executionList"}}},"x-appwrite":{"method":"listExecutions","weight":199,"cookies":false,"type":"","demo":"functions\/list-executions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-executions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"execution.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"cursor","description":"ID of the execution used as the starting point for the query, excluding the execution itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"}]},"post":{"summary":"Create Execution","operationId":"functionsCreateExecution","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.","responses":{"201":{"description":"Execution","schema":{"$ref":"#\/definitions\/execution"}}},"x-appwrite":{"method":"createExecution","weight":198,"cookies":false,"type":"","demo":"functions\/create-execution.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-execution.md","rate-limit":60,"rate-time":60,"rate-key":"url:{url},ip:{ip}","scope":"execution.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"data":{"type":"string","description":"String of custom data to send to function.","default":"","x-example":"[DATA]"}}}}]}},"\/functions\/{functionId}\/executions\/{executionId}":{"get":{"summary":"Get Execution","operationId":"functionsGetExecution","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a function execution log by its unique ID.","responses":{"200":{"description":"Execution","schema":{"$ref":"#\/definitions\/execution"}}},"x-appwrite":{"method":"getExecution","weight":200,"cookies":false,"type":"","demo":"functions\/get-execution.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-execution.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"execution.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"executionId","description":"Execution unique ID.","required":true,"type":"string","x-example":"[EXECUTION_ID]","in":"path"}]}},"\/functions\/{functionId}\/tag":{"patch":{"summary":"Update Function Tag","operationId":"functionsUpdateTag","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Update the function code tag ID using the unique function ID. Use this endpoint to switch the code tag that should be executed by the execution endpoint.","responses":{"200":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"updateTag","weight":192,"cookies":false,"type":"","demo":"functions\/update-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/update-function-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"tag":{"type":"string","description":"Tag unique ID.","default":null,"x-example":"[TAG]"}},"required":["tag"]}}]}},"\/functions\/{functionId}\/tags":{"get":{"summary":"List Tags","operationId":"functionsListTags","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the project's code tags. You can use the query params to filter your results.","responses":{"200":{"description":"Tags List","schema":{"$ref":"#\/definitions\/tagList"}}},"x-appwrite":{"method":"listTags","weight":195,"cookies":false,"type":"","demo":"functions\/list-tags.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-tags.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the tag used as the starting point for the query, excluding the tag itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Tag","operationId":"functionsCreateTag","consumes":["multipart\/form-data"],"produces":["application\/json"],"tags":["functions"],"description":"Create a new function code tag. Use this endpoint to upload a new version of your code function. To execute your newly uploaded code, you'll need to update the function's tag to use your new tag UID.\n\nThis endpoint accepts a tar.gz file compressed with your code. Make sure to include any dependencies your code has within the compressed file. You can learn more about code packaging in the [Appwrite Cloud Functions tutorial](\/docs\/functions).\n\nUse the \"command\" param to set the entry point used to execute your code.","responses":{"201":{"description":"Tag","schema":{"$ref":"#\/definitions\/tag"}}},"x-appwrite":{"method":"createTag","weight":194,"cookies":false,"type":"","demo":"functions\/create-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":true,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"command","description":"Code execution command.","required":true,"type":"string","x-example":"[COMMAND]","in":"formData"},{"name":"code","description":"Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.","required":true,"type":"file","in":"formData"}]}},"\/functions\/{functionId}\/tags\/{tagId}":{"get":{"summary":"Get Tag","operationId":"functionsGetTag","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a code tag by its unique ID.","responses":{"200":{"description":"Tag","schema":{"$ref":"#\/definitions\/tag"}}},"x-appwrite":{"method":"getTag","weight":196,"cookies":false,"type":"","demo":"functions\/get-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"tagId","description":"Tag unique ID.","required":true,"type":"string","x-example":"[TAG_ID]","in":"path"}]},"delete":{"summary":"Delete Tag","operationId":"functionsDeleteTag","consumes":["application\/json"],"produces":[],"tags":["functions"],"description":"Delete a code tag by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteTag","weight":197,"cookies":false,"type":"","demo":"functions\/delete-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/delete-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"tagId","description":"Tag unique ID.","required":true,"type":"string","x-example":"[TAG_ID]","in":"path"}]}},"\/functions\/{functionId}\/usage":{"get":{"summary":"Get Function Usage","operationId":"functionsGetUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"","responses":{"200":{"description":"UsageFunctions","schema":{"$ref":"#\/definitions\/usageFunctions"}}},"x-appwrite":{"method":"getUsage","weight":190,"cookies":false,"type":"","demo":"functions\/get-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"}]}},"\/health":{"get":{"summary":"Get HTTP","operationId":"healthGet","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite HTTP server is up and responsive.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"get","weight":106,"cookies":false,"type":"","demo":"health\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/anti-virus":{"get":{"summary":"Get Anti virus","operationId":"healthGetAntiVirus","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite Anti Virus server is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getAntiVirus","weight":117,"cookies":false,"type":"","demo":"health\/get-anti-virus.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-anti-virus.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/cache":{"get":{"summary":"Get Cache","operationId":"healthGetCache","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite in-memory cache server is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getCache","weight":109,"cookies":false,"type":"","demo":"health\/get-cache.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-cache.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/db":{"get":{"summary":"Get DB","operationId":"healthGetDB","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite database server is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getDB","weight":108,"cookies":false,"type":"","demo":"health\/get-d-b.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-db.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/certificates":{"get":{"summary":"Get Certificates Queue","operationId":"healthGetQueueCertificates","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of certificates that are waiting to be issued against [Letsencrypt](https:\/\/letsencrypt.org\/) in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueCertificates","weight":114,"cookies":false,"type":"","demo":"health\/get-queue-certificates.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-certificates.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/functions":{"get":{"summary":"Get Functions Queue","operationId":"healthGetQueueFunctions","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueFunctions","weight":115,"cookies":false,"type":"","demo":"health\/get-queue-functions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-functions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/logs":{"get":{"summary":"Get Logs Queue","operationId":"healthGetQueueLogs","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of logs that are waiting to be processed in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueLogs","weight":112,"cookies":false,"type":"","demo":"health\/get-queue-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/usage":{"get":{"summary":"Get Usage Queue","operationId":"healthGetQueueUsage","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of usage stats that are waiting to be processed in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueUsage","weight":113,"cookies":false,"type":"","demo":"health\/get-queue-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-usage.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/webhooks":{"get":{"summary":"Get Webhooks Queue","operationId":"healthGetQueueWebhooks","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of webhooks that are waiting to be processed in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueWebhooks","weight":111,"cookies":false,"type":"","demo":"health\/get-queue-webhooks.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-webhooks.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/storage\/local":{"get":{"summary":"Get Local Storage","operationId":"healthGetStorageLocal","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite local storage device is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getStorageLocal","weight":116,"cookies":false,"type":"","demo":"health\/get-storage-local.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-local.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/time":{"get":{"summary":"Get Time","operationId":"healthGetTime","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite server time is synced with Google remote NTP server. We use this technology to smoothly handle leap seconds with no disruptive events. The [Network Time Protocol](https:\/\/en.wikipedia.org\/wiki\/Network_Time_Protocol) (NTP) is used by hundreds of millions of computers and devices to synchronize their clocks over the Internet. If your computer sets its own clock, it likely uses NTP.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getTime","weight":110,"cookies":false,"type":"","demo":"health\/get-time.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-time.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/locale":{"get":{"summary":"Get User Locale","operationId":"localeGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.\n\n([IP Geolocation by DB-IP](https:\/\/db-ip.com))","responses":{"200":{"description":"Locale","schema":{"$ref":"#\/definitions\/locale"}}},"x-appwrite":{"method":"get","weight":99,"cookies":false,"type":"","demo":"locale\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/continents":{"get":{"summary":"List Continents","operationId":"localeGetContinents","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all continents. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Continents List","schema":{"$ref":"#\/definitions\/continentList"}}},"x-appwrite":{"method":"getContinents","weight":103,"cookies":false,"type":"","demo":"locale\/get-continents.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-continents.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/countries":{"get":{"summary":"List Countries","operationId":"localeGetCountries","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Countries List","schema":{"$ref":"#\/definitions\/countryList"}}},"x-appwrite":{"method":"getCountries","weight":100,"cookies":false,"type":"","demo":"locale\/get-countries.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/countries\/eu":{"get":{"summary":"List EU Countries","operationId":"localeGetCountriesEU","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries that are currently members of the EU. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Countries List","schema":{"$ref":"#\/definitions\/countryList"}}},"x-appwrite":{"method":"getCountriesEU","weight":101,"cookies":false,"type":"","demo":"locale\/get-countries-e-u.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries-eu.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/countries\/phones":{"get":{"summary":"List Countries Phone Codes","operationId":"localeGetCountriesPhones","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries phone codes. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Phones List","schema":{"$ref":"#\/definitions\/phoneList"}}},"x-appwrite":{"method":"getCountriesPhones","weight":102,"cookies":false,"type":"","demo":"locale\/get-countries-phones.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries-phones.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/currencies":{"get":{"summary":"List Currencies","operationId":"localeGetCurrencies","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Currencies List","schema":{"$ref":"#\/definitions\/currencyList"}}},"x-appwrite":{"method":"getCurrencies","weight":104,"cookies":false,"type":"","demo":"locale\/get-currencies.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-currencies.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/languages":{"get":{"summary":"List Languages","operationId":"localeGetLanguages","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.","responses":{"200":{"description":"Languages List","schema":{"$ref":"#\/definitions\/languageList"}}},"x-appwrite":{"method":"getLanguages","weight":105,"cookies":false,"type":"","demo":"locale\/get-languages.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-languages.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/projects":{"get":{"summary":"List Projects","operationId":"projectsList","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Projects List","schema":{"$ref":"#\/definitions\/projectList"}}},"x-appwrite":{"method":"list","weight":120,"cookies":false,"type":"","demo":"projects\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the project used as the starting point for the query, excluding the project itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Project","operationId":"projectsCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"201":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"create","weight":119,"cookies":false,"type":"","demo":"projects\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"projectId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Project name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"teamId":{"type":"string","description":"Team unique ID.","default":null,"x-example":"[TEAM_ID]"},"description":{"type":"string","description":"Project description. Max length: 256 chars.","default":"","x-example":"[DESCRIPTION]"},"logo":{"type":"string","description":"Project logo.","default":"","x-example":"[LOGO]"},"url":{"type":"string","description":"Project URL.","default":"","x-example":"https:\/\/example.com"},"legalName":{"type":"string","description":"Project legal Name. Max length: 256 chars.","default":"","x-example":"[LEGAL_NAME]"},"legalCountry":{"type":"string","description":"Project legal Country. Max length: 256 chars.","default":"","x-example":"[LEGAL_COUNTRY]"},"legalState":{"type":"string","description":"Project legal State. Max length: 256 chars.","default":"","x-example":"[LEGAL_STATE]"},"legalCity":{"type":"string","description":"Project legal City. Max length: 256 chars.","default":"","x-example":"[LEGAL_CITY]"},"legalAddress":{"type":"string","description":"Project legal Address. Max length: 256 chars.","default":"","x-example":"[LEGAL_ADDRESS]"},"legalTaxId":{"type":"string","description":"Project legal Tax ID. Max length: 256 chars.","default":"","x-example":"[LEGAL_TAX_ID]"}},"required":["projectId","name","teamId"]}}]}},"\/projects\/{projectId}":{"get":{"summary":"Get Project","operationId":"projectsGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"get","weight":121,"cookies":false,"type":"","demo":"projects\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"}]},"patch":{"summary":"Update Project","operationId":"projectsUpdate","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"update","weight":123,"cookies":false,"type":"","demo":"projects\/update.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Project name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"description":{"type":"string","description":"Project description. Max length: 256 chars.","default":"","x-example":"[DESCRIPTION]"},"logo":{"type":"string","description":"Project logo.","default":"","x-example":"[LOGO]"},"url":{"type":"string","description":"Project URL.","default":"","x-example":"https:\/\/example.com"},"legalName":{"type":"string","description":"Project legal name. Max length: 256 chars.","default":"","x-example":"[LEGAL_NAME]"},"legalCountry":{"type":"string","description":"Project legal country. Max length: 256 chars.","default":"","x-example":"[LEGAL_COUNTRY]"},"legalState":{"type":"string","description":"Project legal state. Max length: 256 chars.","default":"","x-example":"[LEGAL_STATE]"},"legalCity":{"type":"string","description":"Project legal city. Max length: 256 chars.","default":"","x-example":"[LEGAL_CITY]"},"legalAddress":{"type":"string","description":"Project legal address. Max length: 256 chars.","default":"","x-example":"[LEGAL_ADDRESS]"},"legalTaxId":{"type":"string","description":"Project legal tax ID. Max length: 256 chars.","default":"","x-example":"[LEGAL_TAX_ID]"}},"required":["name"]}}]},"delete":{"summary":"Delete Project","operationId":"projectsDelete","consumes":["application\/json"],"produces":[],"tags":["projects"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":128,"cookies":false,"type":"","demo":"projects\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"password":{"type":"string","description":"Your user password for confirmation. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["password"]}}]}},"\/projects\/{projectId}\/auth\/limit":{"patch":{"summary":"Update Project users limit","operationId":"projectsUpdateAuthLimit","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"updateAuthLimit","weight":126,"cookies":false,"type":"","demo":"projects\/update-auth-limit.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"limit":{"type":"integer","description":"Set the max number of users allowed in this project. Use 0 for unlimited.","default":null,"x-example":null}},"required":["limit"]}}]}},"\/projects\/{projectId}\/auth\/{method}":{"patch":{"summary":"Update Project auth method status. Use this endpoint to enable or disable a given auth method for this project.","operationId":"projectsUpdateAuthStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"updateAuthStatus","weight":127,"cookies":false,"type":"","demo":"projects\/update-auth-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"method","description":"Auth Method. Possible values: email-password,magic-url,anonymous,invites,jwt,phone","required":true,"type":"string","x-example":"email-password","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"status":{"type":"boolean","description":"Set the status of this auth method.","default":null,"x-example":false}},"required":["status"]}}]}},"\/projects\/{projectId}\/domains":{"get":{"summary":"List Domains","operationId":"projectsListDomains","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Domains List","schema":{"$ref":"#\/definitions\/domainList"}}},"x-appwrite":{"method":"listDomains","weight":145,"cookies":false,"type":"","demo":"projects\/list-domains.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"}]},"post":{"summary":"Create Domain","operationId":"projectsCreateDomain","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"201":{"description":"Domain","schema":{"$ref":"#\/definitions\/domain"}}},"x-appwrite":{"method":"createDomain","weight":144,"cookies":false,"type":"","demo":"projects\/create-domain.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name.","default":null,"x-example":null}},"required":["domain"]}}]}},"\/projects\/{projectId}\/domains\/{domainId}":{"get":{"summary":"Get Domain","operationId":"projectsGetDomain","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Domain","schema":{"$ref":"#\/definitions\/domain"}}},"x-appwrite":{"method":"getDomain","weight":146,"cookies":false,"type":"","demo":"projects\/get-domain.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"domainId","description":"Domain unique ID.","required":true,"type":"string","x-example":"[DOMAIN_ID]","in":"path"}]},"delete":{"summary":"Delete Domain","operationId":"projectsDeleteDomain","consumes":["application\/json"],"produces":[],"tags":["projects"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteDomain","weight":148,"cookies":false,"type":"","demo":"projects\/delete-domain.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"domainId","description":"Domain unique ID.","required":true,"type":"string","x-example":"[DOMAIN_ID]","in":"path"}]}},"\/projects\/{projectId}\/domains\/{domainId}\/verification":{"patch":{"summary":"Update Domain Verification Status","operationId":"projectsUpdateDomainVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Domain","schema":{"$ref":"#\/definitions\/domain"}}},"x-appwrite":{"method":"updateDomainVerification","weight":147,"cookies":false,"type":"","demo":"projects\/update-domain-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"domainId","description":"Domain unique ID.","required":true,"type":"string","x-example":"[DOMAIN_ID]","in":"path"}]}},"\/projects\/{projectId}\/keys":{"get":{"summary":"List Keys","operationId":"projectsListKeys","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"API Keys List","schema":{"$ref":"#\/definitions\/keyList"}}},"x-appwrite":{"method":"listKeys","weight":135,"cookies":false,"type":"","demo":"projects\/list-keys.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"}]},"post":{"summary":"Create Key","operationId":"projectsCreateKey","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"201":{"description":"Key","schema":{"$ref":"#\/definitions\/key"}}},"x-appwrite":{"method":"createKey","weight":134,"cookies":false,"type":"","demo":"projects\/create-key.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Key name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"scopes":{"type":"array","description":"Key scopes list.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["name","scopes"]}}]}},"\/projects\/{projectId}\/keys\/{keyId}":{"get":{"summary":"Get Key","operationId":"projectsGetKey","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Key","schema":{"$ref":"#\/definitions\/key"}}},"x-appwrite":{"method":"getKey","weight":136,"cookies":false,"type":"","demo":"projects\/get-key.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"keyId","description":"Key unique ID.","required":true,"type":"string","x-example":"[KEY_ID]","in":"path"}]},"put":{"summary":"Update Key","operationId":"projectsUpdateKey","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Key","schema":{"$ref":"#\/definitions\/key"}}},"x-appwrite":{"method":"updateKey","weight":137,"cookies":false,"type":"","demo":"projects\/update-key.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"keyId","description":"Key unique ID.","required":true,"type":"string","x-example":"[KEY_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Key name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"scopes":{"type":"array","description":"Key scopes list","default":null,"x-example":null,"items":{"type":"string"}}},"required":["name","scopes"]}}]},"delete":{"summary":"Delete Key","operationId":"projectsDeleteKey","consumes":["application\/json"],"produces":[],"tags":["projects"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteKey","weight":138,"cookies":false,"type":"","demo":"projects\/delete-key.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"keyId","description":"Key unique ID.","required":true,"type":"string","x-example":"[KEY_ID]","in":"path"}]}},"\/projects\/{projectId}\/oauth2":{"patch":{"summary":"Update Project OAuth2","operationId":"projectsUpdateOAuth2","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"updateOAuth2","weight":125,"cookies":false,"type":"","demo":"projects\/update-o-auth2.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"provider":{"type":"string","description":"Provider Name","default":null,"x-example":"amazon"},"appId":{"type":"string","description":"Provider app ID. Max length: 256 chars.","default":"","x-example":"[APP_ID]"},"secret":{"type":"string","description":"Provider secret key. Max length: 512 chars.","default":"","x-example":"[SECRET]"}},"required":["provider"]}}]}},"\/projects\/{projectId}\/platforms":{"get":{"summary":"List Platforms","operationId":"projectsListPlatforms","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Platforms List","schema":{"$ref":"#\/definitions\/platformList"}}},"x-appwrite":{"method":"listPlatforms","weight":140,"cookies":false,"type":"","demo":"projects\/list-platforms.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"}]},"post":{"summary":"Create Platform","operationId":"projectsCreatePlatform","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"201":{"description":"Platform","schema":{"$ref":"#\/definitions\/platform"}}},"x-appwrite":{"method":"createPlatform","weight":139,"cookies":false,"type":"","demo":"projects\/create-platform.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"type":{"type":"string","description":"Platform type.","default":null,"x-example":"web"},"name":{"type":"string","description":"Platform name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"key":{"type":"string","description":"Package name for Android or bundle ID for iOS or macOS. Max length: 256 chars.","default":"","x-example":"[KEY]"},"store":{"type":"string","description":"App store or Google Play store ID. Max length: 256 chars.","default":"","x-example":"[STORE]"},"hostname":{"type":"string","description":"Platform client hostname. Max length: 256 chars.","default":"","x-example":"[HOSTNAME]"}},"required":["type","name"]}}]}},"\/projects\/{projectId}\/platforms\/{platformId}":{"get":{"summary":"Get Platform","operationId":"projectsGetPlatform","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Platform","schema":{"$ref":"#\/definitions\/platform"}}},"x-appwrite":{"method":"getPlatform","weight":141,"cookies":false,"type":"","demo":"projects\/get-platform.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"platformId","description":"Platform unique ID.","required":true,"type":"string","x-example":"[PLATFORM_ID]","in":"path"}]},"put":{"summary":"Update Platform","operationId":"projectsUpdatePlatform","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Platform","schema":{"$ref":"#\/definitions\/platform"}}},"x-appwrite":{"method":"updatePlatform","weight":142,"cookies":false,"type":"","demo":"projects\/update-platform.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"platformId","description":"Platform unique ID.","required":true,"type":"string","x-example":"[PLATFORM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Platform name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"key":{"type":"string","description":"Package name for android or bundle ID for iOS. Max length: 256 chars.","default":"","x-example":"[KEY]"},"store":{"type":"string","description":"App store or Google Play store ID. Max length: 256 chars.","default":"","x-example":"[STORE]"},"hostname":{"type":"string","description":"Platform client URL. Max length: 256 chars.","default":"","x-example":"[HOSTNAME]"}},"required":["name"]}}]},"delete":{"summary":"Delete Platform","operationId":"projectsDeletePlatform","consumes":["application\/json"],"produces":[],"tags":["projects"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deletePlatform","weight":143,"cookies":false,"type":"","demo":"projects\/delete-platform.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"platformId","description":"Platform unique ID.","required":true,"type":"string","x-example":"[PLATFORM_ID]","in":"path"}]}},"\/projects\/{projectId}\/service":{"patch":{"summary":"Update service status","operationId":"projectsUpdateServiceStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"updateServiceStatus","weight":124,"cookies":false,"type":"","demo":"projects\/update-service-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"service":{"type":"string","description":"Service name.","default":null,"x-example":"account"},"status":{"type":"boolean","description":"Service status.","default":null,"x-example":false}},"required":["service","status"]}}]}},"\/projects\/{projectId}\/usage":{"get":{"summary":"Get usage stats for a project","operationId":"projectsGetUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"UsageProject","schema":{"$ref":"#\/definitions\/usageProject"}}},"x-appwrite":{"method":"getUsage","weight":122,"cookies":false,"type":"","demo":"projects\/get-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"}]}},"\/projects\/{projectId}\/webhooks":{"get":{"summary":"List Webhooks","operationId":"projectsListWebhooks","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Webhooks List","schema":{"$ref":"#\/definitions\/webhookList"}}},"x-appwrite":{"method":"listWebhooks","weight":130,"cookies":false,"type":"","demo":"projects\/list-webhooks.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"}]},"post":{"summary":"Create Webhook","operationId":"projectsCreateWebhook","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"201":{"description":"Webhook","schema":{"$ref":"#\/definitions\/webhook"}}},"x-appwrite":{"method":"createWebhook","weight":129,"cookies":false,"type":"","demo":"projects\/create-webhook.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Webhook name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"events":{"type":"array","description":"Events list.","default":null,"x-example":null,"items":{"type":"string"}},"url":{"type":"string","description":"Webhook URL.","default":null,"x-example":"https:\/\/example.com"},"security":{"type":"boolean","description":"Certificate verification, false for disabled or true for enabled.","default":null,"x-example":false},"httpUser":{"type":"string","description":"Webhook HTTP user. Max length: 256 chars.","default":"","x-example":"[HTTP_USER]"},"httpPass":{"type":"string","description":"Webhook HTTP password. Max length: 256 chars.","default":"","x-example":"[HTTP_PASS]"}},"required":["name","events","url","security"]}}]}},"\/projects\/{projectId}\/webhooks\/{webhookId}":{"get":{"summary":"Get Webhook","operationId":"projectsGetWebhook","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Webhook","schema":{"$ref":"#\/definitions\/webhook"}}},"x-appwrite":{"method":"getWebhook","weight":131,"cookies":false,"type":"","demo":"projects\/get-webhook.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"webhookId","description":"Webhook unique ID.","required":true,"type":"string","x-example":"[WEBHOOK_ID]","in":"path"}]},"put":{"summary":"Update Webhook","operationId":"projectsUpdateWebhook","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Webhook","schema":{"$ref":"#\/definitions\/webhook"}}},"x-appwrite":{"method":"updateWebhook","weight":132,"cookies":false,"type":"","demo":"projects\/update-webhook.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"webhookId","description":"Webhook unique ID.","required":true,"type":"string","x-example":"[WEBHOOK_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Webhook name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"events":{"type":"array","description":"Events list.","default":null,"x-example":null,"items":{"type":"string"}},"url":{"type":"string","description":"Webhook URL.","default":null,"x-example":"https:\/\/example.com"},"security":{"type":"boolean","description":"Certificate verification, false for disabled or true for enabled.","default":null,"x-example":false},"httpUser":{"type":"string","description":"Webhook HTTP user. Max length: 256 chars.","default":"","x-example":"[HTTP_USER]"},"httpPass":{"type":"string","description":"Webhook HTTP password. Max length: 256 chars.","default":"","x-example":"[HTTP_PASS]"}},"required":["name","events","url","security"]}}]},"delete":{"summary":"Delete Webhook","operationId":"projectsDeleteWebhook","consumes":["application\/json"],"produces":[],"tags":["projects"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteWebhook","weight":133,"cookies":false,"type":"","demo":"projects\/delete-webhook.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"webhookId","description":"Webhook unique ID.","required":true,"type":"string","x-example":"[WEBHOOK_ID]","in":"path"}]}},"\/storage\/files":{"get":{"summary":"List Files","operationId":"storageListFiles","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Get a list of all the user files. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's files. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Files List","schema":{"$ref":"#\/definitions\/fileList"}}},"x-appwrite":{"method":"listFiles","weight":150,"cookies":false,"type":"","demo":"storage\/list-files.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the file used as the starting point for the query, excluding the file itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create File","operationId":"storageCreateFile","consumes":["multipart\/form-data"],"produces":["application\/json"],"tags":["storage"],"description":"Create a new file. The user who creates the file will automatically be assigned to read and write access unless he has passed custom values for read and write arguments.","responses":{"201":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"createFile","weight":149,"cookies":false,"type":"upload","demo":"storage\/create-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","required":true,"type":"string","in":"formData"},{"name":"file","description":"Binary file.","required":true,"type":"file","in":"formData"},{"name":"read","description":"An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"in":"formData"},{"name":"write","description":"An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"in":"formData"}]}},"\/storage\/files\/{fileId}":{"get":{"summary":"Get File","operationId":"storageGetFile","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.","responses":{"200":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"getFile","weight":151,"cookies":false,"type":"","demo":"storage\/get-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]},"put":{"summary":"Update File","operationId":"storageUpdateFile","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Update a file by its unique ID. Only users with write permissions have access to update this resource.","responses":{"200":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"updateFile","weight":155,"cookies":false,"type":"","demo":"storage\/update-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"read":{"type":"array","description":"An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["read","write"]}}]},"delete":{"summary":"Delete File","operationId":"storageDeleteFile","consumes":["application\/json"],"produces":[],"tags":["storage"],"description":"Delete a file by its unique ID. Only users with write permissions have access to delete this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteFile","weight":156,"cookies":false,"type":"","demo":"storage\/delete-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/files\/{fileId}\/download":{"get":{"summary":"Get File for Download","operationId":"storageGetFileDownload","consumes":["application\/json"],"produces":["*\/*"],"tags":["storage"],"description":"Get a file content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.","responses":{"200":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getFileDownload","weight":153,"cookies":false,"type":"location","demo":"storage\/get-file-download.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/files\/{fileId}\/preview":{"get":{"summary":"Get File Preview","operationId":"storageGetFilePreview","consumes":["application\/json"],"produces":["image\/*"],"tags":["storage"],"description":"Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFilePreview","weight":152,"cookies":false,"type":"location","demo":"storage\/get-file-preview.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"},{"name":"width","description":"Resize preview image width, Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"height","description":"Resize preview image height, Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"gravity","description":"Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right","required":false,"type":"string","x-example":"center","default":"center","in":"query"},{"name":"quality","description":"Preview image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"borderWidth","description":"Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"borderColor","description":"Preview image border color. Use a valid HEX color, no # is needed for prefix.","required":false,"type":"string","default":"","in":"query"},{"name":"borderRadius","description":"Preview image border radius in pixels. Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"opacity","description":"Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.","required":false,"type":"number","format":"float","x-example":0,"default":1,"in":"query"},{"name":"rotation","description":"Preview image rotation in degrees. Pass an integer between -360 and 360.","required":false,"type":"integer","format":"int32","x-example":-360,"default":0,"in":"query"},{"name":"background","description":"Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.","required":false,"type":"string","default":"","in":"query"},{"name":"output","description":"Output format type (jpeg, jpg, png, gif and webp).","required":false,"type":"string","x-example":"jpg","default":"","in":"query"}]}},"\/storage\/files\/{fileId}\/view":{"get":{"summary":"Get File for View","operationId":"storageGetFileView","consumes":["application\/json"],"produces":["*\/*"],"tags":["storage"],"description":"Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.","responses":{"200":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getFileView","weight":154,"cookies":false,"type":"location","demo":"storage\/get-file-view.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/usage":{"get":{"summary":"Get usage stats for storage","operationId":"storageGetUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"","responses":{"200":{"description":"StorageUsage","schema":{"$ref":"#\/definitions\/usageStorage"}}},"x-appwrite":{"method":"getUsage","weight":157,"cookies":false,"type":"","demo":"storage\/get-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"}]}},"\/storage\/{bucketId}\/usage":{"get":{"summary":"Get usage stats for a storage bucket","operationId":"storageGetBucketUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"","responses":{"200":{"description":"UsageBuckets","schema":{"$ref":"#\/definitions\/usageBuckets"}}},"x-appwrite":{"method":"getBucketUsage","weight":158,"cookies":false,"type":"","demo":"storage\/get-bucket-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"bucketId","description":"Bucket unique ID.","required":true,"type":"string","x-example":"[BUCKET_ID]","in":"path"},{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"}]}},"\/teams":{"get":{"summary":"List Teams","operationId":"teamsList","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a list of all the current user teams. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's teams. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Teams List","schema":{"$ref":"#\/definitions\/teamList"}}},"x-appwrite":{"method":"list","weight":160,"cookies":false,"type":"","demo":"teams\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the team used as the starting point for the query, excluding the team itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Team","operationId":"teamsCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Create a new team. The user who creates the team will automatically be assigned as the owner of the team. The team owner can invite new members, who will be able add new owners and update or delete the team from your project.","responses":{"201":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"create","weight":159,"cookies":false,"type":"","demo":"teams\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"teamId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Team name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"roles":{"type":"array","description":"Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":["owner"],"x-example":null,"items":{"type":"string"}}},"required":["teamId","name"]}}]}},"\/teams\/{teamId}":{"get":{"summary":"Get Team","operationId":"teamsGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team by its unique ID. All team members have read access for this resource.","responses":{"200":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"get","weight":161,"cookies":false,"type":"","demo":"teams\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"}]},"put":{"summary":"Update Team","operationId":"teamsUpdate","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Update a team by its unique ID. Only team owners have write access for this resource.","responses":{"200":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"update","weight":162,"cookies":false,"type":"","demo":"teams\/update.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Team name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]},"delete":{"summary":"Delete Team","operationId":"teamsDelete","consumes":["application\/json"],"produces":[],"tags":["teams"],"description":"Delete a team by its unique ID. Only team owners have write access for this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":163,"cookies":false,"type":"","demo":"teams\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"}]}},"\/teams\/{teamId}\/memberships":{"get":{"summary":"Get Team Memberships","operationId":"teamsGetMemberships","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team members by the team unique ID. All team members have read access for this list of resources.","responses":{"200":{"description":"Memberships List","schema":{"$ref":"#\/definitions\/membershipList"}}},"x-appwrite":{"method":"getMemberships","weight":165,"cookies":false,"type":"","demo":"teams\/get-memberships.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-members.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the membership used as the starting point for the query, excluding the membership itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Team Membership","operationId":"teamsCreateMembership","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"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.\n\nUse 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.\n\nPlease 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.","responses":{"201":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"createMembership","weight":164,"cookies":false,"type":"","demo":"teams\/create-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team-membership.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"New team member email.","default":null,"x-example":"email@example.com"},"roles":{"type":"array","description":"Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":null,"x-example":null,"items":{"type":"string"}},"url":{"type":"string","description":"URL to redirect the user back to your app from the invitation email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"},"name":{"type":"string","description":"New team member name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["email","roles","url"]}}]}},"\/teams\/{teamId}\/memberships\/{membershipId}":{"get":{"summary":"Get Team Membership","operationId":"teamsGetMembership","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team member by the membership unique id. All team members have read access for this resource.","responses":{"200":{"description":"Memberships List","schema":{"$ref":"#\/definitions\/membershipList"}}},"x-appwrite":{"method":"getMembership","weight":166,"cookies":false,"type":"","demo":"teams\/get-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"membership unique ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"}]},"patch":{"summary":"Update Membership Roles","operationId":"teamsUpdateMembershipRoles","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"","responses":{"200":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"updateMembershipRoles","weight":167,"cookies":false,"type":"","demo":"teams\/update-membership-roles.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-roles.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"roles":{"type":"array","description":"Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["roles"]}}]},"delete":{"summary":"Delete Team Membership","operationId":"teamsDeleteMembership","consumes":["application\/json"],"produces":[],"tags":["teams"],"description":"This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteMembership","weight":169,"cookies":false,"type":"","demo":"teams\/delete-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"}]}},"\/teams\/{teamId}\/memberships\/{membershipId}\/status":{"patch":{"summary":"Update Team Membership Status","operationId":"teamsUpdateMembershipStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user.","responses":{"200":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"updateMembershipStatus","weight":168,"cookies":false,"type":"","demo":"teams\/update-membership-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User unique ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Secret key.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/users":{"get":{"summary":"List Users","operationId":"usersList","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get a list of all the project's users. You can use the query params to filter your results.","responses":{"200":{"description":"Users List","schema":{"$ref":"#\/definitions\/userList"}}},"x-appwrite":{"method":"list","weight":171,"cookies":false,"type":"","demo":"users\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-users.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the user used as the starting point for the query, excluding the user itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create User","operationId":"usersCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Create a new user.","responses":{"201":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"create","weight":170,"cookies":false,"type":"","demo":"users\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"},"name":{"type":"string","description":"User name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["userId","email","password"]}}]}},"\/users\/usage":{"get":{"summary":"Get usage stats for the users API","operationId":"usersGetUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"","responses":{"200":{"description":"UsageUsers","schema":{"$ref":"#\/definitions\/usageUsers"}}},"x-appwrite":{"method":"getUsage","weight":185,"cookies":false,"type":"","demo":"users\/get-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"},{"name":"provider","description":"Provider Name.","required":false,"type":"string","x-example":"email","default":"","in":"query"}]}},"\/users\/{userId}":{"get":{"summary":"Get User","operationId":"usersGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get a user by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"get","weight":172,"cookies":false,"type":"","demo":"users\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]},"delete":{"summary":"Delete User","operationId":"usersDelete","consumes":["application\/json"],"produces":[],"tags":["users"],"description":"Delete a user by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":184,"cookies":false,"type":"","demo":"users\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]}},"\/users\/{userId}\/email":{"patch":{"summary":"Update Email","operationId":"usersUpdateEmail","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user email by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateEmail","weight":180,"cookies":false,"type":"","demo":"users\/update-email.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"}},"required":["email"]}}]}},"\/users\/{userId}\/logs":{"get":{"summary":"Get User Logs","operationId":"usersGetLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get the user activity logs list by its unique ID.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"getLogs","weight":175,"cookies":false,"type":"","demo":"users\/get-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"limit","description":"Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/users\/{userId}\/name":{"patch":{"summary":"Update Name","operationId":"usersUpdateName","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user name by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateName","weight":178,"cookies":false,"type":"","demo":"users\/update-name.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-name.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"User name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]}},"\/users\/{userId}\/password":{"patch":{"summary":"Update Password","operationId":"usersUpdatePassword","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user password by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePassword","weight":179,"cookies":false,"type":"","demo":"users\/update-password.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-password.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"password":{"type":"string","description":"New user password. Must be between 6 to 32 chars.","default":null,"x-example":"password"}},"required":["password"]}}]}},"\/users\/{userId}\/prefs":{"get":{"summary":"Get User Preferences","operationId":"usersGetPrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get the user preferences by its unique ID.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"getPrefs","weight":173,"cookies":false,"type":"","demo":"users\/get-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]},"patch":{"summary":"Update User Preferences","operationId":"usersUpdatePrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user preferences by its unique ID. You can pass only the specific settings you wish to update.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"updatePrefs","weight":181,"cookies":false,"type":"","demo":"users\/update-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"prefs":{"type":"object","description":"Prefs key-value JSON object.","default":{},"x-example":"{}"}},"required":["prefs"]}}]}},"\/users\/{userId}\/sessions":{"get":{"summary":"Get User Sessions","operationId":"usersGetSessions","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get the user sessions list by its unique ID.","responses":{"200":{"description":"Sessions List","schema":{"$ref":"#\/definitions\/sessionList"}}},"x-appwrite":{"method":"getSessions","weight":174,"cookies":false,"type":"","demo":"users\/get-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]},"delete":{"summary":"Delete User Sessions","operationId":"usersDeleteSessions","consumes":["application\/json"],"produces":[],"tags":["users"],"description":"Delete all user's sessions by using the user's unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSessions","weight":183,"cookies":false,"type":"","demo":"users\/delete-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]}},"\/users\/{userId}\/sessions\/{sessionId}":{"delete":{"summary":"Delete User Session","operationId":"usersDeleteSession","consumes":["application\/json"],"produces":[],"tags":["users"],"description":"Delete a user sessions by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSession","weight":182,"cookies":false,"type":"","demo":"users\/delete-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-session.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"sessionId","description":"User unique session ID.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]}},"\/users\/{userId}\/status":{"patch":{"summary":"Update User Status","operationId":"usersUpdateStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user status by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateStatus","weight":176,"cookies":false,"type":"","demo":"users\/update-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-status.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"status":{"type":"boolean","description":"User Status. To activate the user pass `true` and to block the user pass `false`","default":null,"x-example":false}},"required":["status"]}}]}},"\/users\/{userId}\/verification":{"patch":{"summary":"Update Email Verification","operationId":"usersUpdateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user email verification status by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateVerification","weight":177,"cookies":false,"type":"","demo":"users\/update-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-verification.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"emailVerification":{"type":"boolean","description":"User Email Verification Status.","default":null,"x-example":false}},"required":["emailVerification"]}}]}}},"tags":[{"name":"account","description":"The Account service allows you to authenticate and manage a user account."},{"name":"avatars","description":"The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars."},{"name":"database","description":"The Database service allows you to create structured collections of documents, query and filter lists of documents"},{"name":"locale","description":"The Locale service allows you to customize your app based on your users' location."},{"name":"health","description":"The Health service allows you to both validate and monitor your Appwrite server's health."},{"name":"projects","description":"The Project service allows you to manage all the projects in your Appwrite server."},{"name":"storage","description":"The Storage service allows you to manage your project files."},{"name":"teams","description":"The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources"},{"name":"users","description":"The Users service allows you to manage your project users."},{"name":"functions","description":"The Functions Service allows you view, create and manage your Cloud Functions."}],"definitions":{"collectionList":{"description":"Collections List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"collections":{"type":"array","description":"List of collections.","items":{"type":"object","$ref":"#\/definitions\/collection"},"x-example":""}},"required":["sum","collections"]},"indexList":{"description":"Indexes List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"indexes":{"type":"array","description":"List of indexes.","items":{"type":"object","$ref":"#\/definitions\/index"},"x-example":""}},"required":["sum","indexes"]},"documentList":{"description":"Documents List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"documents":{"type":"array","description":"List of documents.","items":{"type":"object","$ref":"#\/definitions\/document"},"x-example":""}},"required":["sum","documents"]},"userList":{"description":"Users List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"users":{"type":"array","description":"List of users.","items":{"type":"object","$ref":"#\/definitions\/user"},"x-example":""}},"required":["sum","users"]},"sessionList":{"description":"Sessions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"sessions":{"type":"array","description":"List of sessions.","items":{"type":"object","$ref":"#\/definitions\/session"},"x-example":""}},"required":["sum","sessions"]},"logList":{"description":"Logs List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"logs":{"type":"array","description":"List of logs.","items":{"type":"object","$ref":"#\/definitions\/log"},"x-example":""}},"required":["sum","logs"]},"fileList":{"description":"Files List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"files":{"type":"array","description":"List of files.","items":{"type":"object","$ref":"#\/definitions\/file"},"x-example":""}},"required":["sum","files"]},"teamList":{"description":"Teams List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"teams":{"type":"array","description":"List of teams.","items":{"type":"object","$ref":"#\/definitions\/team"},"x-example":""}},"required":["sum","teams"]},"membershipList":{"description":"Memberships List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"memberships":{"type":"array","description":"List of memberships.","items":{"type":"object","$ref":"#\/definitions\/membership"},"x-example":""}},"required":["sum","memberships"]},"functionList":{"description":"Functions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"functions":{"type":"array","description":"List of functions.","items":{"type":"object","$ref":"#\/definitions\/function"},"x-example":""}},"required":["sum","functions"]},"runtimeList":{"description":"Runtimes List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"runtimes":{"type":"array","description":"List of runtimes.","items":{"type":"object","$ref":"#\/definitions\/runtime"},"x-example":""}},"required":["sum","runtimes"]},"tagList":{"description":"Tags List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"tags":{"type":"array","description":"List of tags.","items":{"type":"object","$ref":"#\/definitions\/tag"},"x-example":""}},"required":["sum","tags"]},"executionList":{"description":"Executions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"executions":{"type":"array","description":"List of executions.","items":{"type":"object","$ref":"#\/definitions\/execution"},"x-example":""}},"required":["sum","executions"]},"projectList":{"description":"Projects List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"projects":{"type":"array","description":"List of projects.","items":{"type":"object","$ref":"#\/definitions\/project"},"x-example":""}},"required":["sum","projects"]},"webhookList":{"description":"Webhooks List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"webhooks":{"type":"array","description":"List of webhooks.","items":{"type":"object","$ref":"#\/definitions\/webhook"},"x-example":""}},"required":["sum","webhooks"]},"keyList":{"description":"API Keys List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"keys":{"type":"array","description":"List of keys.","items":{"type":"object","$ref":"#\/definitions\/key"},"x-example":""}},"required":["sum","keys"]},"platformList":{"description":"Platforms List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"platforms":{"type":"array","description":"List of platforms.","items":{"type":"object","$ref":"#\/definitions\/platform"},"x-example":""}},"required":["sum","platforms"]},"domainList":{"description":"Domains List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"domains":{"type":"array","description":"List of domains.","items":{"type":"object","$ref":"#\/definitions\/domain"},"x-example":""}},"required":["sum","domains"]},"countryList":{"description":"Countries List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"countries":{"type":"array","description":"List of countries.","items":{"type":"object","$ref":"#\/definitions\/country"},"x-example":""}},"required":["sum","countries"]},"continentList":{"description":"Continents List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"continents":{"type":"array","description":"List of continents.","items":{"type":"object","$ref":"#\/definitions\/continent"},"x-example":""}},"required":["sum","continents"]},"languageList":{"description":"Languages List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"languages":{"type":"array","description":"List of languages.","items":{"type":"object","$ref":"#\/definitions\/language"},"x-example":""}},"required":["sum","languages"]},"currencyList":{"description":"Currencies List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"currencies":{"type":"array","description":"List of currencies.","items":{"type":"object","$ref":"#\/definitions\/currency"},"x-example":""}},"required":["sum","currencies"]},"phoneList":{"description":"Phones List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"phones":{"type":"array","description":"List of phones.","items":{"type":"object","$ref":"#\/definitions\/phone"},"x-example":""}},"required":["sum","phones"]},"metricList":{"description":"Metric List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"metrics":{"type":"array","description":"List of metrics.","items":{"type":"object","$ref":"#\/definitions\/metric"},"x-example":""}},"required":["sum","metrics"]},"collection":{"description":"Collection","type":"object","properties":{"$id":{"type":"string","description":"Collection ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"Collection read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"Collection write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"},"name":{"type":"string","description":"Collection name.","x-example":"My Collection"},"enabled":{"type":"boolean","description":"Collection enabled.","x-example":false},"permission":{"type":"string","description":"Collection permission model. Possible values: `document` or `collection`","x-example":"document"},"attributes":{"type":"array","description":"Collection attributes.","items":{"anyOf":[{"$ref":"#\/definitions\/attributeBoolean"},{"$ref":"#\/definitions\/attributeInteger"},{"$ref":"#\/definitions\/attributeFloat"},{"$ref":"#\/definitions\/attributeEmail"},{"$ref":"#\/definitions\/attributeEnum"},{"$ref":"#\/definitions\/attributeUrl"},{"$ref":"#\/definitions\/attributeIp"},{"$ref":"#\/definitions\/attributeString"}]},"x-example":{}},"indexes":{"type":"array","description":"Collection indexes.","items":{"type":"object","$ref":"#\/definitions\/index"},"x-example":{}}},"required":["$id","$read","$write","name","enabled","permission","attributes","indexes"]},"attributeList":{"description":"Attributes List","type":"object","properties":{"sum":{"type":"integer","description":"Total sum of items in the list.","x-example":5,"format":"int32"},"attributes":{"type":"array","description":"List of attributes.","items":{"anyOf":[{"$ref":"#\/definitions\/attributeBoolean"},{"$ref":"#\/definitions\/attributeInteger"},{"$ref":"#\/definitions\/attributeFloat"},{"$ref":"#\/definitions\/attributeEmail"},{"$ref":"#\/definitions\/attributeEnum"},{"$ref":"#\/definitions\/attributeUrl"},{"$ref":"#\/definitions\/attributeIp"},{"$ref":"#\/definitions\/attributeString"}]},"x-example":""}},"required":["sum","attributes"]},"attributeString":{"description":"AttributeString","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"size":{"type":"string","description":"Attribute size.","x-example":128},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"default","nullable":true}},"required":["key","type","status","required","size"]},"attributeInteger":{"description":"AttributeInteger","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"min":{"type":"integer","description":"Minimum value to enforce for new documents.","x-example":1,"format":"int32","nullable":true},"max":{"type":"integer","description":"Maximum value to enforce for new documents.","x-example":10,"format":"int32","nullable":true},"default":{"type":"integer","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":10,"format":"int32","nullable":true}},"required":["key","type","status","required"]},"attributeFloat":{"description":"AttributeFloat","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"min":{"type":"number","description":"Minimum value to enforce for new documents.","x-example":1.5,"format":"double","nullable":true},"max":{"type":"number","description":"Maximum value to enforce for new documents.","x-example":10.5,"format":"double","nullable":true},"default":{"type":"number","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":2.5,"format":"double","nullable":true}},"required":["key","type","status","required"]},"attributeBoolean":{"description":"AttributeBoolean","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"default":{"type":"boolean","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":false,"nullable":true}},"required":["key","type","status","required"]},"attributeEmail":{"description":"AttributeEmail","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"format":{"type":"string","description":"String format.","x-example":"email"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"default@example.com","nullable":true}},"required":["key","type","status","required","format"]},"attributeEnum":{"description":"AttributeEnum","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"elements":{"type":"array","description":"Array of elements in enumerated type.","items":{"type":"string"},"x-example":"element"},"format":{"type":"string","description":"String format.","x-example":"enum"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"element","nullable":true}},"required":["key","type","status","required","elements","format"]},"attributeIp":{"description":"AttributeIP","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"format":{"type":"string","description":"String format.","x-example":"ip"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"192.0.2.0","nullable":true}},"required":["key","type","status","required","format"]},"attributeUrl":{"description":"AttributeURL","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"format":{"type":"string","description":"String format.","x-example":"url"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"http:\/\/example.com","nullable":true}},"required":["key","type","status","required","format"]},"index":{"description":"Index","type":"object","properties":{"key":{"type":"string","description":"Index Key.","x-example":"index1"},"type":{"type":"string","description":"Index type.","x-example":""},"status":{"type":"string","description":"Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"attributes":{"type":"array","description":"Index attributes.","items":{"type":"string"},"x-example":[]},"orders":{"type":"array","description":"Index orders.","items":{"type":"string"},"x-example":[]}},"required":["key","type","status","attributes","orders"]},"document":{"description":"Document","type":"object","properties":{"$id":{"type":"string","description":"Document ID.","x-example":"5e5ea5c16897e"},"$collection":{"type":"string","description":"Collection ID.","x-example":"5e5ea5c15117e"},"$read":{"type":"array","description":"Document read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"Document write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"}},"additionalProperties":true,"required":["$id","$collection","$read","$write"]},"log":{"description":"Log","type":"object","properties":{"event":{"type":"string","description":"Event name.","x-example":"account.sessions.create"},"userId":{"type":"string","description":"User ID.","x-example":"610fc2f985ee0"},"userEmail":{"type":"string","description":"User Email.","x-example":"john@appwrite.io"},"userName":{"type":"string","description":"User Name.","x-example":"John Doe"},"mode":{"type":"string","description":"API mode when event triggered.","x-example":"admin"},"ip":{"type":"string","description":"IP session in use when the session was created.","x-example":"127.0.0.1"},"time":{"type":"integer","description":"Log creation time in Unix timestamp.","x-example":1592981250,"format":"int32"},"osCode":{"type":"string","description":"Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).","x-example":"Mac"},"osName":{"type":"string","description":"Operating system name.","x-example":"Mac"},"osVersion":{"type":"string","description":"Operating system version.","x-example":"Mac"},"clientType":{"type":"string","description":"Client type.","x-example":"browser"},"clientCode":{"type":"string","description":"Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).","x-example":"CM"},"clientName":{"type":"string","description":"Client name.","x-example":"Chrome Mobile iOS"},"clientVersion":{"type":"string","description":"Client version.","x-example":"84.0"},"clientEngine":{"type":"string","description":"Client engine name.","x-example":"WebKit"},"clientEngineVersion":{"type":"string","description":"Client engine name.","x-example":"605.1.15"},"deviceName":{"type":"string","description":"Device name.","x-example":"smartphone"},"deviceBrand":{"type":"string","description":"Device brand name.","x-example":"Google"},"deviceModel":{"type":"string","description":"Device model name.","x-example":"Nexus 5"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"}},"required":["event","userId","userEmail","userName","mode","ip","time","osCode","osName","osVersion","clientType","clientCode","clientName","clientVersion","clientEngine","clientEngineVersion","deviceName","deviceBrand","deviceModel","countryCode","countryName"]},"user":{"description":"User","type":"object","properties":{"$id":{"type":"string","description":"User ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"User name.","x-example":"John Doe"},"registration":{"type":"integer","description":"User registration date in Unix timestamp.","x-example":1592981250,"format":"int32"},"status":{"type":"boolean","description":"User status. Pass `true` for enabled and `false` for disabled.","x-example":true},"passwordUpdate":{"type":"integer","description":"Unix timestamp of the most recent password update","x-example":1592981250,"format":"int32"},"email":{"type":"string","description":"User email address.","x-example":"john@appwrite.io"},"emailVerification":{"type":"boolean","description":"Email verification status.","x-example":true},"prefs":{"type":"object","description":"User preferences as a key-value object","x-example":{"theme":"pink","timezone":"UTC"},"items":{"type":"object","$ref":"#\/definitions\/preferences"}}},"required":["$id","name","registration","status","passwordUpdate","email","emailVerification","prefs"]},"preferences":{"description":"Preferences","type":"object","additionalProperties":true},"session":{"description":"Session","type":"object","properties":{"$id":{"type":"string","description":"Session ID.","x-example":"5e5ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5bb8c16897e"},"expire":{"type":"integer","description":"Session expiration date in Unix timestamp.","x-example":1592981250,"format":"int32"},"provider":{"type":"string","description":"Session Provider.","x-example":"email"},"providerUid":{"type":"string","description":"Session Provider User ID.","x-example":"user@example.com"},"providerToken":{"type":"string","description":"Session Provider Token.","x-example":"MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"},"ip":{"type":"string","description":"IP in use when the session was created.","x-example":"127.0.0.1"},"osCode":{"type":"string","description":"Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).","x-example":"Mac"},"osName":{"type":"string","description":"Operating system name.","x-example":"Mac"},"osVersion":{"type":"string","description":"Operating system version.","x-example":"Mac"},"clientType":{"type":"string","description":"Client type.","x-example":"browser"},"clientCode":{"type":"string","description":"Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).","x-example":"CM"},"clientName":{"type":"string","description":"Client name.","x-example":"Chrome Mobile iOS"},"clientVersion":{"type":"string","description":"Client version.","x-example":"84.0"},"clientEngine":{"type":"string","description":"Client engine name.","x-example":"WebKit"},"clientEngineVersion":{"type":"string","description":"Client engine name.","x-example":"605.1.15"},"deviceName":{"type":"string","description":"Device name.","x-example":"smartphone"},"deviceBrand":{"type":"string","description":"Device brand name.","x-example":"Google"},"deviceModel":{"type":"string","description":"Device model name.","x-example":"Nexus 5"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"},"current":{"type":"boolean","description":"Returns true if this the current user session.","x-example":true}},"required":["$id","userId","expire","provider","providerUid","providerToken","ip","osCode","osName","osVersion","clientType","clientCode","clientName","clientVersion","clientEngine","clientEngineVersion","deviceName","deviceBrand","deviceModel","countryCode","countryName","current"]},"token":{"description":"Token","type":"object","properties":{"$id":{"type":"string","description":"Token ID.","x-example":"bb8ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5ea5c168bb8"},"secret":{"type":"string","description":"Token secret key. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.","x-example":""},"expire":{"type":"integer","description":"Token expiration date in Unix timestamp.","x-example":1592981250,"format":"int32"}},"required":["$id","userId","secret","expire"]},"jwt":{"description":"JWT","type":"object","properties":{"jwt":{"type":"string","description":"JWT encoded string.","x-example":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"}},"required":["jwt"]},"locale":{"description":"Locale","type":"object","properties":{"ip":{"type":"string","description":"User IP address.","x-example":"127.0.0.1"},"countryCode":{"type":"string","description":"Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format","x-example":"US"},"country":{"type":"string","description":"Country name. This field support localization.","x-example":"United States"},"continentCode":{"type":"string","description":"Continent code. A two character continent code \"AF\" for Africa, \"AN\" for Antarctica, \"AS\" for Asia, \"EU\" for Europe, \"NA\" for North America, \"OC\" for Oceania, and \"SA\" for South America.","x-example":"NA"},"continent":{"type":"string","description":"Continent name. This field support localization.","x-example":"North America"},"eu":{"type":"boolean","description":"True if country is part of the Europian Union.","x-example":false},"currency":{"type":"string","description":"Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format","x-example":"USD"}},"required":["ip","countryCode","country","continentCode","continent","eu","currency"]},"file":{"description":"File","type":"object","properties":{"$id":{"type":"string","description":"File ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"File read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"File write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"},"name":{"type":"string","description":"File name.","x-example":"Pink.png"},"dateCreated":{"type":"integer","description":"File creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"signature":{"type":"string","description":"File MD5 signature.","x-example":"5d529fd02b544198ae075bd57c1762bb"},"mimeType":{"type":"string","description":"File mime type.","x-example":"image\/png"},"sizeOriginal":{"type":"integer","description":"File original size in bytes.","x-example":17890,"format":"int32"}},"required":["$id","$read","$write","name","dateCreated","signature","mimeType","sizeOriginal"]},"team":{"description":"Team","type":"object","properties":{"$id":{"type":"string","description":"Team ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Team name.","x-example":"VIP"},"dateCreated":{"type":"integer","description":"Team creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"sum":{"type":"integer","description":"Total sum of team members.","x-example":7,"format":"int32"}},"required":["$id","name","dateCreated","sum"]},"membership":{"description":"Membership","type":"object","properties":{"$id":{"type":"string","description":"Membership ID.","x-example":"5e5ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5ea5c16897e"},"teamId":{"type":"string","description":"Team ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"User name.","x-example":"VIP"},"email":{"type":"string","description":"User email address.","x-example":"john@appwrite.io"},"invited":{"type":"integer","description":"Date, the user has been invited to join the team in Unix timestamp.","x-example":1592981250,"format":"int32"},"joined":{"type":"integer","description":"Date, the user has accepted the invitation to join the team in Unix timestamp.","x-example":1592981250,"format":"int32"},"confirm":{"type":"boolean","description":"User confirmation status, true if the user has joined the team or false otherwise.","x-example":false},"roles":{"type":"array","description":"User list of roles","items":{"type":"string"},"x-example":"admin"}},"required":["$id","userId","teamId","name","email","invited","joined","confirm","roles"]},"function":{"description":"Function","type":"object","properties":{"$id":{"type":"string","description":"Function ID.","x-example":"5e5ea5c16897e"},"execute":{"type":"object","description":"Function permissions.","x-example":{},"items":{"type":"object","$ref":"#\/definitions\/funcPermissions"}},"name":{"type":"string","description":"Function name.","x-example":"My Function"},"dateCreated":{"type":"integer","description":"Function creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"dateUpdated":{"type":"integer","description":"Function update date in Unix timestamp.","x-example":1592981257,"format":"int32"},"status":{"type":"string","description":"Function status. Possible values: `disabled`, `enabled`","x-example":"enabled"},"runtime":{"type":"string","description":"Function execution runtime.","x-example":"python-3.8"},"tag":{"type":"string","description":"Function active tag ID.","x-example":"5e5ea5c16897e"},"vars":{"type":"string","description":"Function environment variables.","x-example":{"key":"value"}},"events":{"type":"array","description":"Function trigger events.","items":{"type":"string"},"x-example":"account.create"},"schedule":{"type":"string","description":"Function execution schedult in CRON format.","x-example":"5 4 * * *"},"scheduleNext":{"type":"integer","description":"Function next scheduled execution date in Unix timestamp.","x-example":1592981292,"format":"int32"},"schedulePrevious":{"type":"integer","description":"Function next scheduled execution date in Unix timestamp.","x-example":1592981237,"format":"int32"},"timeout":{"type":"integer","description":"Function execution timeout in seconds.","x-example":1592981237,"format":"int32"}},"required":["$id","execute","name","dateCreated","dateUpdated","status","runtime","tag","vars","events","schedule","scheduleNext","schedulePrevious","timeout"]},"runtime":{"description":"Runtime","type":"object","properties":{"$id":{"type":"string","description":"Runtime ID.","x-example":"python-3.8"},"name":{"type":"string","description":"Runtime Name.","x-example":"Python"},"version":{"type":"string","description":"Runtime version.","x-example":"3.8"},"base":{"type":"string","description":"Base Docker image used to build the runtime.","x-example":"python:3.8-alpine"},"image":{"type":"string","description":"Image name of Docker Hub.","x-example":"appwrite\\\/runtime-for-python:3.8"},"logo":{"type":"string","description":"Name of the logo image.","x-example":"python.png"},"supports":{"type":"array","description":"List of supported architectures.","items":{"type":"string"},"x-example":"amd64"}},"required":["$id","name","version","base","image","logo","supports"]},"funcPermissions":{"description":"FuncPermissions","type":"object","properties":{"execute":{"type":"array","description":"Execution permissions.","items":{"type":"string"},"x-example":"user:5e5ea5c16897e"}},"required":["execute"]},"tag":{"description":"Tag","type":"object","properties":{"$id":{"type":"string","description":"Tag ID.","x-example":"5e5ea5c16897e"},"functionId":{"type":"string","description":"Function ID.","x-example":"5e5ea6g16897e"},"dateCreated":{"type":"integer","description":"The tag creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"command":{"type":"string","description":"The entrypoint command in use to execute the tag code.","x-example":"enabled"},"size":{"type":"string","description":"The code size in bytes.","x-example":"python-3.8"}},"required":["$id","functionId","dateCreated","command","size"]},"execution":{"description":"Execution","type":"object","properties":{"$id":{"type":"string","description":"Execution ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"Execution read permissions.","items":{"type":"string"},"x-example":"role:all"},"functionId":{"type":"string","description":"Function ID.","x-example":"5e5ea6g16897e"},"dateCreated":{"type":"integer","description":"The execution creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"trigger":{"type":"string","description":"The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.","x-example":"http"},"status":{"type":"string","description":"The status of the function execution. Possible values can be: `waiting`, `processing`, `completed`, or `failed`.","x-example":"processing"},"exitCode":{"type":"integer","description":"The script exit code.","x-example":0,"format":"int32"},"stdout":{"type":"string","description":"The script stdout output string. Logs the last 4,000 characters of the execution stdout output.","x-example":""},"stderr":{"type":"string","description":"The script stderr output string. Logs the last 4,000 characters of the execution stderr output","x-example":""},"time":{"type":"number","description":"The script execution time in seconds.","x-example":0.4,"format":"double"}},"required":["$id","$read","functionId","dateCreated","trigger","status","exitCode","stdout","stderr","time"]},"project":{"description":"Project","type":"object","properties":{"$id":{"type":"string","description":"Project ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Project name.","x-example":"New Project"},"description":{"type":"string","description":"Project description.","x-example":"This is a new project."},"teamId":{"type":"string","description":"Project team ID.","x-example":"1592981250"},"logo":{"type":"string","description":"Project logo file ID.","x-example":"5f5c451b403cb"},"url":{"type":"string","description":"Project website URL.","x-example":"5f5c451b403cb"},"legalName":{"type":"string","description":"Company legal name.","x-example":"Company LTD."},"legalCountry":{"type":"string","description":"Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format.","x-example":"US"},"legalState":{"type":"string","description":"State name.","x-example":"New York"},"legalCity":{"type":"string","description":"City name.","x-example":"New York City."},"legalAddress":{"type":"string","description":"Company Address.","x-example":"620 Eighth Avenue, New York, NY 10018"},"legalTaxId":{"type":"string","description":"Company Tax ID.","x-example":"131102020"},"authLimit":{"type":"integer","description":"Max users allowed. 0 is unlimited.","x-example":100,"format":"int32"},"platforms":{"type":"array","description":"List of Platforms.","items":{"type":"object","$ref":"#\/definitions\/platform"},"x-example":{}},"webhooks":{"type":"array","description":"List of Webhooks.","items":{"type":"object","$ref":"#\/definitions\/webhook"},"x-example":{}},"keys":{"type":"array","description":"List of API Keys.","items":{"type":"object","$ref":"#\/definitions\/key"},"x-example":{}},"domains":{"type":"array","description":"List of Domains.","items":{"type":"object","$ref":"#\/definitions\/domain"},"x-example":{}},"providerAmazonAppid":{"type":"string","description":"Amazon OAuth app ID.","x-example":"123247283472834787438"},"providerAmazonSecret":{"type":"string","description":"Amazon OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerAppleAppid":{"type":"string","description":"Apple OAuth app ID.","x-example":"123247283472834787438"},"providerAppleSecret":{"type":"string","description":"Apple OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerBitbucketAppid":{"type":"string","description":"BitBucket OAuth app ID.","x-example":"123247283472834787438"},"providerBitbucketSecret":{"type":"string","description":"BitBucket OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerBitlyAppid":{"type":"string","description":"Bitly OAuth app ID.","x-example":"123247283472834787438"},"providerBitlySecret":{"type":"string","description":"Bitly OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerBoxAppid":{"type":"string","description":"Box OAuth app ID.","x-example":"123247283472834787438"},"providerBoxSecret":{"type":"string","description":"Box OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerDiscordAppid":{"type":"string","description":"Discord OAuth app ID.","x-example":"123247283472834787438"},"providerDiscordSecret":{"type":"string","description":"Discord OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerDropboxAppid":{"type":"string","description":"Dropbox OAuth app ID.","x-example":"123247283472834787438"},"providerDropboxSecret":{"type":"string","description":"Dropbox OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerFacebookAppid":{"type":"string","description":"Facebook OAuth app ID.","x-example":"123247283472834787438"},"providerFacebookSecret":{"type":"string","description":"Facebook OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerGithubAppid":{"type":"string","description":"GitHub OAuth app ID.","x-example":"123247283472834787438"},"providerGithubSecret":{"type":"string","description":"GitHub OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerGitlabAppid":{"type":"string","description":"GitLab OAuth app ID.","x-example":"123247283472834787438"},"providerGitlabSecret":{"type":"string","description":"GitLab OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerGoogleAppid":{"type":"string","description":"Google OAuth app ID.","x-example":"123247283472834787438"},"providerGoogleSecret":{"type":"string","description":"Google OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerLinkedinAppid":{"type":"string","description":"LinkedIn OAuth app ID.","x-example":"123247283472834787438"},"providerLinkedinSecret":{"type":"string","description":"LinkedIn OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerMicrosoftAppid":{"type":"string","description":"Microsoft OAuth app ID.","x-example":"123247283472834787438"},"providerMicrosoftSecret":{"type":"string","description":"Microsoft OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerPaypalAppid":{"type":"string","description":"PayPal OAuth app ID.","x-example":"123247283472834787438"},"providerPaypalSecret":{"type":"string","description":"PayPal OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerPaypalSandboxAppid":{"type":"string","description":"PayPal OAuth app ID.","x-example":"123247283472834787438"},"providerPaypalSandboxSecret":{"type":"string","description":"PayPal OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerSalesforceAppid":{"type":"string","description":"Salesforce OAuth app ID.","x-example":"123247283472834787438"},"providerSalesforceSecret":{"type":"string","description":"Salesforce OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerSlackAppid":{"type":"string","description":"Slack OAuth app ID.","x-example":"123247283472834787438"},"providerSlackSecret":{"type":"string","description":"Slack OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerSpotifyAppid":{"type":"string","description":"Spotify OAuth app ID.","x-example":"123247283472834787438"},"providerSpotifySecret":{"type":"string","description":"Spotify OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerTradeshiftAppid":{"type":"string","description":"Tradeshift OAuth app ID.","x-example":"123247283472834787438"},"providerTradeshiftSecret":{"type":"string","description":"Tradeshift OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerTradeshiftBoxAppid":{"type":"string","description":"Tradeshift OAuth app ID.","x-example":"123247283472834787438"},"providerTradeshiftBoxSecret":{"type":"string","description":"Tradeshift OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerTwitchAppid":{"type":"string","description":"Twitch OAuth app ID.","x-example":"123247283472834787438"},"providerTwitchSecret":{"type":"string","description":"Twitch OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerVkAppid":{"type":"string","description":"VK OAuth app ID.","x-example":"123247283472834787438"},"providerVkSecret":{"type":"string","description":"VK OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerYahooAppid":{"type":"string","description":"Yahoo OAuth app ID.","x-example":"123247283472834787438"},"providerYahooSecret":{"type":"string","description":"Yahoo OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerYandexAppid":{"type":"string","description":"Yandex OAuth app ID.","x-example":"123247283472834787438"},"providerYandexSecret":{"type":"string","description":"Yandex OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerWordpressAppid":{"type":"string","description":"WordPress OAuth app ID.","x-example":"123247283472834787438"},"providerWordpressSecret":{"type":"string","description":"WordPress OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerMockAppid":{"type":"string","description":"Mock OAuth app ID.","x-example":"123247283472834787438"},"providerMockSecret":{"type":"string","description":"Mock OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"authEmailPassword":{"type":"boolean","description":"Email\/Password auth method status","x-example":true},"authUsersAuthMagicURL":{"type":"boolean","description":"Magic URL auth method status","x-example":true},"authAnonymous":{"type":"boolean","description":"Anonymous auth method status","x-example":true},"authInvites":{"type":"boolean","description":"Invites auth method status","x-example":true},"authJWT":{"type":"boolean","description":"JWT auth method status","x-example":true},"authPhone":{"type":"boolean","description":"Phone auth method status","x-example":true},"serviceStatusForAccount":{"type":"boolean","description":"Account service status","x-example":true},"serviceStatusForAvatars":{"type":"boolean","description":"Avatars service status","x-example":true},"serviceStatusForDatabase":{"type":"boolean","description":"Database service status","x-example":true},"serviceStatusForLocale":{"type":"boolean","description":"Locale service status","x-example":true},"serviceStatusForHealth":{"type":"boolean","description":"Health service status","x-example":true},"serviceStatusForStorage":{"type":"boolean","description":"Storage service status","x-example":true},"serviceStatusForTeams":{"type":"boolean","description":"Teams service status","x-example":true},"serviceStatusForUsers":{"type":"boolean","description":"Users service status","x-example":true},"serviceStatusForFunctions":{"type":"boolean","description":"Functions service status","x-example":true}},"required":["$id","name","description","teamId","logo","url","legalName","legalCountry","legalState","legalCity","legalAddress","legalTaxId","authLimit","platforms","webhooks","keys","domains","providerAmazonAppid","providerAmazonSecret","providerAppleAppid","providerAppleSecret","providerBitbucketAppid","providerBitbucketSecret","providerBitlyAppid","providerBitlySecret","providerBoxAppid","providerBoxSecret","providerDiscordAppid","providerDiscordSecret","providerDropboxAppid","providerDropboxSecret","providerFacebookAppid","providerFacebookSecret","providerGithubAppid","providerGithubSecret","providerGitlabAppid","providerGitlabSecret","providerGoogleAppid","providerGoogleSecret","providerLinkedinAppid","providerLinkedinSecret","providerMicrosoftAppid","providerMicrosoftSecret","providerPaypalAppid","providerPaypalSecret","providerPaypalSandboxAppid","providerPaypalSandboxSecret","providerSalesforceAppid","providerSalesforceSecret","providerSlackAppid","providerSlackSecret","providerSpotifyAppid","providerSpotifySecret","providerTradeshiftAppid","providerTradeshiftSecret","providerTradeshiftBoxAppid","providerTradeshiftBoxSecret","providerTwitchAppid","providerTwitchSecret","providerVkAppid","providerVkSecret","providerYahooAppid","providerYahooSecret","providerYandexAppid","providerYandexSecret","providerWordpressAppid","providerWordpressSecret","providerMockAppid","providerMockSecret","authEmailPassword","authUsersAuthMagicURL","authAnonymous","authInvites","authJWT","authPhone","serviceStatusForAccount","serviceStatusForAvatars","serviceStatusForDatabase","serviceStatusForLocale","serviceStatusForHealth","serviceStatusForStorage","serviceStatusForTeams","serviceStatusForUsers","serviceStatusForFunctions"]},"webhook":{"description":"Webhook","type":"object","properties":{"$id":{"type":"string","description":"Webhook ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Webhook name.","x-example":"My Webhook"},"url":{"type":"string","description":"Webhook URL endpoint.","x-example":"https:\/\/example.com\/webhook"},"events":{"type":"array","description":"Webhook trigger events.","items":{"type":"string"},"x-example":"database.collections.update"},"security":{"type":"boolean","description":"Indicated if SSL \/ TLS Certificate verification is enabled.","x-example":true},"httpUser":{"type":"string","description":"HTTP basic authentication username.","x-example":"username"},"httpPass":{"type":"string","description":"HTTP basic authentication password.","x-example":"password"}},"required":["$id","name","url","events","security","httpUser","httpPass"]},"key":{"description":"Key","type":"object","properties":{"$id":{"type":"string","description":"Key ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Key name.","x-example":"My API Key"},"scopes":{"type":"array","description":"Allowed permission scopes.","items":{"type":"string"},"x-example":"users.read"},"secret":{"type":"string","description":"Secret key.","x-example":"919c2d18fb5d4...a2ae413da83346ad2"}},"required":["$id","name","scopes","secret"]},"domain":{"description":"Domain","type":"object","properties":{"$id":{"type":"string","description":"Domain ID.","x-example":"5e5ea5c16897e"},"domain":{"type":"string","description":"Domain name.","x-example":"appwrite.company.com"},"registerable":{"type":"string","description":"Registerable domain name.","x-example":"company.com"},"tld":{"type":"string","description":"TLD name.","x-example":"com"},"verification":{"type":"boolean","description":"Verification process status.","x-example":true},"certificateId":{"type":"string","description":"Certificate ID.","x-example":"6ejea5c13377e"}},"required":["$id","domain","registerable","tld","verification","certificateId"]},"platform":{"description":"Platform","type":"object","properties":{"$id":{"type":"string","description":"Platform ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Platform name.","x-example":"My Web App"},"type":{"type":"string","description":"Platform type. Possible values are: web, flutter-ios, flutter-android, ios, android, and unity.","x-example":"My Web App"},"key":{"type":"string","description":"Platform Key. iOS bundle ID or Android package name. Empty string for other platforms.","x-example":"com.company.appname"},"store":{"type":"string","description":"App store or Google Play store ID.","x-example":""},"hostname":{"type":"string","description":"Web app hostname. Empty string for other platforms.","x-example":true},"httpUser":{"type":"string","description":"HTTP basic authentication username.","x-example":"username"},"httpPass":{"type":"string","description":"HTTP basic authentication password.","x-example":"password"}},"required":["$id","name","type","key","store","hostname","httpUser","httpPass"]},"country":{"description":"Country","type":"object","properties":{"name":{"type":"string","description":"Country name.","x-example":"United States"},"code":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"}},"required":["name","code"]},"continent":{"description":"Continent","type":"object","properties":{"name":{"type":"string","description":"Continent name.","x-example":"Europe"},"code":{"type":"string","description":"Continent two letter code.","x-example":"EU"}},"required":["name","code"]},"language":{"description":"Language","type":"object","properties":{"name":{"type":"string","description":"Language name.","x-example":"Italian"},"code":{"type":"string","description":"Language two-character ISO 639-1 codes.","x-example":"it"},"nativeName":{"type":"string","description":"Language native name.","x-example":"Italiano"}},"required":["name","code","nativeName"]},"currency":{"description":"Currency","type":"object","properties":{"symbol":{"type":"string","description":"Currency symbol.","x-example":"$"},"name":{"type":"string","description":"Currency name.","x-example":"US dollar"},"symbolNative":{"type":"string","description":"Currency native symbol.","x-example":"$"},"decimalDigits":{"type":"integer","description":"Number of decimal digits.","x-example":2,"format":"int32"},"rounding":{"type":"number","description":"Currency digit rounding.","x-example":0,"format":"double"},"code":{"type":"string","description":"Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format.","x-example":"USD"},"namePlural":{"type":"string","description":"Currency plural name","x-example":"US dollars"}},"required":["symbol","name","symbolNative","decimalDigits","rounding","code","namePlural"]},"phone":{"description":"Phone","type":"object","properties":{"code":{"type":"string","description":"Phone code.","x-example":"+1"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"}},"required":["code","countryCode","countryName"]},"usageDatabase":{"description":"UsageDatabase","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"documentsCount":{"type":"array","description":"Aggregated stats for total number of documents.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"collectionsCount":{"type":"array","description":"Aggregated stats for total number of collections.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsCreate":{"type":"array","description":"Aggregated stats for documents created.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsRead":{"type":"array","description":"Aggregated stats for documents read.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsUpdate":{"type":"array","description":"Aggregated stats for documents updated.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsDelete":{"type":"array","description":"Aggregated stats for documents deleted.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"collectionsCreate":{"type":"array","description":"Aggregated stats for collections created.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"collectionsRead":{"type":"array","description":"Aggregated stats for collections read.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"collectionsUpdate":{"type":"array","description":"Aggregated stats for collections updated.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"collectionsDelete":{"type":"array","description":"Aggregated stats for collections delete.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","documentsCount","collectionsCount","documentsCreate","documentsRead","documentsUpdate","documentsDelete","collectionsCreate","collectionsRead","collectionsUpdate","collectionsDelete"]},"usageCollection":{"description":"UsageCollection","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"documentsCount":{"type":"array","description":"Aggregated stats for total number of documents.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsCreate":{"type":"array","description":"Aggregated stats for documents created.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsRead":{"type":"array","description":"Aggregated stats for documents read.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsUpdate":{"type":"array","description":"Aggregated stats for documents updated.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsDelete":{"type":"array","description":"Aggregated stats for documents deleted.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","documentsCount","documentsCreate","documentsRead","documentsUpdate","documentsDelete"]},"usageUsers":{"description":"UsageUsers","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"usersCount":{"type":"array","description":"Aggregated stats for total number of users.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"usersCreate":{"type":"array","description":"Aggregated stats for users created.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"usersRead":{"type":"array","description":"Aggregated stats for users read.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"usersUpdate":{"type":"array","description":"Aggregated stats for users updated.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"usersDelete":{"type":"array","description":"Aggregated stats for users deleted.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"sessionsCreate":{"type":"array","description":"Aggregated stats for sessions created.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"sessionsProviderCreate":{"type":"array","description":"Aggregated stats for sessions created for a provider ( email, anonymous or oauth2 ).","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"sessionsDelete":{"type":"array","description":"Aggregated stats for sessions deleted.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","usersCount","usersCreate","usersRead","usersUpdate","usersDelete","sessionsCreate","sessionsProviderCreate","sessionsDelete"]},"usageStorage":{"description":"StorageUsage","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"storage":{"type":"array","description":"Aggregated stats for the occupied storage size (in bytes).","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"files":{"type":"array","description":"Aggregated stats for total number of files.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","storage","files"]},"usageBuckets":{"description":"UsageBuckets","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"filesCount":{"type":"array","description":"Aggregated stats for total number of files in this bucket.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"filesCreate":{"type":"array","description":"Aggregated stats for files created.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"filesRead":{"type":"array","description":"Aggregated stats for files read.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"filesUpdate":{"type":"array","description":"Aggregated stats for files updated.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"filesDelete":{"type":"array","description":"Aggregated stats for files deleted.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","filesCount","filesCreate","filesRead","filesUpdate","filesDelete"]},"usageFunctions":{"description":"UsageFunctions","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"functionsExecutions":{"type":"array","description":"Aggregated stats for function executions.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"functionsFailures":{"type":"array","description":"Aggregated stats for function execution failures.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"functionsCompute":{"type":"array","description":"Aggregated stats for function execution duration.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","functionsExecutions","functionsFailures","functionsCompute"]},"usageProject":{"description":"UsageProject","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"requests":{"type":"array","description":"Aggregated stats for number of requests.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"network":{"type":"array","description":"Aggregated stats for consumed bandwidth.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"functions":{"type":"array","description":"Aggregated stats for function executions.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documents":{"type":"array","description":"Aggregated stats for number of documents.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"collections":{"type":"array","description":"Aggregated stats for number of collections.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"users":{"type":"array","description":"Aggregated stats for number of users.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"storage":{"type":"array","description":"Aggregated stats for the occupied storage size (in bytes).","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","requests","network","functions","documents","collections","users","storage"]}},"externalDocs":{"description":"Full API docs, specs and tutorials","url":"https:\/\/appwrite.io\/docs"}} \ No newline at end of file +{"swagger":"2.0","info":{"version":"0.12.0","title":"Appwrite","description":"Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)","termsOfService":"https:\/\/appwrite.io\/policy\/terms","contact":{"name":"Appwrite Team","url":"https:\/\/appwrite.io\/support","email":"team@appwrite.io"},"license":{"name":"BSD-3-Clause","url":"https:\/\/raw.githubusercontent.com\/appwrite\/appwrite\/master\/LICENSE"}},"host":"appwrite.io","basePath":"\/v1","schemes":["https"],"consumes":["application\/json","multipart\/form-data"],"produces":["application\/json"],"securityDefinitions":{"Project":{"type":"apiKey","name":"X-Appwrite-Project","description":"Your project ID","in":"header","x-appwrite":{"demo":"5df5acd0d48c2"}},"Key":{"type":"apiKey","name":"X-Appwrite-Key","description":"Your secret API key","in":"header","x-appwrite":{"demo":"919c2d18fb5d4...a2ae413da83346ad2"}},"JWT":{"type":"apiKey","name":"X-Appwrite-JWT","description":"Your secret JSON Web Token","in":"header","x-appwrite":{"demo":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."}},"Locale":{"type":"apiKey","name":"X-Appwrite-Locale","description":"","in":"header","x-appwrite":{"demo":"en"}},"Mode":{"type":"apiKey","name":"X-Appwrite-Mode","description":"","in":"header","x-appwrite":{"demo":""}}},"paths":{"\/account":{"get":{"summary":"Get Account","operationId":"accountGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user data as JSON object.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"get","weight":47,"cookies":false,"type":"","demo":"account\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]},"post":{"summary":"Create Account","operationId":"accountCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to allow a new user to register a new account in your project. After the user registration completes successfully, you can use the [\/account\/verfication](\/docs\/client\/account#accountCreateVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](\/docs\/client\/account#accountCreateSession).","responses":{"201":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"create","weight":37,"cookies":false,"type":"","demo":"account\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"},"name":{"type":"string","description":"User name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["userId","email","password"]}}]},"delete":{"summary":"Delete Account","operationId":"accountDelete","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Delete a currently logged in user account. Behind the scene, the user record is not deleted but permanently blocked from any access. This is done to avoid deleted accounts being overtaken by new users with the same email address. Any user-related resources like documents or storage files should be deleted separately.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":56,"cookies":false,"type":"","demo":"account\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/account\/email":{"patch":{"summary":"Update Account Email","operationId":"accountUpdateEmail","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account email address. After changing user address, the user confirmation status will get reset. A new confirmation email is not sent automatically however you can use the send confirmation email endpoint again to send the confirmation email. For security measures, user password is required to complete this request.\nThis endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.\n","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateEmail","weight":54,"cookies":false,"type":"","demo":"account\/update-email.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-email.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["email","password"]}}]}},"\/account\/jwt":{"post":{"summary":"Create Account JWT","operationId":"accountCreateJWT","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to create a JSON Web Token. You can use the resulting JWT to authenticate on behalf of the current user when working with the Appwrite server-side API and SDKs. The JWT secret is valid for 15 minutes from its creation and will be invalid if the user will logout in that time frame.","responses":{"201":{"description":"JWT","schema":{"$ref":"#\/definitions\/jwt"}}},"x-appwrite":{"method":"createJWT","weight":46,"cookies":false,"type":"","demo":"account\/create-j-w-t.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-jwt.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{userId}","scope":"account","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}]}},"\/account\/logs":{"get":{"summary":"Get Account Logs","operationId":"accountGetLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user list of latest security activity logs. Each log returns user IP address, location and date and time of log.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"getLogs","weight":50,"cookies":false,"type":"","demo":"account\/get-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"limit","description":"Maximum number of logs to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this value to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/account\/name":{"patch":{"summary":"Update Account Name","operationId":"accountUpdateName","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account name.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateName","weight":52,"cookies":false,"type":"","demo":"account\/update-name.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-name.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"User name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]}},"\/account\/password":{"patch":{"summary":"Update Account Password","operationId":"accountUpdatePassword","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user password. For validation, user is required to pass in the new password, and the old password. For users created with OAuth and Team Invites, oldPassword is optional.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePassword","weight":53,"cookies":false,"type":"","demo":"account\/update-password.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-password.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"password":{"type":"string","description":"New user password. Must be at least 8 chars.","default":null,"x-example":"password"},"oldPassword":{"type":"string","description":"Current user password. Must be at least 8 chars.","default":"","x-example":"password"}},"required":["password"]}}]}},"\/account\/prefs":{"get":{"summary":"Get Account Preferences","operationId":"accountGetPrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user preferences as a key-value object.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"getPrefs","weight":48,"cookies":false,"type":"","demo":"account\/get-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]},"patch":{"summary":"Update Account Preferences","operationId":"accountUpdatePrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account preferences. You can pass only the specific settings you wish to update.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePrefs","weight":55,"cookies":false,"type":"","demo":"account\/update-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"prefs":{"type":"object","description":"Prefs key-value JSON object.","default":{},"x-example":"{}"}},"required":["prefs"]}}]}},"\/account\/recovery":{"post":{"summary":"Create Password Recovery","operationId":"accountCreateRecovery","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Sends the user an email with a temporary secret key for password reset. When the user clicks the confirmation link he is redirected back to your app password reset URL with the secret key and email address values attached to the URL query string. Use the query string params to submit a request to the [PUT \/account\/recovery](\/docs\/client\/account#accountUpdateRecovery) endpoint to complete the process. The verification link sent to the user's email address is valid for 1 hour.","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createRecovery","weight":59,"cookies":false,"type":"","demo":"account\/create-recovery.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-recovery.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"url":{"type":"string","description":"URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"}},"required":["email","url"]}}]},"put":{"summary":"Create Password Recovery (confirmation)","operationId":"accountUpdateRecovery","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/recovery](\/docs\/client\/account#accountCreateRecovery) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.","responses":{"200":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"updateRecovery","weight":60,"cookies":false,"type":"","demo":"account\/update-recovery.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-recovery.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Valid reset token.","default":null,"x-example":"[SECRET]"},"password":{"type":"string","description":"New user password. Must be at least 8 chars.","default":null,"x-example":"password"},"passwordAgain":{"type":"string","description":"Repeat new user password. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["userId","secret","password","passwordAgain"]}}]}},"\/account\/sessions":{"get":{"summary":"Get Account Sessions","operationId":"accountGetSessions","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user list of active sessions across different devices.","responses":{"200":{"description":"Sessions List","schema":{"$ref":"#\/definitions\/sessionList"}}},"x-appwrite":{"method":"getSessions","weight":49,"cookies":false,"type":"","demo":"account\/get-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]},"post":{"summary":"Create Account Session","operationId":"accountCreateSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Allow the user to login into their account by providing a valid email and password combination. This route will create a new session for the user.","responses":{"201":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"createSession","weight":38,"cookies":false,"type":"","demo":"account\/create-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["email","password"]}}]},"delete":{"summary":"Delete All Account Sessions","operationId":"accountDeleteSessions","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Delete all sessions from the user account and remove any sessions cookies from the end client.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSessions","weight":58,"cookies":false,"type":"","demo":"account\/delete-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-sessions.md","rate-limit":100,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/account\/sessions\/anonymous":{"post":{"summary":"Create Anonymous Session","operationId":"accountCreateAnonymousSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to allow a new user to register an anonymous account in your project. This route will also create a new session for the user. To allow the new user to convert an anonymous account to a normal account, you need to update its [email and password](\/docs\/client\/account#accountUpdateEmail) or create an [OAuth2 session](\/docs\/client\/account#accountCreateOAuth2Session).","responses":{"201":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"createAnonymousSession","weight":45,"cookies":false,"type":"","demo":"account\/create-anonymous-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session-anonymous.md","rate-limit":50,"rate-time":3600,"rate-key":"ip:{ip}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}]}},"\/account\/sessions\/magic-url":{"post":{"summary":"Create Magic URL session","operationId":"accountCreateMagicURLSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Sends the user an email with a secret key for creating a session. When the user clicks the link in the email, the user is redirected back to the URL you provided with the secret key and userId values attached to the URL query string. Use the query string parameters to submit a request to the [PUT \/account\/sessions\/magic-url](\/docs\/client\/account#accountUpdateMagicURLSession) endpoint to complete the login process. The link sent to the user's email address is valid for 1 hour. If you are on a mobile device you can leave the URL parameter empty, so that the login completion will be handled by your Appwrite instance by default.","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createMagicURLSession","weight":43,"cookies":false,"type":"","demo":"account\/create-magic-u-r-l-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-magic-url-session.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"url":{"type":"string","description":"URL to redirect the user back to your app from the magic URL login. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":"","x-example":"https:\/\/example.com"}},"required":["userId","email"]}}]},"put":{"summary":"Create Magic URL session (confirmation)","operationId":"accountUpdateMagicURLSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete creating the session with the Magic URL. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/sessions\/magic-url](\/docs\/client\/account#accountCreateMagicURLSession) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.","responses":{"200":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"updateMagicURLSession","weight":44,"cookies":false,"type":"","demo":"account\/update-magic-u-r-l-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-magic-url-session.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User ID.","default":null,"x-example":null},"secret":{"type":"string","description":"Valid verification token.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/account\/sessions\/oauth2\/{provider}":{"get":{"summary":"Create Account Session with OAuth2","operationId":"accountCreateOAuth2Session","consumes":["application\/json"],"produces":["text\/html"],"tags":["account"],"description":"Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the email received from the OAuth2 provider and attach the new session to the existing user. If no matching user is found - the server will create a new user..\n","responses":{"301":{"description":"No content"}},"x-appwrite":{"method":"createOAuth2Session","weight":39,"cookies":false,"type":"webAuth","demo":"account\/create-o-auth2session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session-oauth2.md","rate-limit":50,"rate-time":3600,"rate-key":"ip:{ip}","scope":"public","platforms":["client"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"provider","description":"OAuth2 Provider. Currently, supported providers are: amazon, apple, bitbucket, bitly, box, discord, dropbox, facebook, github, gitlab, google, linkedin, microsoft, paypal, paypalSandbox, salesforce, slack, spotify, tradeshift, tradeshiftBox, twitch, vk, yahoo, yandex, wordpress.","required":true,"type":"string","x-example":"amazon","in":"path"},{"name":"success","description":"URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","required":false,"type":"string","format":"url","x-example":"https:\/\/example.com","default":"","in":"query"},{"name":"failure","description":"URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","required":false,"type":"string","format":"url","x-example":"https:\/\/example.com","default":"","in":"query"},{"name":"scopes","description":"A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"}]}},"\/account\/sessions\/{sessionId}":{"get":{"summary":"Get Session By ID","operationId":"accountGetSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to get a logged in user's session using a Session ID. Inputting 'current' will return the current session being used.","responses":{"200":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"getSession","weight":51,"cookies":false,"type":"","demo":"account\/get-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-session.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"sessionId","description":"Session ID. Use the string 'current' to get the current device session.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]},"delete":{"summary":"Delete Account Session","operationId":"accountDeleteSession","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Use this endpoint to log out the currently logged in user from all their account sessions across all of their different devices. When using the option id argument, only the session unique ID provider will be deleted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSession","weight":57,"cookies":false,"type":"","demo":"account\/delete-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-session.md","rate-limit":100,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"sessionId","description":"Session ID. Use the string 'current' to delete the current device session.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]}},"\/account\/verification":{"post":{"summary":"Create Email Verification","operationId":"accountCreateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](\/docs\/client\/account#accountUpdateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createVerification","weight":61,"cookies":false,"type":"","demo":"account\/create-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-verification.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{userId}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"url":{"type":"string","description":"URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"}},"required":["url"]}}]},"put":{"summary":"Create Email Verification (confirmation)","operationId":"accountUpdateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.","responses":{"200":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"updateVerification","weight":62,"cookies":false,"type":"","demo":"account\/update-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-verification.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Valid verification token.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/avatars\/browsers\/{code}":{"get":{"summary":"Get Browser Icon","operationId":"avatarsGetBrowser","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user \/account\/sessions endpoint. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getBrowser","weight":64,"cookies":false,"type":"location","demo":"avatars\/get-browser.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-browser.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"code","description":"Browser Code.","required":true,"type":"string","x-example":"aa","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/credit-cards\/{code}":{"get":{"summary":"Get Credit Card Icon","operationId":"avatarsGetCreditCard","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getCreditCard","weight":63,"cookies":false,"type":"location","demo":"avatars\/get-credit-card.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-credit-card.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"code","description":"Credit Card Code. Possible values: amex, argencard, cabal, censosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro.","required":true,"type":"string","x-example":"amex","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/favicon":{"get":{"summary":"Get Favicon","operationId":"avatarsGetFavicon","consumes":["application\/json"],"produces":["image\/*"],"tags":["avatars"],"description":"Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFavicon","weight":67,"cookies":false,"type":"location","demo":"avatars\/get-favicon.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-favicon.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"url","description":"Website URL which you want to fetch the favicon from.","required":true,"type":"string","format":"url","x-example":"https:\/\/example.com","in":"query"}]}},"\/avatars\/flags\/{code}":{"get":{"summary":"Get Country Flag","operationId":"avatarsGetFlag","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFlag","weight":65,"cookies":false,"type":"location","demo":"avatars\/get-flag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-flag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"code","description":"Country Code. ISO Alpha-2 country code format.","required":true,"type":"string","x-example":"af","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/image":{"get":{"summary":"Get Image from URL","operationId":"avatarsGetImage","consumes":["application\/json"],"produces":["image\/*"],"tags":["avatars"],"description":"Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getImage","weight":66,"cookies":false,"type":"location","demo":"avatars\/get-image.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-image.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"url","description":"Image URL which you want to crop.","required":true,"type":"string","format":"url","x-example":"https:\/\/example.com","in":"query"},{"name":"width","description":"Resize preview image width, Pass an integer between 0 to 2000.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"},{"name":"height","description":"Resize preview image height, Pass an integer between 0 to 2000.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"}]}},"\/avatars\/initials":{"get":{"summary":"Get User Initials","operationId":"avatarsGetInitials","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.\n\nYou can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getInitials","weight":69,"cookies":false,"type":"location","demo":"avatars\/get-initials.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-initials.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"name","description":"Full Name. When empty, current user name or email will be used. Max length: 128 chars.","required":false,"type":"string","x-example":"[NAME]","default":"","in":"query"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":500,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":500,"in":"query"},{"name":"color","description":"Changes text color. By default a random color will be picked and stay will persistent to the given name.","required":false,"type":"string","default":"","in":"query"},{"name":"background","description":"Changes background color. By default a random color will be picked and stay will persistent to the given name.","required":false,"type":"string","default":"","in":"query"}]}},"\/avatars\/qr":{"get":{"summary":"Get QR Code","operationId":"avatarsGetQR","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getQR","weight":68,"cookies":false,"type":"location","demo":"avatars\/get-q-r.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-qr.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"text","description":"Plain text to be converted to QR code image.","required":true,"type":"string","x-example":"[TEXT]","in":"query"},{"name":"size","description":"QR code size. Pass an integer between 0 to 1000. Defaults to 400.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"},{"name":"margin","description":"Margin from edge. Pass an integer between 0 to 10. Defaults to 1.","required":false,"type":"integer","format":"int32","x-example":0,"default":1,"in":"query"},{"name":"download","description":"Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.","required":false,"type":"boolean","x-example":false,"default":false,"in":"query"}]}},"\/database\/collections":{"get":{"summary":"List Collections","operationId":"databaseListCollections","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a list of all the user collections. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's collections. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Collections List","schema":{"$ref":"#\/definitions\/collectionList"}}},"x-appwrite":{"method":"listCollections","weight":71,"cookies":false,"type":"","demo":"database\/list-collections.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-collections.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Maximum number of collection to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the collection used as the starting point for the query, excluding the collection itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Collection","operationId":"databaseCreateCollection","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new Collection.","responses":{"201":{"description":"Collection","schema":{"$ref":"#\/definitions\/collection"}}},"x-appwrite":{"method":"createCollection","weight":70,"cookies":false,"type":"","demo":"database\/create-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"collectionId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Collection name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"permission":{"type":"string","description":"Permissions type model to use for reading documents in this collection. You can use collection-level permission set once on the collection using the `read` and `write` params, or you can set document-level permission where each document read and write params will decide who has access to read and write to each document individually. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"document"},"read":{"type":"array","description":"An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["collectionId","name","permission","read","write"]}}]}},"\/database\/collections\/{collectionId}":{"get":{"summary":"Get Collection","operationId":"databaseGetCollection","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.","responses":{"200":{"description":"Collection","schema":{"$ref":"#\/definitions\/collection"}}},"x-appwrite":{"method":"getCollection","weight":72,"cookies":false,"type":"","demo":"database\/get-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]},"put":{"summary":"Update Collection","operationId":"databaseUpdateCollection","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Update a collection by its unique ID.","responses":{"200":{"description":"Collection","schema":{"$ref":"#\/definitions\/collection"}}},"x-appwrite":{"method":"updateCollection","weight":76,"cookies":false,"type":"","demo":"database\/update-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/update-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Collection name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"permission":{"type":"string","description":"Permissions type model to use for reading documents in this collection. You can use collection-level permission set once on the collection using the `read` and `write` params, or you can set document-level permission where each document read and write params will decide who has access to read and write to each document individually. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"document"},"read":{"type":"array","description":"An array of strings with read permissions. By default inherits the existing read permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default inherits the existing write permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"enabled":{"type":"boolean","description":"Is collection enabled?","default":true,"x-example":false}},"required":["name","permission"]}}]},"delete":{"summary":"Delete Collection","operationId":"databaseDeleteCollection","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteCollection","weight":77,"cookies":false,"type":"","demo":"database\/delete-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]}},"\/database\/collections\/{collectionId}\/attributes":{"get":{"summary":"List Attributes","operationId":"databaseListAttributes","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"Attributes List","schema":{"$ref":"#\/definitions\/attributeList"}}},"x-appwrite":{"method":"listAttributes","weight":86,"cookies":false,"type":"","demo":"database\/list-attributes.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-attributes.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]}},"\/database\/collections\/{collectionId}\/attributes\/boolean":{"post":{"summary":"Create Boolean Attribute","operationId":"databaseCreateBooleanAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a boolean attribute.\n","responses":{"201":{"description":"AttributeBoolean","schema":{"$ref":"#\/definitions\/attributeBoolean"}}},"x-appwrite":{"method":"createBooleanAttribute","weight":85,"cookies":false,"type":"","demo":"database\/create-boolean-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-boolean-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"boolean","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":false},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["key","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/email":{"post":{"summary":"Create Email Attribute","operationId":"databaseCreateEmailAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create an email attribute.\n","responses":{"201":{"description":"AttributeEmail","schema":{"$ref":"#\/definitions\/attributeEmail"}}},"x-appwrite":{"method":"createEmailAttribute","weight":79,"cookies":false,"type":"","demo":"database\/create-email-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-email-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"email@example.com"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["key","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/enum":{"post":{"summary":"Create Enum Attribute","operationId":"databaseCreateEnumAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"201":{"description":"AttributeEnum","schema":{"$ref":"#\/definitions\/attributeEnum"}}},"x-appwrite":{"method":"createEnumAttribute","weight":80,"cookies":false,"type":"","demo":"database\/create-enum-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-attribute-enum.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","default":null,"x-example":null},"elements":{"type":"array","description":"Array of elements in enumerated type. Uses length of longest element to determine size.","default":null,"x-example":null,"items":{"type":"string"}},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"[DEFAULT]"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["key","elements","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/float":{"post":{"summary":"Create Float Attribute","operationId":"databaseCreateFloatAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a float attribute. Optionally, minimum and maximum values can be provided.\n","responses":{"201":{"description":"AttributeFloat","schema":{"$ref":"#\/definitions\/attributeFloat"}}},"x-appwrite":{"method":"createFloatAttribute","weight":84,"cookies":false,"type":"","demo":"database\/create-float-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-float-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"min":{"type":"string","description":"Minimum value to enforce on new documents","default":null,"x-example":null},"max":{"type":"string","description":"Maximum value to enforce on new documents","default":null,"x-example":null},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":null},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["key","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/integer":{"post":{"summary":"Create Integer Attribute","operationId":"databaseCreateIntegerAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create an integer attribute. Optionally, minimum and maximum values can be provided.\n","responses":{"201":{"description":"AttributeInteger","schema":{"$ref":"#\/definitions\/attributeInteger"}}},"x-appwrite":{"method":"createIntegerAttribute","weight":83,"cookies":false,"type":"","demo":"database\/create-integer-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-integer-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"min":{"type":"integer","description":"Minimum value to enforce on new documents","default":null,"x-example":null},"max":{"type":"integer","description":"Maximum value to enforce on new documents","default":null,"x-example":null},"default":{"type":"integer","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":null},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["key","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/ip":{"post":{"summary":"Create IP Address Attribute","operationId":"databaseCreateIpAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create IP address attribute.\n","responses":{"201":{"description":"AttributeIP","schema":{"$ref":"#\/definitions\/attributeIp"}}},"x-appwrite":{"method":"createIpAttribute","weight":81,"cookies":false,"type":"","demo":"database\/create-ip-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-ip-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":null},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["key","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/string":{"post":{"summary":"Create String Attribute","operationId":"databaseCreateStringAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new string attribute.\n","responses":{"201":{"description":"AttributeString","schema":{"$ref":"#\/definitions\/attributeString"}}},"x-appwrite":{"method":"createStringAttribute","weight":78,"cookies":false,"type":"","demo":"database\/create-string-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-string-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","default":null,"x-example":null},"size":{"type":"integer","description":"Attribute size for text attributes, in number of characters.","default":null,"x-example":1},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"[DEFAULT]"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["key","size","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/url":{"post":{"summary":"Create URL Attribute","operationId":"databaseCreateUrlAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a URL attribute.\n","responses":{"201":{"description":"AttributeURL","schema":{"$ref":"#\/definitions\/attributeUrl"}}},"x-appwrite":{"method":"createUrlAttribute","weight":82,"cookies":false,"type":"","demo":"database\/create-url-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-url-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"https:\/\/example.com"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["key","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/{key}":{"get":{"summary":"Get Attribute","operationId":"databaseGetAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"AttributeBoolean, or AttributeInteger, or AttributeFloat, or AttributeEmail, or AttributeEnum, or AttributeURL, or AttributeIP, or AttributeString","schema":{"oneOf":[{"$ref":"#\/definitions\/attributeBoolean"},{"$ref":"#\/definitions\/attributeInteger"},{"$ref":"#\/definitions\/attributeFloat"},{"$ref":"#\/definitions\/attributeEmail"},{"$ref":"#\/definitions\/attributeEnum"},{"$ref":"#\/definitions\/attributeUrl"},{"$ref":"#\/definitions\/attributeIp"},{"$ref":"#\/definitions\/attributeString"}]}}},"x-appwrite":{"method":"getAttribute","weight":87,"cookies":false,"type":"","demo":"database\/get-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"key","description":"Attribute Key.","required":true,"type":"string","in":"path"}]},"delete":{"summary":"Delete Attribute","operationId":"databaseDeleteAttribute","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteAttribute","weight":88,"cookies":false,"type":"","demo":"database\/delete-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"key","description":"Attribute Key.","required":true,"type":"string","in":"path"}]}},"\/database\/collections\/{collectionId}\/documents":{"get":{"summary":"List Documents","operationId":"databaseListDocuments","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a list of all the user documents. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's documents. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Documents List","schema":{"$ref":"#\/definitions\/documentList"}}},"x-appwrite":{"method":"listDocuments","weight":94,"cookies":false,"type":"","demo":"database\/list-documents.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-documents.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"queries","description":"Array of query strings.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"},{"name":"limit","description":"Maximum number of documents to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this value to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the document used as the starting point for the query, excluding the document itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderAttributes","description":"Array of attributes used to sort results.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"},{"name":"orderTypes","description":"Array of order directions for sorting attribtues. Possible values are DESC for descending order, or ASC for ascending order.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"}]},"post":{"summary":"Create Document","operationId":"databaseCreateDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](\/docs\/server\/database#databaseCreateCollection) API or directly from your database console.","responses":{"201":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"createDocument","weight":93,"cookies":false,"type":"","demo":"database\/create-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection with validation rules using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"documentId":{"type":"string","description":"Document ID. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"data":{"type":"object","description":"Document data as JSON object.","default":{},"x-example":"{}"},"read":{"type":"array","description":"An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["documentId","data"]}}]}},"\/database\/collections\/{collectionId}\/documents\/{documentId}":{"get":{"summary":"Get Document","operationId":"databaseGetDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a document by its unique ID. This endpoint response returns a JSON object with the document data.","responses":{"200":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"getDocument","weight":95,"cookies":false,"type":"","demo":"database\/get-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"}]},"patch":{"summary":"Update Document","operationId":"databaseUpdateDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.","responses":{"200":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"updateDocument","weight":97,"cookies":false,"type":"","demo":"database\/update-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/update-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection with validation rules using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"data":{"type":"object","description":"Document data as JSON object.","default":{},"x-example":"{}"},"read":{"type":"array","description":"An array of strings with read permissions. By default inherits the existing read permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default inherits the existing write permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["data"]}}]},"delete":{"summary":"Delete Document","operationId":"databaseDeleteDocument","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"Delete a document by its unique ID. This endpoint deletes only the parent documents, its attributes and relations to other documents. Child documents **will not** be deleted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteDocument","weight":98,"cookies":false,"type":"","demo":"database\/delete-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"}]}},"\/database\/collections\/{collectionId}\/documents\/{documentId}\/logs":{"get":{"summary":"List Document Logs","operationId":"databaseListDocumentLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get the document activity logs list by its unique ID.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"listDocumentLogs","weight":96,"cookies":false,"type":"","demo":"database\/list-document-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-document-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"collectionId","description":"Collection ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"},{"name":"limit","description":"Maximum number of logs to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this value to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/database\/collections\/{collectionId}\/indexes":{"get":{"summary":"List Indexes","operationId":"databaseListIndexes","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"Indexes List","schema":{"$ref":"#\/definitions\/indexList"}}},"x-appwrite":{"method":"listIndexes","weight":90,"cookies":false,"type":"","demo":"database\/list-indexes.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-indexes.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]},"post":{"summary":"Create Index","operationId":"databaseCreateIndex","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"201":{"description":"Index","schema":{"$ref":"#\/definitions\/index"}}},"x-appwrite":{"method":"createIndex","weight":89,"cookies":false,"type":"","demo":"database\/create-index.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-index.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"key":{"type":"string","description":"Index Key.","default":null,"x-example":null},"type":{"type":"string","description":"Index type.","default":null,"x-example":"key"},"attributes":{"type":"array","description":"Array of attributes to index.","default":null,"x-example":null,"items":{"type":"string"}},"orders":{"type":"array","description":"Array of index orders.","default":[],"x-example":null,"items":{"type":"string"}}},"required":["key","type","attributes"]}}]}},"\/database\/collections\/{collectionId}\/indexes\/{key}":{"get":{"summary":"Get Index","operationId":"databaseGetIndex","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"Index","schema":{"$ref":"#\/definitions\/index"}}},"x-appwrite":{"method":"getIndex","weight":91,"cookies":false,"type":"","demo":"database\/get-index.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-index.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"key","description":"Index Key.","required":true,"type":"string","in":"path"}]},"delete":{"summary":"Delete Index","operationId":"databaseDeleteIndex","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteIndex","weight":92,"cookies":false,"type":"","demo":"database\/delete-index.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-index.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"key","description":"Index Key.","required":true,"type":"string","in":"path"}]}},"\/database\/collections\/{collectionId}\/logs":{"get":{"summary":"List Collection Logs","operationId":"databaseListCollectionLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get the collection activity logs list by its unique ID.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"listCollectionLogs","weight":75,"cookies":false,"type":"","demo":"database\/list-collection-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-collection-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"collectionId","description":"Collection ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"limit","description":"Maximum number of logs to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this value to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/database\/usage":{"get":{"summary":"Get usage stats for the database","operationId":"databaseGetUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"UsageDatabase","schema":{"$ref":"#\/definitions\/usageDatabase"}}},"x-appwrite":{"method":"getUsage","weight":73,"cookies":false,"type":"","demo":"database\/get-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"}]}},"\/database\/{collectionId}\/usage":{"get":{"summary":"Get usage stats for a collection","operationId":"databaseGetCollectionUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"UsageCollection","schema":{"$ref":"#\/definitions\/usageCollection"}}},"x-appwrite":{"method":"getCollectionUsage","weight":74,"cookies":false,"type":"","demo":"database\/get-collection-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"},{"name":"collectionId","description":"Collection ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]}},"\/functions":{"get":{"summary":"List Functions","operationId":"functionsList","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the project's functions. You can use the query params to filter your results.","responses":{"200":{"description":"Functions List","schema":{"$ref":"#\/definitions\/functionList"}}},"x-appwrite":{"method":"list","weight":187,"cookies":false,"type":"","demo":"functions\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-functions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Maximum number of functions to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this value to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the function used as the starting point for the query, excluding the function itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Function","operationId":"functionsCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Create a new function. You can pass a list of [permissions](\/docs\/permissions) to allow different project users or team with access to execute the function using the client API.","responses":{"201":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"create","weight":186,"cookies":false,"type":"","demo":"functions\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"functionId":{"type":"string","description":"Function ID. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Function name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"execute":{"type":"array","description":"An array of strings with execution permissions. By default no user is granted with any execute permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"runtime":{"type":"string","description":"Execution runtime.","default":null,"x-example":"dotnet-5.0"},"vars":{"type":"object","description":"Key-value JSON object that will be passed to the function as environment variables.","default":[],"x-example":"{}"},"events":{"type":"array","description":"Events list.","default":[],"x-example":null,"items":{"type":"string"}},"schedule":{"type":"string","description":"Schedule CRON syntax.","default":"","x-example":null},"timeout":{"type":"integer","description":"Function maximum execution time in seconds.","default":15,"x-example":1}},"required":["functionId","name","execute","runtime"]}}]}},"\/functions\/runtimes":{"get":{"summary":"List the currently active function runtimes.","operationId":"functionsListRuntimes","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all runtimes that are currently active in your project.","responses":{"200":{"description":"Runtimes List","schema":{"$ref":"#\/definitions\/runtimeList"}}},"x-appwrite":{"method":"listRuntimes","weight":188,"cookies":false,"type":"","demo":"functions\/list-runtimes.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-runtimes.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/functions\/{functionId}":{"get":{"summary":"Get Function","operationId":"functionsGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a function by its unique ID.","responses":{"200":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"get","weight":189,"cookies":false,"type":"","demo":"functions\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"}]},"put":{"summary":"Update Function","operationId":"functionsUpdate","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Update function by its unique ID.","responses":{"200":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"update","weight":191,"cookies":false,"type":"","demo":"functions\/update.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/update-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Function name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"execute":{"type":"array","description":"An array of strings with execution permissions. By default no user is granted with any execute permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"vars":{"type":"object","description":"Key-value JSON object that will be passed to the function as environment variables.","default":[],"x-example":"{}"},"events":{"type":"array","description":"Events list.","default":[],"x-example":null,"items":{"type":"string"}},"schedule":{"type":"string","description":"Schedule CRON syntax.","default":"","x-example":null},"timeout":{"type":"integer","description":"Maximum execution time in seconds.","default":15,"x-example":1}},"required":["name","execute"]}}]},"delete":{"summary":"Delete Function","operationId":"functionsDelete","consumes":["application\/json"],"produces":[],"tags":["functions"],"description":"Delete a function by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":193,"cookies":false,"type":"","demo":"functions\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/delete-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"}]}},"\/functions\/{functionId}\/executions":{"get":{"summary":"List Executions","operationId":"functionsListExecutions","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the current user function execution logs. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's executions. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Executions List","schema":{"$ref":"#\/definitions\/executionList"}}},"x-appwrite":{"method":"listExecutions","weight":199,"cookies":false,"type":"","demo":"functions\/list-executions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-executions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"execution.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"limit","description":"Maximum number of executions to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this value to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"cursor","description":"ID of the execution used as the starting point for the query, excluding the execution itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"}]},"post":{"summary":"Create Execution","operationId":"functionsCreateExecution","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.","responses":{"201":{"description":"Execution","schema":{"$ref":"#\/definitions\/execution"}}},"x-appwrite":{"method":"createExecution","weight":198,"cookies":false,"type":"","demo":"functions\/create-execution.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-execution.md","rate-limit":60,"rate-time":60,"rate-key":"url:{url},ip:{ip}","scope":"execution.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"data":{"type":"string","description":"String of custom data to send to function.","default":"","x-example":"[DATA]"}}}}]}},"\/functions\/{functionId}\/executions\/{executionId}":{"get":{"summary":"Get Execution","operationId":"functionsGetExecution","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a function execution log by its unique ID.","responses":{"200":{"description":"Execution","schema":{"$ref":"#\/definitions\/execution"}}},"x-appwrite":{"method":"getExecution","weight":200,"cookies":false,"type":"","demo":"functions\/get-execution.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-execution.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"execution.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"executionId","description":"Execution ID.","required":true,"type":"string","x-example":"[EXECUTION_ID]","in":"path"}]}},"\/functions\/{functionId}\/tag":{"patch":{"summary":"Update Function Tag","operationId":"functionsUpdateTag","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Update the function code tag ID using the unique function ID. Use this endpoint to switch the code tag that should be executed by the execution endpoint.","responses":{"200":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"updateTag","weight":192,"cookies":false,"type":"","demo":"functions\/update-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/update-function-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"tag":{"type":"string","description":"Tag ID.","default":null,"x-example":"[TAG]"}},"required":["tag"]}}]}},"\/functions\/{functionId}\/tags":{"get":{"summary":"List Tags","operationId":"functionsListTags","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the project's code tags. You can use the query params to filter your results.","responses":{"200":{"description":"Tags List","schema":{"$ref":"#\/definitions\/tagList"}}},"x-appwrite":{"method":"listTags","weight":195,"cookies":false,"type":"","demo":"functions\/list-tags.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-tags.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Maximum number of tags to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this value to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the tag used as the starting point for the query, excluding the tag itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Tag","operationId":"functionsCreateTag","consumes":["multipart\/form-data"],"produces":["application\/json"],"tags":["functions"],"description":"Create a new function code tag. Use this endpoint to upload a new version of your code function. To execute your newly uploaded code, you'll need to update the function's tag to use your new tag UID.\n\nThis endpoint accepts a tar.gz file compressed with your code. Make sure to include any dependencies your code has within the compressed file. You can learn more about code packaging in the [Appwrite Cloud Functions tutorial](\/docs\/functions).\n\nUse the \"command\" param to set the entry point used to execute your code.","responses":{"201":{"description":"Tag","schema":{"$ref":"#\/definitions\/tag"}}},"x-appwrite":{"method":"createTag","weight":194,"cookies":false,"type":"","demo":"functions\/create-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":true,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"command","description":"Code execution command.","required":true,"type":"string","x-example":"[COMMAND]","in":"formData"},{"name":"code","description":"Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.","required":true,"type":"file","in":"formData"}]}},"\/functions\/{functionId}\/tags\/{tagId}":{"get":{"summary":"Get Tag","operationId":"functionsGetTag","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a code tag by its unique ID.","responses":{"200":{"description":"Tag","schema":{"$ref":"#\/definitions\/tag"}}},"x-appwrite":{"method":"getTag","weight":196,"cookies":false,"type":"","demo":"functions\/get-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"tagId","description":"Tag ID.","required":true,"type":"string","x-example":"[TAG_ID]","in":"path"}]},"delete":{"summary":"Delete Tag","operationId":"functionsDeleteTag","consumes":["application\/json"],"produces":[],"tags":["functions"],"description":"Delete a code tag by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteTag","weight":197,"cookies":false,"type":"","demo":"functions\/delete-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/delete-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"tagId","description":"Tag ID.","required":true,"type":"string","x-example":"[TAG_ID]","in":"path"}]}},"\/functions\/{functionId}\/usage":{"get":{"summary":"Get Function Usage","operationId":"functionsGetUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"","responses":{"200":{"description":"UsageFunctions","schema":{"$ref":"#\/definitions\/usageFunctions"}}},"x-appwrite":{"method":"getUsage","weight":190,"cookies":false,"type":"","demo":"functions\/get-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"functionId","description":"Function ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"}]}},"\/health":{"get":{"summary":"Get HTTP","operationId":"healthGet","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite HTTP server is up and responsive.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"get","weight":106,"cookies":false,"type":"","demo":"health\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/anti-virus":{"get":{"summary":"Get Anti virus","operationId":"healthGetAntiVirus","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite Anti Virus server is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getAntiVirus","weight":117,"cookies":false,"type":"","demo":"health\/get-anti-virus.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-anti-virus.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/cache":{"get":{"summary":"Get Cache","operationId":"healthGetCache","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite in-memory cache server is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getCache","weight":109,"cookies":false,"type":"","demo":"health\/get-cache.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-cache.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/db":{"get":{"summary":"Get DB","operationId":"healthGetDB","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite database server is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getDB","weight":108,"cookies":false,"type":"","demo":"health\/get-d-b.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-db.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/certificates":{"get":{"summary":"Get Certificates Queue","operationId":"healthGetQueueCertificates","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of certificates that are waiting to be issued against [Letsencrypt](https:\/\/letsencrypt.org\/) in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueCertificates","weight":114,"cookies":false,"type":"","demo":"health\/get-queue-certificates.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-certificates.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/functions":{"get":{"summary":"Get Functions Queue","operationId":"healthGetQueueFunctions","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueFunctions","weight":115,"cookies":false,"type":"","demo":"health\/get-queue-functions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-functions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/logs":{"get":{"summary":"Get Logs Queue","operationId":"healthGetQueueLogs","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of logs that are waiting to be processed in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueLogs","weight":112,"cookies":false,"type":"","demo":"health\/get-queue-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/usage":{"get":{"summary":"Get Usage Queue","operationId":"healthGetQueueUsage","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of usage stats that are waiting to be processed in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueUsage","weight":113,"cookies":false,"type":"","demo":"health\/get-queue-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-usage.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/webhooks":{"get":{"summary":"Get Webhooks Queue","operationId":"healthGetQueueWebhooks","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of webhooks that are waiting to be processed in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueWebhooks","weight":111,"cookies":false,"type":"","demo":"health\/get-queue-webhooks.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-webhooks.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/storage\/local":{"get":{"summary":"Get Local Storage","operationId":"healthGetStorageLocal","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite local storage device is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getStorageLocal","weight":116,"cookies":false,"type":"","demo":"health\/get-storage-local.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-local.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/time":{"get":{"summary":"Get Time","operationId":"healthGetTime","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite server time is synced with Google remote NTP server. We use this technology to smoothly handle leap seconds with no disruptive events. The [Network Time Protocol](https:\/\/en.wikipedia.org\/wiki\/Network_Time_Protocol) (NTP) is used by hundreds of millions of computers and devices to synchronize their clocks over the Internet. If your computer sets its own clock, it likely uses NTP.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getTime","weight":110,"cookies":false,"type":"","demo":"health\/get-time.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-time.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}]}},"\/locale":{"get":{"summary":"Get User Locale","operationId":"localeGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.\n\n([IP Geolocation by DB-IP](https:\/\/db-ip.com))","responses":{"200":{"description":"Locale","schema":{"$ref":"#\/definitions\/locale"}}},"x-appwrite":{"method":"get","weight":99,"cookies":false,"type":"","demo":"locale\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/continents":{"get":{"summary":"List Continents","operationId":"localeGetContinents","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all continents. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Continents List","schema":{"$ref":"#\/definitions\/continentList"}}},"x-appwrite":{"method":"getContinents","weight":103,"cookies":false,"type":"","demo":"locale\/get-continents.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-continents.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/countries":{"get":{"summary":"List Countries","operationId":"localeGetCountries","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Countries List","schema":{"$ref":"#\/definitions\/countryList"}}},"x-appwrite":{"method":"getCountries","weight":100,"cookies":false,"type":"","demo":"locale\/get-countries.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/countries\/eu":{"get":{"summary":"List EU Countries","operationId":"localeGetCountriesEU","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries that are currently members of the EU. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Countries List","schema":{"$ref":"#\/definitions\/countryList"}}},"x-appwrite":{"method":"getCountriesEU","weight":101,"cookies":false,"type":"","demo":"locale\/get-countries-e-u.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries-eu.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/countries\/phones":{"get":{"summary":"List Countries Phone Codes","operationId":"localeGetCountriesPhones","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries phone codes. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Phones List","schema":{"$ref":"#\/definitions\/phoneList"}}},"x-appwrite":{"method":"getCountriesPhones","weight":102,"cookies":false,"type":"","demo":"locale\/get-countries-phones.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries-phones.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/currencies":{"get":{"summary":"List Currencies","operationId":"localeGetCurrencies","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Currencies List","schema":{"$ref":"#\/definitions\/currencyList"}}},"x-appwrite":{"method":"getCurrencies","weight":104,"cookies":false,"type":"","demo":"locale\/get-currencies.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-currencies.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/languages":{"get":{"summary":"List Languages","operationId":"localeGetLanguages","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.","responses":{"200":{"description":"Languages List","schema":{"$ref":"#\/definitions\/languageList"}}},"x-appwrite":{"method":"getLanguages","weight":105,"cookies":false,"type":"","demo":"locale\/get-languages.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-languages.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/projects":{"get":{"summary":"List Projects","operationId":"projectsList","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Projects List","schema":{"$ref":"#\/definitions\/projectList"}}},"x-appwrite":{"method":"list","weight":120,"cookies":false,"type":"","demo":"projects\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the project used as the starting point for the query, excluding the project itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Project","operationId":"projectsCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"201":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"create","weight":119,"cookies":false,"type":"","demo":"projects\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"projectId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Project name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"teamId":{"type":"string","description":"Team unique ID.","default":null,"x-example":"[TEAM_ID]"},"description":{"type":"string","description":"Project description. Max length: 256 chars.","default":"","x-example":"[DESCRIPTION]"},"logo":{"type":"string","description":"Project logo.","default":"","x-example":"[LOGO]"},"url":{"type":"string","description":"Project URL.","default":"","x-example":"https:\/\/example.com"},"legalName":{"type":"string","description":"Project legal Name. Max length: 256 chars.","default":"","x-example":"[LEGAL_NAME]"},"legalCountry":{"type":"string","description":"Project legal Country. Max length: 256 chars.","default":"","x-example":"[LEGAL_COUNTRY]"},"legalState":{"type":"string","description":"Project legal State. Max length: 256 chars.","default":"","x-example":"[LEGAL_STATE]"},"legalCity":{"type":"string","description":"Project legal City. Max length: 256 chars.","default":"","x-example":"[LEGAL_CITY]"},"legalAddress":{"type":"string","description":"Project legal Address. Max length: 256 chars.","default":"","x-example":"[LEGAL_ADDRESS]"},"legalTaxId":{"type":"string","description":"Project legal Tax ID. Max length: 256 chars.","default":"","x-example":"[LEGAL_TAX_ID]"}},"required":["projectId","name","teamId"]}}]}},"\/projects\/{projectId}":{"get":{"summary":"Get Project","operationId":"projectsGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"get","weight":121,"cookies":false,"type":"","demo":"projects\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"}]},"patch":{"summary":"Update Project","operationId":"projectsUpdate","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"update","weight":123,"cookies":false,"type":"","demo":"projects\/update.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Project name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"description":{"type":"string","description":"Project description. Max length: 256 chars.","default":"","x-example":"[DESCRIPTION]"},"logo":{"type":"string","description":"Project logo.","default":"","x-example":"[LOGO]"},"url":{"type":"string","description":"Project URL.","default":"","x-example":"https:\/\/example.com"},"legalName":{"type":"string","description":"Project legal name. Max length: 256 chars.","default":"","x-example":"[LEGAL_NAME]"},"legalCountry":{"type":"string","description":"Project legal country. Max length: 256 chars.","default":"","x-example":"[LEGAL_COUNTRY]"},"legalState":{"type":"string","description":"Project legal state. Max length: 256 chars.","default":"","x-example":"[LEGAL_STATE]"},"legalCity":{"type":"string","description":"Project legal city. Max length: 256 chars.","default":"","x-example":"[LEGAL_CITY]"},"legalAddress":{"type":"string","description":"Project legal address. Max length: 256 chars.","default":"","x-example":"[LEGAL_ADDRESS]"},"legalTaxId":{"type":"string","description":"Project legal tax ID. Max length: 256 chars.","default":"","x-example":"[LEGAL_TAX_ID]"}},"required":["name"]}}]},"delete":{"summary":"Delete Project","operationId":"projectsDelete","consumes":["application\/json"],"produces":[],"tags":["projects"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":128,"cookies":false,"type":"","demo":"projects\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"password":{"type":"string","description":"Your user password for confirmation. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["password"]}}]}},"\/projects\/{projectId}\/auth\/limit":{"patch":{"summary":"Update Project users limit","operationId":"projectsUpdateAuthLimit","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"updateAuthLimit","weight":126,"cookies":false,"type":"","demo":"projects\/update-auth-limit.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"limit":{"type":"integer","description":"Set the max number of users allowed in this project. Use 0 for unlimited.","default":null,"x-example":null}},"required":["limit"]}}]}},"\/projects\/{projectId}\/auth\/{method}":{"patch":{"summary":"Update Project auth method status. Use this endpoint to enable or disable a given auth method for this project.","operationId":"projectsUpdateAuthStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"updateAuthStatus","weight":127,"cookies":false,"type":"","demo":"projects\/update-auth-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"method","description":"Auth Method. Possible values: email-password,magic-url,anonymous,invites,jwt,phone","required":true,"type":"string","x-example":"email-password","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"status":{"type":"boolean","description":"Set the status of this auth method.","default":null,"x-example":false}},"required":["status"]}}]}},"\/projects\/{projectId}\/domains":{"get":{"summary":"List Domains","operationId":"projectsListDomains","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Domains List","schema":{"$ref":"#\/definitions\/domainList"}}},"x-appwrite":{"method":"listDomains","weight":145,"cookies":false,"type":"","demo":"projects\/list-domains.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"}]},"post":{"summary":"Create Domain","operationId":"projectsCreateDomain","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"201":{"description":"Domain","schema":{"$ref":"#\/definitions\/domain"}}},"x-appwrite":{"method":"createDomain","weight":144,"cookies":false,"type":"","demo":"projects\/create-domain.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name.","default":null,"x-example":null}},"required":["domain"]}}]}},"\/projects\/{projectId}\/domains\/{domainId}":{"get":{"summary":"Get Domain","operationId":"projectsGetDomain","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Domain","schema":{"$ref":"#\/definitions\/domain"}}},"x-appwrite":{"method":"getDomain","weight":146,"cookies":false,"type":"","demo":"projects\/get-domain.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"domainId","description":"Domain unique ID.","required":true,"type":"string","x-example":"[DOMAIN_ID]","in":"path"}]},"delete":{"summary":"Delete Domain","operationId":"projectsDeleteDomain","consumes":["application\/json"],"produces":[],"tags":["projects"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteDomain","weight":148,"cookies":false,"type":"","demo":"projects\/delete-domain.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"domainId","description":"Domain unique ID.","required":true,"type":"string","x-example":"[DOMAIN_ID]","in":"path"}]}},"\/projects\/{projectId}\/domains\/{domainId}\/verification":{"patch":{"summary":"Update Domain Verification Status","operationId":"projectsUpdateDomainVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Domain","schema":{"$ref":"#\/definitions\/domain"}}},"x-appwrite":{"method":"updateDomainVerification","weight":147,"cookies":false,"type":"","demo":"projects\/update-domain-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"domainId","description":"Domain unique ID.","required":true,"type":"string","x-example":"[DOMAIN_ID]","in":"path"}]}},"\/projects\/{projectId}\/keys":{"get":{"summary":"List Keys","operationId":"projectsListKeys","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"API Keys List","schema":{"$ref":"#\/definitions\/keyList"}}},"x-appwrite":{"method":"listKeys","weight":135,"cookies":false,"type":"","demo":"projects\/list-keys.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"}]},"post":{"summary":"Create Key","operationId":"projectsCreateKey","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"201":{"description":"Key","schema":{"$ref":"#\/definitions\/key"}}},"x-appwrite":{"method":"createKey","weight":134,"cookies":false,"type":"","demo":"projects\/create-key.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Key name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"scopes":{"type":"array","description":"Key scopes list.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["name","scopes"]}}]}},"\/projects\/{projectId}\/keys\/{keyId}":{"get":{"summary":"Get Key","operationId":"projectsGetKey","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Key","schema":{"$ref":"#\/definitions\/key"}}},"x-appwrite":{"method":"getKey","weight":136,"cookies":false,"type":"","demo":"projects\/get-key.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"keyId","description":"Key unique ID.","required":true,"type":"string","x-example":"[KEY_ID]","in":"path"}]},"put":{"summary":"Update Key","operationId":"projectsUpdateKey","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Key","schema":{"$ref":"#\/definitions\/key"}}},"x-appwrite":{"method":"updateKey","weight":137,"cookies":false,"type":"","demo":"projects\/update-key.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"keyId","description":"Key unique ID.","required":true,"type":"string","x-example":"[KEY_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Key name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"scopes":{"type":"array","description":"Key scopes list","default":null,"x-example":null,"items":{"type":"string"}}},"required":["name","scopes"]}}]},"delete":{"summary":"Delete Key","operationId":"projectsDeleteKey","consumes":["application\/json"],"produces":[],"tags":["projects"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteKey","weight":138,"cookies":false,"type":"","demo":"projects\/delete-key.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"keyId","description":"Key unique ID.","required":true,"type":"string","x-example":"[KEY_ID]","in":"path"}]}},"\/projects\/{projectId}\/oauth2":{"patch":{"summary":"Update Project OAuth2","operationId":"projectsUpdateOAuth2","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"updateOAuth2","weight":125,"cookies":false,"type":"","demo":"projects\/update-o-auth2.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"provider":{"type":"string","description":"Provider Name","default":null,"x-example":"amazon"},"appId":{"type":"string","description":"Provider app ID. Max length: 256 chars.","default":"","x-example":"[APP_ID]"},"secret":{"type":"string","description":"Provider secret key. Max length: 512 chars.","default":"","x-example":"[SECRET]"}},"required":["provider"]}}]}},"\/projects\/{projectId}\/platforms":{"get":{"summary":"List Platforms","operationId":"projectsListPlatforms","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Platforms List","schema":{"$ref":"#\/definitions\/platformList"}}},"x-appwrite":{"method":"listPlatforms","weight":140,"cookies":false,"type":"","demo":"projects\/list-platforms.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"}]},"post":{"summary":"Create Platform","operationId":"projectsCreatePlatform","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"201":{"description":"Platform","schema":{"$ref":"#\/definitions\/platform"}}},"x-appwrite":{"method":"createPlatform","weight":139,"cookies":false,"type":"","demo":"projects\/create-platform.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"type":{"type":"string","description":"Platform type.","default":null,"x-example":"web"},"name":{"type":"string","description":"Platform name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"key":{"type":"string","description":"Package name for Android or bundle ID for iOS or macOS. Max length: 256 chars.","default":"","x-example":"[KEY]"},"store":{"type":"string","description":"App store or Google Play store ID. Max length: 256 chars.","default":"","x-example":"[STORE]"},"hostname":{"type":"string","description":"Platform client hostname. Max length: 256 chars.","default":"","x-example":"[HOSTNAME]"}},"required":["type","name"]}}]}},"\/projects\/{projectId}\/platforms\/{platformId}":{"get":{"summary":"Get Platform","operationId":"projectsGetPlatform","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Platform","schema":{"$ref":"#\/definitions\/platform"}}},"x-appwrite":{"method":"getPlatform","weight":141,"cookies":false,"type":"","demo":"projects\/get-platform.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"platformId","description":"Platform unique ID.","required":true,"type":"string","x-example":"[PLATFORM_ID]","in":"path"}]},"put":{"summary":"Update Platform","operationId":"projectsUpdatePlatform","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Platform","schema":{"$ref":"#\/definitions\/platform"}}},"x-appwrite":{"method":"updatePlatform","weight":142,"cookies":false,"type":"","demo":"projects\/update-platform.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"platformId","description":"Platform unique ID.","required":true,"type":"string","x-example":"[PLATFORM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Platform name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"key":{"type":"string","description":"Package name for android or bundle ID for iOS. Max length: 256 chars.","default":"","x-example":"[KEY]"},"store":{"type":"string","description":"App store or Google Play store ID. Max length: 256 chars.","default":"","x-example":"[STORE]"},"hostname":{"type":"string","description":"Platform client URL. Max length: 256 chars.","default":"","x-example":"[HOSTNAME]"}},"required":["name"]}}]},"delete":{"summary":"Delete Platform","operationId":"projectsDeletePlatform","consumes":["application\/json"],"produces":[],"tags":["projects"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deletePlatform","weight":143,"cookies":false,"type":"","demo":"projects\/delete-platform.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"platformId","description":"Platform unique ID.","required":true,"type":"string","x-example":"[PLATFORM_ID]","in":"path"}]}},"\/projects\/{projectId}\/service":{"patch":{"summary":"Update service status","operationId":"projectsUpdateServiceStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Project","schema":{"$ref":"#\/definitions\/project"}}},"x-appwrite":{"method":"updateServiceStatus","weight":124,"cookies":false,"type":"","demo":"projects\/update-service-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"service":{"type":"string","description":"Service name.","default":null,"x-example":"account"},"status":{"type":"boolean","description":"Service status.","default":null,"x-example":false}},"required":["service","status"]}}]}},"\/projects\/{projectId}\/usage":{"get":{"summary":"Get usage stats for a project","operationId":"projectsGetUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"UsageProject","schema":{"$ref":"#\/definitions\/usageProject"}}},"x-appwrite":{"method":"getUsage","weight":122,"cookies":false,"type":"","demo":"projects\/get-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"}]}},"\/projects\/{projectId}\/webhooks":{"get":{"summary":"List Webhooks","operationId":"projectsListWebhooks","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Webhooks List","schema":{"$ref":"#\/definitions\/webhookList"}}},"x-appwrite":{"method":"listWebhooks","weight":130,"cookies":false,"type":"","demo":"projects\/list-webhooks.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"}]},"post":{"summary":"Create Webhook","operationId":"projectsCreateWebhook","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"201":{"description":"Webhook","schema":{"$ref":"#\/definitions\/webhook"}}},"x-appwrite":{"method":"createWebhook","weight":129,"cookies":false,"type":"","demo":"projects\/create-webhook.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Webhook name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"events":{"type":"array","description":"Events list.","default":null,"x-example":null,"items":{"type":"string"}},"url":{"type":"string","description":"Webhook URL.","default":null,"x-example":"https:\/\/example.com"},"security":{"type":"boolean","description":"Certificate verification, false for disabled or true for enabled.","default":null,"x-example":false},"httpUser":{"type":"string","description":"Webhook HTTP user. Max length: 256 chars.","default":"","x-example":"[HTTP_USER]"},"httpPass":{"type":"string","description":"Webhook HTTP password. Max length: 256 chars.","default":"","x-example":"[HTTP_PASS]"}},"required":["name","events","url","security"]}}]}},"\/projects\/{projectId}\/webhooks\/{webhookId}":{"get":{"summary":"Get Webhook","operationId":"projectsGetWebhook","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Webhook","schema":{"$ref":"#\/definitions\/webhook"}}},"x-appwrite":{"method":"getWebhook","weight":131,"cookies":false,"type":"","demo":"projects\/get-webhook.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"webhookId","description":"Webhook unique ID.","required":true,"type":"string","x-example":"[WEBHOOK_ID]","in":"path"}]},"put":{"summary":"Update Webhook","operationId":"projectsUpdateWebhook","consumes":["application\/json"],"produces":["application\/json"],"tags":["projects"],"description":"","responses":{"200":{"description":"Webhook","schema":{"$ref":"#\/definitions\/webhook"}}},"x-appwrite":{"method":"updateWebhook","weight":132,"cookies":false,"type":"","demo":"projects\/update-webhook.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"webhookId","description":"Webhook unique ID.","required":true,"type":"string","x-example":"[WEBHOOK_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Webhook name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"events":{"type":"array","description":"Events list.","default":null,"x-example":null,"items":{"type":"string"}},"url":{"type":"string","description":"Webhook URL.","default":null,"x-example":"https:\/\/example.com"},"security":{"type":"boolean","description":"Certificate verification, false for disabled or true for enabled.","default":null,"x-example":false},"httpUser":{"type":"string","description":"Webhook HTTP user. Max length: 256 chars.","default":"","x-example":"[HTTP_USER]"},"httpPass":{"type":"string","description":"Webhook HTTP password. Max length: 256 chars.","default":"","x-example":"[HTTP_PASS]"}},"required":["name","events","url","security"]}}]},"delete":{"summary":"Delete Webhook","operationId":"projectsDeleteWebhook","consumes":["application\/json"],"produces":[],"tags":["projects"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteWebhook","weight":133,"cookies":false,"type":"","demo":"projects\/delete-webhook.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"projects.write","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"projectId","description":"Project unique ID.","required":true,"type":"string","x-example":"[PROJECT_ID]","in":"path"},{"name":"webhookId","description":"Webhook unique ID.","required":true,"type":"string","x-example":"[WEBHOOK_ID]","in":"path"}]}},"\/storage\/files":{"get":{"summary":"List Files","operationId":"storageListFiles","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Get a list of all the user files. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's files. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Files List","schema":{"$ref":"#\/definitions\/fileList"}}},"x-appwrite":{"method":"listFiles","weight":150,"cookies":false,"type":"","demo":"storage\/list-files.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Maximum number of files to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the file used as the starting point for the query, excluding the file itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create File","operationId":"storageCreateFile","consumes":["multipart\/form-data"],"produces":["application\/json"],"tags":["storage"],"description":"Create a new file. The user who creates the file will automatically be assigned to read and write access unless he has passed custom values for read and write arguments.","responses":{"201":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"createFile","weight":149,"cookies":false,"type":"upload","demo":"storage\/create-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File ID. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","required":true,"type":"string","in":"formData"},{"name":"file","description":"Binary file.","required":true,"type":"file","in":"formData"},{"name":"read","description":"An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"in":"formData"},{"name":"write","description":"An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"in":"formData"}]}},"\/storage\/files\/{fileId}":{"get":{"summary":"Get File","operationId":"storageGetFile","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.","responses":{"200":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"getFile","weight":151,"cookies":false,"type":"","demo":"storage\/get-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]},"put":{"summary":"Update File","operationId":"storageUpdateFile","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Update a file by its unique ID. Only users with write permissions have access to update this resource.","responses":{"200":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"updateFile","weight":155,"cookies":false,"type":"","demo":"storage\/update-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"read":{"type":"array","description":"An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["read","write"]}}]},"delete":{"summary":"Delete File","operationId":"storageDeleteFile","consumes":["application\/json"],"produces":[],"tags":["storage"],"description":"Delete a file by its unique ID. Only users with write permissions have access to delete this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteFile","weight":156,"cookies":false,"type":"","demo":"storage\/delete-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/files\/{fileId}\/download":{"get":{"summary":"Get File for Download","operationId":"storageGetFileDownload","consumes":["application\/json"],"produces":["*\/*"],"tags":["storage"],"description":"Get a file content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.","responses":{"200":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getFileDownload","weight":153,"cookies":false,"type":"location","demo":"storage\/get-file-download.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/files\/{fileId}\/preview":{"get":{"summary":"Get File Preview","operationId":"storageGetFilePreview","consumes":["application\/json"],"produces":["image\/*"],"tags":["storage"],"description":"Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFilePreview","weight":152,"cookies":false,"type":"location","demo":"storage\/get-file-preview.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"},{"name":"width","description":"Resize preview image width, Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"height","description":"Resize preview image height, Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"gravity","description":"Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right","required":false,"type":"string","x-example":"center","default":"center","in":"query"},{"name":"quality","description":"Preview image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"borderWidth","description":"Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"borderColor","description":"Preview image border color. Use a valid HEX color, no # is needed for prefix.","required":false,"type":"string","default":"","in":"query"},{"name":"borderRadius","description":"Preview image border radius in pixels. Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"opacity","description":"Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.","required":false,"type":"number","format":"float","x-example":0,"default":1,"in":"query"},{"name":"rotation","description":"Preview image rotation in degrees. Pass an integer between -360 and 360.","required":false,"type":"integer","format":"int32","x-example":-360,"default":0,"in":"query"},{"name":"background","description":"Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.","required":false,"type":"string","default":"","in":"query"},{"name":"output","description":"Output format type (jpeg, jpg, png, gif and webp).","required":false,"type":"string","x-example":"jpg","default":"","in":"query"}]}},"\/storage\/files\/{fileId}\/view":{"get":{"summary":"Get File for View","operationId":"storageGetFileView","consumes":["application\/json"],"produces":["*\/*"],"tags":["storage"],"description":"Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.","responses":{"200":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getFileView","weight":154,"cookies":false,"type":"location","demo":"storage\/get-file-view.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/usage":{"get":{"summary":"Get usage stats for storage","operationId":"storageGetUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"","responses":{"200":{"description":"StorageUsage","schema":{"$ref":"#\/definitions\/usageStorage"}}},"x-appwrite":{"method":"getUsage","weight":157,"cookies":false,"type":"","demo":"storage\/get-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"}]}},"\/storage\/{bucketId}\/usage":{"get":{"summary":"Get usage stats for a storage bucket","operationId":"storageGetBucketUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"","responses":{"200":{"description":"UsageBuckets","schema":{"$ref":"#\/definitions\/usageBuckets"}}},"x-appwrite":{"method":"getBucketUsage","weight":158,"cookies":false,"type":"","demo":"storage\/get-bucket-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"bucketId","description":"Bucket ID.","required":true,"type":"string","x-example":"[BUCKET_ID]","in":"path"},{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"}]}},"\/teams":{"get":{"summary":"List Teams","operationId":"teamsList","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a list of all the current user teams. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's teams. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Teams List","schema":{"$ref":"#\/definitions\/teamList"}}},"x-appwrite":{"method":"list","weight":160,"cookies":false,"type":"","demo":"teams\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Maximum number of teams to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the team used as the starting point for the query, excluding the team itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Team","operationId":"teamsCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Create a new team. The user who creates the team will automatically be assigned as the owner of the team. The team owner can invite new members, who will be able add new owners and update or delete the team from your project.","responses":{"201":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"create","weight":159,"cookies":false,"type":"","demo":"teams\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"teamId":{"type":"string","description":"Team ID. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Team name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"roles":{"type":"array","description":"Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":["owner"],"x-example":null,"items":{"type":"string"}}},"required":["teamId","name"]}}]}},"\/teams\/{teamId}":{"get":{"summary":"Get Team","operationId":"teamsGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team by its unique ID. All team members have read access for this resource.","responses":{"200":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"get","weight":161,"cookies":false,"type":"","demo":"teams\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"}]},"put":{"summary":"Update Team","operationId":"teamsUpdate","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Update a team by its unique ID. Only team owners have write access for this resource.","responses":{"200":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"update","weight":162,"cookies":false,"type":"","demo":"teams\/update.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Team name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]},"delete":{"summary":"Delete Team","operationId":"teamsDelete","consumes":["application\/json"],"produces":[],"tags":["teams"],"description":"Delete a team by its unique ID. Only team owners have write access for this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":163,"cookies":false,"type":"","demo":"teams\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"}]}},"\/teams\/{teamId}\/memberships":{"get":{"summary":"Get Team Memberships","operationId":"teamsGetMemberships","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team members by the team unique ID. All team members have read access for this list of resources.","responses":{"200":{"description":"Memberships List","schema":{"$ref":"#\/definitions\/membershipList"}}},"x-appwrite":{"method":"getMemberships","weight":165,"cookies":false,"type":"","demo":"teams\/get-memberships.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-members.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Maximum number of memberships to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this value to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the membership used as the starting point for the query, excluding the membership itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Team Membership","operationId":"teamsCreateMembership","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"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.\n\nUse 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.\n\nPlease 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.","responses":{"201":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"createMembership","weight":164,"cookies":false,"type":"","demo":"teams\/create-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team-membership.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"Team member email.","default":null,"x-example":"email@example.com"},"roles":{"type":"array","description":"Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":null,"x-example":null,"items":{"type":"string"}},"url":{"type":"string","description":"URL to redirect the user back to your app from the invitation email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"},"name":{"type":"string","description":"Team member name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["email","roles","url"]}}]}},"\/teams\/{teamId}\/memberships\/{membershipId}":{"get":{"summary":"Get Team Membership","operationId":"teamsGetMembership","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team member by the membership unique id. All team members have read access for this resource.","responses":{"200":{"description":"Memberships List","schema":{"$ref":"#\/definitions\/membershipList"}}},"x-appwrite":{"method":"getMembership","weight":166,"cookies":false,"type":"","demo":"teams\/get-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"}]},"patch":{"summary":"Update Membership Roles","operationId":"teamsUpdateMembershipRoles","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"","responses":{"200":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"updateMembershipRoles","weight":167,"cookies":false,"type":"","demo":"teams\/update-membership-roles.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-roles.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"roles":{"type":"array","description":"Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Max length for each role is 32 chars.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["roles"]}}]},"delete":{"summary":"Delete Team Membership","operationId":"teamsDeleteMembership","consumes":["application\/json"],"produces":[],"tags":["teams"],"description":"This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteMembership","weight":169,"cookies":false,"type":"","demo":"teams\/delete-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"}]}},"\/teams\/{teamId}\/memberships\/{membershipId}\/status":{"patch":{"summary":"Update Team Membership Status","operationId":"teamsUpdateMembershipStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user.","responses":{"200":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"updateMembershipStatus","weight":168,"cookies":false,"type":"","demo":"teams\/update-membership-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Secret key.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/users":{"get":{"summary":"List Users","operationId":"usersList","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get a list of all the project's users. You can use the query params to filter your results.","responses":{"200":{"description":"Users List","schema":{"$ref":"#\/definitions\/userList"}}},"x-appwrite":{"method":"list","weight":171,"cookies":false,"type":"","demo":"users\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-users.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Maximum number of users to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the user used as the starting point for the query, excluding the user itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create User","operationId":"usersCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Create a new user.","responses":{"201":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"create","weight":170,"cookies":false,"type":"","demo":"users\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User ID. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"},"name":{"type":"string","description":"User name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["userId","email","password"]}}]}},"\/users\/usage":{"get":{"summary":"Get usage stats for the users API","operationId":"usersGetUsage","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"","responses":{"200":{"description":"UsageUsers","schema":{"$ref":"#\/definitions\/usageUsers"}}},"x-appwrite":{"method":"getUsage","weight":185,"cookies":false,"type":"","demo":"users\/get-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["console"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[]}],"parameters":[{"name":"range","description":"Date range.","required":false,"type":"string","x-example":"24h","default":"30d","in":"query"},{"name":"provider","description":"Provider Name.","required":false,"type":"string","x-example":"email","default":"","in":"query"}]}},"\/users\/{userId}":{"get":{"summary":"Get User","operationId":"usersGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get a user by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"get","weight":172,"cookies":false,"type":"","demo":"users\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]},"delete":{"summary":"Delete User","operationId":"usersDelete","consumes":["application\/json"],"produces":[],"tags":["users"],"description":"Delete a user by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":184,"cookies":false,"type":"","demo":"users\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]}},"\/users\/{userId}\/email":{"patch":{"summary":"Update Email","operationId":"usersUpdateEmail","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user email by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateEmail","weight":180,"cookies":false,"type":"","demo":"users\/update-email.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"}},"required":["email"]}}]}},"\/users\/{userId}\/logs":{"get":{"summary":"Get User Logs","operationId":"usersGetLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get the user activity logs list by its unique ID.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"getLogs","weight":175,"cookies":false,"type":"","demo":"users\/get-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"limit","description":"Maximum number of logs to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this value to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/users\/{userId}\/name":{"patch":{"summary":"Update Name","operationId":"usersUpdateName","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user name by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateName","weight":178,"cookies":false,"type":"","demo":"users\/update-name.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-name.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"User name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]}},"\/users\/{userId}\/password":{"patch":{"summary":"Update Password","operationId":"usersUpdatePassword","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user password by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePassword","weight":179,"cookies":false,"type":"","demo":"users\/update-password.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-password.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"password":{"type":"string","description":"New user password. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["password"]}}]}},"\/users\/{userId}\/prefs":{"get":{"summary":"Get User Preferences","operationId":"usersGetPrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get the user preferences by its unique ID.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"getPrefs","weight":173,"cookies":false,"type":"","demo":"users\/get-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]},"patch":{"summary":"Update User Preferences","operationId":"usersUpdatePrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user preferences by its unique ID. You can pass only the specific settings you wish to update.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"updatePrefs","weight":181,"cookies":false,"type":"","demo":"users\/update-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"prefs":{"type":"object","description":"Prefs key-value JSON object.","default":{},"x-example":"{}"}},"required":["prefs"]}}]}},"\/users\/{userId}\/sessions":{"get":{"summary":"Get User Sessions","operationId":"usersGetSessions","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get the user sessions list by its unique ID.","responses":{"200":{"description":"Sessions List","schema":{"$ref":"#\/definitions\/sessionList"}}},"x-appwrite":{"method":"getSessions","weight":174,"cookies":false,"type":"","demo":"users\/get-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]},"delete":{"summary":"Delete User Sessions","operationId":"usersDeleteSessions","consumes":["application\/json"],"produces":[],"tags":["users"],"description":"Delete all user's sessions by using the user's unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSessions","weight":183,"cookies":false,"type":"","demo":"users\/delete-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]}},"\/users\/{userId}\/sessions\/{sessionId}":{"delete":{"summary":"Delete User Session","operationId":"usersDeleteSession","consumes":["application\/json"],"produces":[],"tags":["users"],"description":"Delete a user sessions by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSession","weight":182,"cookies":false,"type":"","demo":"users\/delete-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-session.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"sessionId","description":"Session ID.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]}},"\/users\/{userId}\/status":{"patch":{"summary":"Update User Status","operationId":"usersUpdateStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user status by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateStatus","weight":176,"cookies":false,"type":"","demo":"users\/update-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-status.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"status":{"type":"boolean","description":"User Status. To activate the user pass `true` and to block the user pass `false`.","default":null,"x-example":false}},"required":["status"]}}]}},"\/users\/{userId}\/verification":{"patch":{"summary":"Update Email Verification","operationId":"usersUpdateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user email verification status by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateVerification","weight":177,"cookies":false,"type":"","demo":"users\/update-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-verification.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"emailVerification":{"type":"boolean","description":"User email verification status.","default":null,"x-example":false}},"required":["emailVerification"]}}]}}},"tags":[{"name":"account","description":"The Account service allows you to authenticate and manage a user account."},{"name":"avatars","description":"The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars."},{"name":"database","description":"The Database service allows you to create structured collections of documents, query and filter lists of documents"},{"name":"locale","description":"The Locale service allows you to customize your app based on your users' location."},{"name":"health","description":"The Health service allows you to both validate and monitor your Appwrite server's health."},{"name":"projects","description":"The Project service allows you to manage all the projects in your Appwrite server."},{"name":"storage","description":"The Storage service allows you to manage your project files."},{"name":"teams","description":"The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources"},{"name":"users","description":"The Users service allows you to manage your project users."},{"name":"functions","description":"The Functions Service allows you view, create and manage your Cloud Functions."}],"definitions":{"collectionList":{"description":"Collections List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"collections":{"type":"array","description":"List of collections.","items":{"type":"object","$ref":"#\/definitions\/collection"},"x-example":""}},"required":["sum","collections"]},"indexList":{"description":"Indexes List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"indexes":{"type":"array","description":"List of indexes.","items":{"type":"object","$ref":"#\/definitions\/index"},"x-example":""}},"required":["sum","indexes"]},"documentList":{"description":"Documents List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"documents":{"type":"array","description":"List of documents.","items":{"type":"object","$ref":"#\/definitions\/document"},"x-example":""}},"required":["sum","documents"]},"userList":{"description":"Users List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"users":{"type":"array","description":"List of users.","items":{"type":"object","$ref":"#\/definitions\/user"},"x-example":""}},"required":["sum","users"]},"sessionList":{"description":"Sessions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"sessions":{"type":"array","description":"List of sessions.","items":{"type":"object","$ref":"#\/definitions\/session"},"x-example":""}},"required":["sum","sessions"]},"logList":{"description":"Logs List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"logs":{"type":"array","description":"List of logs.","items":{"type":"object","$ref":"#\/definitions\/log"},"x-example":""}},"required":["sum","logs"]},"fileList":{"description":"Files List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"files":{"type":"array","description":"List of files.","items":{"type":"object","$ref":"#\/definitions\/file"},"x-example":""}},"required":["sum","files"]},"teamList":{"description":"Teams List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"teams":{"type":"array","description":"List of teams.","items":{"type":"object","$ref":"#\/definitions\/team"},"x-example":""}},"required":["sum","teams"]},"membershipList":{"description":"Memberships List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"memberships":{"type":"array","description":"List of memberships.","items":{"type":"object","$ref":"#\/definitions\/membership"},"x-example":""}},"required":["sum","memberships"]},"functionList":{"description":"Functions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"functions":{"type":"array","description":"List of functions.","items":{"type":"object","$ref":"#\/definitions\/function"},"x-example":""}},"required":["sum","functions"]},"runtimeList":{"description":"Runtimes List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"runtimes":{"type":"array","description":"List of runtimes.","items":{"type":"object","$ref":"#\/definitions\/runtime"},"x-example":""}},"required":["sum","runtimes"]},"tagList":{"description":"Tags List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"tags":{"type":"array","description":"List of tags.","items":{"type":"object","$ref":"#\/definitions\/tag"},"x-example":""}},"required":["sum","tags"]},"executionList":{"description":"Executions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"executions":{"type":"array","description":"List of executions.","items":{"type":"object","$ref":"#\/definitions\/execution"},"x-example":""}},"required":["sum","executions"]},"projectList":{"description":"Projects List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"projects":{"type":"array","description":"List of projects.","items":{"type":"object","$ref":"#\/definitions\/project"},"x-example":""}},"required":["sum","projects"]},"webhookList":{"description":"Webhooks List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"webhooks":{"type":"array","description":"List of webhooks.","items":{"type":"object","$ref":"#\/definitions\/webhook"},"x-example":""}},"required":["sum","webhooks"]},"keyList":{"description":"API Keys List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"keys":{"type":"array","description":"List of keys.","items":{"type":"object","$ref":"#\/definitions\/key"},"x-example":""}},"required":["sum","keys"]},"platformList":{"description":"Platforms List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"platforms":{"type":"array","description":"List of platforms.","items":{"type":"object","$ref":"#\/definitions\/platform"},"x-example":""}},"required":["sum","platforms"]},"domainList":{"description":"Domains List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"domains":{"type":"array","description":"List of domains.","items":{"type":"object","$ref":"#\/definitions\/domain"},"x-example":""}},"required":["sum","domains"]},"countryList":{"description":"Countries List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"countries":{"type":"array","description":"List of countries.","items":{"type":"object","$ref":"#\/definitions\/country"},"x-example":""}},"required":["sum","countries"]},"continentList":{"description":"Continents List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"continents":{"type":"array","description":"List of continents.","items":{"type":"object","$ref":"#\/definitions\/continent"},"x-example":""}},"required":["sum","continents"]},"languageList":{"description":"Languages List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"languages":{"type":"array","description":"List of languages.","items":{"type":"object","$ref":"#\/definitions\/language"},"x-example":""}},"required":["sum","languages"]},"currencyList":{"description":"Currencies List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"currencies":{"type":"array","description":"List of currencies.","items":{"type":"object","$ref":"#\/definitions\/currency"},"x-example":""}},"required":["sum","currencies"]},"phoneList":{"description":"Phones List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"phones":{"type":"array","description":"List of phones.","items":{"type":"object","$ref":"#\/definitions\/phone"},"x-example":""}},"required":["sum","phones"]},"metricList":{"description":"Metric List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"metrics":{"type":"array","description":"List of metrics.","items":{"type":"object","$ref":"#\/definitions\/metric"},"x-example":""}},"required":["sum","metrics"]},"collection":{"description":"Collection","type":"object","properties":{"$id":{"type":"string","description":"Collection ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"Collection read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"Collection write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"},"name":{"type":"string","description":"Collection name.","x-example":"My Collection"},"enabled":{"type":"boolean","description":"Collection enabled.","x-example":false},"permission":{"type":"string","description":"Collection permission model. Possible values: `document` or `collection`","x-example":"document"},"attributes":{"type":"array","description":"Collection attributes.","items":{"anyOf":[{"$ref":"#\/definitions\/attributeBoolean"},{"$ref":"#\/definitions\/attributeInteger"},{"$ref":"#\/definitions\/attributeFloat"},{"$ref":"#\/definitions\/attributeEmail"},{"$ref":"#\/definitions\/attributeEnum"},{"$ref":"#\/definitions\/attributeUrl"},{"$ref":"#\/definitions\/attributeIp"},{"$ref":"#\/definitions\/attributeString"}]},"x-example":{}},"indexes":{"type":"array","description":"Collection indexes.","items":{"type":"object","$ref":"#\/definitions\/index"},"x-example":{}}},"required":["$id","$read","$write","name","enabled","permission","attributes","indexes"]},"attributeList":{"description":"Attributes List","type":"object","properties":{"sum":{"type":"integer","description":"Total sum of items in the list.","x-example":5,"format":"int32"},"attributes":{"type":"array","description":"List of attributes.","items":{"anyOf":[{"$ref":"#\/definitions\/attributeBoolean"},{"$ref":"#\/definitions\/attributeInteger"},{"$ref":"#\/definitions\/attributeFloat"},{"$ref":"#\/definitions\/attributeEmail"},{"$ref":"#\/definitions\/attributeEnum"},{"$ref":"#\/definitions\/attributeUrl"},{"$ref":"#\/definitions\/attributeIp"},{"$ref":"#\/definitions\/attributeString"}]},"x-example":""}},"required":["sum","attributes"]},"attributeString":{"description":"AttributeString","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"size":{"type":"string","description":"Attribute size.","x-example":128},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"default","nullable":true}},"required":["key","type","status","required","size"]},"attributeInteger":{"description":"AttributeInteger","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"min":{"type":"integer","description":"Minimum value to enforce for new documents.","x-example":1,"format":"int32","nullable":true},"max":{"type":"integer","description":"Maximum value to enforce for new documents.","x-example":10,"format":"int32","nullable":true},"default":{"type":"integer","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":10,"format":"int32","nullable":true}},"required":["key","type","status","required"]},"attributeFloat":{"description":"AttributeFloat","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"min":{"type":"number","description":"Minimum value to enforce for new documents.","x-example":1.5,"format":"double","nullable":true},"max":{"type":"number","description":"Maximum value to enforce for new documents.","x-example":10.5,"format":"double","nullable":true},"default":{"type":"number","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":2.5,"format":"double","nullable":true}},"required":["key","type","status","required"]},"attributeBoolean":{"description":"AttributeBoolean","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"default":{"type":"boolean","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":false,"nullable":true}},"required":["key","type","status","required"]},"attributeEmail":{"description":"AttributeEmail","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"format":{"type":"string","description":"String format.","x-example":"email"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"default@example.com","nullable":true}},"required":["key","type","status","required","format"]},"attributeEnum":{"description":"AttributeEnum","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"elements":{"type":"array","description":"Array of elements in enumerated type.","items":{"type":"string"},"x-example":"element"},"format":{"type":"string","description":"String format.","x-example":"enum"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"element","nullable":true}},"required":["key","type","status","required","elements","format"]},"attributeIp":{"description":"AttributeIP","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"format":{"type":"string","description":"String format.","x-example":"ip"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"192.0.2.0","nullable":true}},"required":["key","type","status","required","format"]},"attributeUrl":{"description":"AttributeURL","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"format":{"type":"string","description":"String format.","x-example":"url"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"http:\/\/example.com","nullable":true}},"required":["key","type","status","required","format"]},"index":{"description":"Index","type":"object","properties":{"key":{"type":"string","description":"Index Key.","x-example":"index1"},"type":{"type":"string","description":"Index type.","x-example":""},"status":{"type":"string","description":"Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"attributes":{"type":"array","description":"Index attributes.","items":{"type":"string"},"x-example":[]},"orders":{"type":"array","description":"Index orders.","items":{"type":"string"},"x-example":[]}},"required":["key","type","status","attributes","orders"]},"document":{"description":"Document","type":"object","properties":{"$id":{"type":"string","description":"Document ID.","x-example":"5e5ea5c16897e"},"$collection":{"type":"string","description":"Collection ID.","x-example":"5e5ea5c15117e"},"$read":{"type":"array","description":"Document read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"Document write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"}},"additionalProperties":true,"required":["$id","$collection","$read","$write"]},"log":{"description":"Log","type":"object","properties":{"event":{"type":"string","description":"Event name.","x-example":"account.sessions.create"},"userId":{"type":"string","description":"User ID.","x-example":"610fc2f985ee0"},"userEmail":{"type":"string","description":"User Email.","x-example":"john@appwrite.io"},"userName":{"type":"string","description":"User Name.","x-example":"John Doe"},"mode":{"type":"string","description":"API mode when event triggered.","x-example":"admin"},"ip":{"type":"string","description":"IP session in use when the session was created.","x-example":"127.0.0.1"},"time":{"type":"integer","description":"Log creation time in Unix timestamp.","x-example":1592981250,"format":"int32"},"osCode":{"type":"string","description":"Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).","x-example":"Mac"},"osName":{"type":"string","description":"Operating system name.","x-example":"Mac"},"osVersion":{"type":"string","description":"Operating system version.","x-example":"Mac"},"clientType":{"type":"string","description":"Client type.","x-example":"browser"},"clientCode":{"type":"string","description":"Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).","x-example":"CM"},"clientName":{"type":"string","description":"Client name.","x-example":"Chrome Mobile iOS"},"clientVersion":{"type":"string","description":"Client version.","x-example":"84.0"},"clientEngine":{"type":"string","description":"Client engine name.","x-example":"WebKit"},"clientEngineVersion":{"type":"string","description":"Client engine name.","x-example":"605.1.15"},"deviceName":{"type":"string","description":"Device name.","x-example":"smartphone"},"deviceBrand":{"type":"string","description":"Device brand name.","x-example":"Google"},"deviceModel":{"type":"string","description":"Device model name.","x-example":"Nexus 5"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"}},"required":["event","userId","userEmail","userName","mode","ip","time","osCode","osName","osVersion","clientType","clientCode","clientName","clientVersion","clientEngine","clientEngineVersion","deviceName","deviceBrand","deviceModel","countryCode","countryName"]},"user":{"description":"User","type":"object","properties":{"$id":{"type":"string","description":"User ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"User name.","x-example":"John Doe"},"registration":{"type":"integer","description":"User registration date in Unix timestamp.","x-example":1592981250,"format":"int32"},"status":{"type":"boolean","description":"User status. Pass `true` for enabled and `false` for disabled.","x-example":true},"passwordUpdate":{"type":"integer","description":"Unix timestamp of the most recent password update","x-example":1592981250,"format":"int32"},"email":{"type":"string","description":"User email address.","x-example":"john@appwrite.io"},"emailVerification":{"type":"boolean","description":"Email verification status.","x-example":true},"prefs":{"type":"object","description":"User preferences as a key-value object","x-example":{"theme":"pink","timezone":"UTC"},"items":{"type":"object","$ref":"#\/definitions\/preferences"}}},"required":["$id","name","registration","status","passwordUpdate","email","emailVerification","prefs"]},"preferences":{"description":"Preferences","type":"object","additionalProperties":true},"session":{"description":"Session","type":"object","properties":{"$id":{"type":"string","description":"Session ID.","x-example":"5e5ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5bb8c16897e"},"expire":{"type":"integer","description":"Session expiration date in Unix timestamp.","x-example":1592981250,"format":"int32"},"provider":{"type":"string","description":"Session Provider.","x-example":"email"},"providerUid":{"type":"string","description":"Session Provider User ID.","x-example":"user@example.com"},"providerToken":{"type":"string","description":"Session Provider Token.","x-example":"MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"},"ip":{"type":"string","description":"IP in use when the session was created.","x-example":"127.0.0.1"},"osCode":{"type":"string","description":"Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).","x-example":"Mac"},"osName":{"type":"string","description":"Operating system name.","x-example":"Mac"},"osVersion":{"type":"string","description":"Operating system version.","x-example":"Mac"},"clientType":{"type":"string","description":"Client type.","x-example":"browser"},"clientCode":{"type":"string","description":"Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).","x-example":"CM"},"clientName":{"type":"string","description":"Client name.","x-example":"Chrome Mobile iOS"},"clientVersion":{"type":"string","description":"Client version.","x-example":"84.0"},"clientEngine":{"type":"string","description":"Client engine name.","x-example":"WebKit"},"clientEngineVersion":{"type":"string","description":"Client engine name.","x-example":"605.1.15"},"deviceName":{"type":"string","description":"Device name.","x-example":"smartphone"},"deviceBrand":{"type":"string","description":"Device brand name.","x-example":"Google"},"deviceModel":{"type":"string","description":"Device model name.","x-example":"Nexus 5"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"},"current":{"type":"boolean","description":"Returns true if this the current user session.","x-example":true}},"required":["$id","userId","expire","provider","providerUid","providerToken","ip","osCode","osName","osVersion","clientType","clientCode","clientName","clientVersion","clientEngine","clientEngineVersion","deviceName","deviceBrand","deviceModel","countryCode","countryName","current"]},"token":{"description":"Token","type":"object","properties":{"$id":{"type":"string","description":"Token ID.","x-example":"bb8ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5ea5c168bb8"},"secret":{"type":"string","description":"Token secret key. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.","x-example":""},"expire":{"type":"integer","description":"Token expiration date in Unix timestamp.","x-example":1592981250,"format":"int32"}},"required":["$id","userId","secret","expire"]},"jwt":{"description":"JWT","type":"object","properties":{"jwt":{"type":"string","description":"JWT encoded string.","x-example":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"}},"required":["jwt"]},"locale":{"description":"Locale","type":"object","properties":{"ip":{"type":"string","description":"User IP address.","x-example":"127.0.0.1"},"countryCode":{"type":"string","description":"Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format","x-example":"US"},"country":{"type":"string","description":"Country name. This field support localization.","x-example":"United States"},"continentCode":{"type":"string","description":"Continent code. A two character continent code \"AF\" for Africa, \"AN\" for Antarctica, \"AS\" for Asia, \"EU\" for Europe, \"NA\" for North America, \"OC\" for Oceania, and \"SA\" for South America.","x-example":"NA"},"continent":{"type":"string","description":"Continent name. This field support localization.","x-example":"North America"},"eu":{"type":"boolean","description":"True if country is part of the Europian Union.","x-example":false},"currency":{"type":"string","description":"Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format","x-example":"USD"}},"required":["ip","countryCode","country","continentCode","continent","eu","currency"]},"file":{"description":"File","type":"object","properties":{"$id":{"type":"string","description":"File ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"File read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"File write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"},"name":{"type":"string","description":"File name.","x-example":"Pink.png"},"dateCreated":{"type":"integer","description":"File creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"signature":{"type":"string","description":"File MD5 signature.","x-example":"5d529fd02b544198ae075bd57c1762bb"},"mimeType":{"type":"string","description":"File mime type.","x-example":"image\/png"},"sizeOriginal":{"type":"integer","description":"File original size in bytes.","x-example":17890,"format":"int32"}},"required":["$id","$read","$write","name","dateCreated","signature","mimeType","sizeOriginal"]},"team":{"description":"Team","type":"object","properties":{"$id":{"type":"string","description":"Team ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Team name.","x-example":"VIP"},"dateCreated":{"type":"integer","description":"Team creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"sum":{"type":"integer","description":"Total sum of team members.","x-example":7,"format":"int32"}},"required":["$id","name","dateCreated","sum"]},"membership":{"description":"Membership","type":"object","properties":{"$id":{"type":"string","description":"Membership ID.","x-example":"5e5ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5ea5c16897e"},"teamId":{"type":"string","description":"Team ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"User name.","x-example":"VIP"},"email":{"type":"string","description":"User email address.","x-example":"john@appwrite.io"},"invited":{"type":"integer","description":"Date, the user has been invited to join the team in Unix timestamp.","x-example":1592981250,"format":"int32"},"joined":{"type":"integer","description":"Date, the user has accepted the invitation to join the team in Unix timestamp.","x-example":1592981250,"format":"int32"},"confirm":{"type":"boolean","description":"User confirmation status, true if the user has joined the team or false otherwise.","x-example":false},"roles":{"type":"array","description":"User list of roles","items":{"type":"string"},"x-example":"admin"}},"required":["$id","userId","teamId","name","email","invited","joined","confirm","roles"]},"function":{"description":"Function","type":"object","properties":{"$id":{"type":"string","description":"Function ID.","x-example":"5e5ea5c16897e"},"execute":{"type":"string","description":"Execution permissions.","x-example":"role:member"},"name":{"type":"string","description":"Function name.","x-example":"My Function"},"dateCreated":{"type":"integer","description":"Function creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"dateUpdated":{"type":"integer","description":"Function update date in Unix timestamp.","x-example":1592981257,"format":"int32"},"status":{"type":"string","description":"Function status. Possible values: `disabled`, `enabled`","x-example":"enabled"},"runtime":{"type":"string","description":"Function execution runtime.","x-example":"python-3.8"},"tag":{"type":"string","description":"Function active tag ID.","x-example":"5e5ea5c16897e"},"vars":{"type":"string","description":"Function environment variables.","x-example":{"key":"value"}},"events":{"type":"array","description":"Function trigger events.","items":{"type":"string"},"x-example":"account.create"},"schedule":{"type":"string","description":"Function execution schedult in CRON format.","x-example":"5 4 * * *"},"scheduleNext":{"type":"integer","description":"Function next scheduled execution date in Unix timestamp.","x-example":1592981292,"format":"int32"},"schedulePrevious":{"type":"integer","description":"Function next scheduled execution date in Unix timestamp.","x-example":1592981237,"format":"int32"},"timeout":{"type":"integer","description":"Function execution timeout in seconds.","x-example":1592981237,"format":"int32"}},"required":["$id","execute","name","dateCreated","dateUpdated","status","runtime","tag","vars","events","schedule","scheduleNext","schedulePrevious","timeout"]},"runtime":{"description":"Runtime","type":"object","properties":{"$id":{"type":"string","description":"Runtime ID.","x-example":"python-3.8"},"name":{"type":"string","description":"Runtime Name.","x-example":"Python"},"version":{"type":"string","description":"Runtime version.","x-example":"3.8"},"base":{"type":"string","description":"Base Docker image used to build the runtime.","x-example":"python:3.8-alpine"},"image":{"type":"string","description":"Image name of Docker Hub.","x-example":"appwrite\\\/runtime-for-python:3.8"},"logo":{"type":"string","description":"Name of the logo image.","x-example":"python.png"},"supports":{"type":"array","description":"List of supported architectures.","items":{"type":"string"},"x-example":"amd64"}},"required":["$id","name","version","base","image","logo","supports"]},"tag":{"description":"Tag","type":"object","properties":{"$id":{"type":"string","description":"Tag ID.","x-example":"5e5ea5c16897e"},"functionId":{"type":"string","description":"Function ID.","x-example":"5e5ea6g16897e"},"dateCreated":{"type":"integer","description":"The tag creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"command":{"type":"string","description":"The entrypoint command in use to execute the tag code.","x-example":"enabled"},"size":{"type":"string","description":"The code size in bytes.","x-example":"python-3.8"}},"required":["$id","functionId","dateCreated","command","size"]},"execution":{"description":"Execution","type":"object","properties":{"$id":{"type":"string","description":"Execution ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"Execution read permissions.","items":{"type":"string"},"x-example":"role:all"},"functionId":{"type":"string","description":"Function ID.","x-example":"5e5ea6g16897e"},"dateCreated":{"type":"integer","description":"The execution creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"trigger":{"type":"string","description":"The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.","x-example":"http"},"status":{"type":"string","description":"The status of the function execution. Possible values can be: `waiting`, `processing`, `completed`, or `failed`.","x-example":"processing"},"exitCode":{"type":"integer","description":"The script exit code.","x-example":0,"format":"int32"},"stdout":{"type":"string","description":"The script stdout output string. Logs the last 4,000 characters of the execution stdout output.","x-example":""},"stderr":{"type":"string","description":"The script stderr output string. Logs the last 4,000 characters of the execution stderr output","x-example":""},"time":{"type":"number","description":"The script execution time in seconds.","x-example":0.4,"format":"double"}},"required":["$id","$read","functionId","dateCreated","trigger","status","exitCode","stdout","stderr","time"]},"project":{"description":"Project","type":"object","properties":{"$id":{"type":"string","description":"Project ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Project name.","x-example":"New Project"},"description":{"type":"string","description":"Project description.","x-example":"This is a new project."},"teamId":{"type":"string","description":"Project team ID.","x-example":"1592981250"},"logo":{"type":"string","description":"Project logo file ID.","x-example":"5f5c451b403cb"},"url":{"type":"string","description":"Project website URL.","x-example":"5f5c451b403cb"},"legalName":{"type":"string","description":"Company legal name.","x-example":"Company LTD."},"legalCountry":{"type":"string","description":"Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format.","x-example":"US"},"legalState":{"type":"string","description":"State name.","x-example":"New York"},"legalCity":{"type":"string","description":"City name.","x-example":"New York City."},"legalAddress":{"type":"string","description":"Company Address.","x-example":"620 Eighth Avenue, New York, NY 10018"},"legalTaxId":{"type":"string","description":"Company Tax ID.","x-example":"131102020"},"authLimit":{"type":"integer","description":"Max users allowed. 0 is unlimited.","x-example":100,"format":"int32"},"platforms":{"type":"array","description":"List of Platforms.","items":{"type":"object","$ref":"#\/definitions\/platform"},"x-example":{}},"webhooks":{"type":"array","description":"List of Webhooks.","items":{"type":"object","$ref":"#\/definitions\/webhook"},"x-example":{}},"keys":{"type":"array","description":"List of API Keys.","items":{"type":"object","$ref":"#\/definitions\/key"},"x-example":{}},"domains":{"type":"array","description":"List of Domains.","items":{"type":"object","$ref":"#\/definitions\/domain"},"x-example":{}},"providerAmazonAppid":{"type":"string","description":"Amazon OAuth app ID.","x-example":"123247283472834787438"},"providerAmazonSecret":{"type":"string","description":"Amazon OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerAppleAppid":{"type":"string","description":"Apple OAuth app ID.","x-example":"123247283472834787438"},"providerAppleSecret":{"type":"string","description":"Apple OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerBitbucketAppid":{"type":"string","description":"BitBucket OAuth app ID.","x-example":"123247283472834787438"},"providerBitbucketSecret":{"type":"string","description":"BitBucket OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerBitlyAppid":{"type":"string","description":"Bitly OAuth app ID.","x-example":"123247283472834787438"},"providerBitlySecret":{"type":"string","description":"Bitly OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerBoxAppid":{"type":"string","description":"Box OAuth app ID.","x-example":"123247283472834787438"},"providerBoxSecret":{"type":"string","description":"Box OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerDiscordAppid":{"type":"string","description":"Discord OAuth app ID.","x-example":"123247283472834787438"},"providerDiscordSecret":{"type":"string","description":"Discord OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerDropboxAppid":{"type":"string","description":"Dropbox OAuth app ID.","x-example":"123247283472834787438"},"providerDropboxSecret":{"type":"string","description":"Dropbox OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerFacebookAppid":{"type":"string","description":"Facebook OAuth app ID.","x-example":"123247283472834787438"},"providerFacebookSecret":{"type":"string","description":"Facebook OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerGithubAppid":{"type":"string","description":"GitHub OAuth app ID.","x-example":"123247283472834787438"},"providerGithubSecret":{"type":"string","description":"GitHub OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerGitlabAppid":{"type":"string","description":"GitLab OAuth app ID.","x-example":"123247283472834787438"},"providerGitlabSecret":{"type":"string","description":"GitLab OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerGoogleAppid":{"type":"string","description":"Google OAuth app ID.","x-example":"123247283472834787438"},"providerGoogleSecret":{"type":"string","description":"Google OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerLinkedinAppid":{"type":"string","description":"LinkedIn OAuth app ID.","x-example":"123247283472834787438"},"providerLinkedinSecret":{"type":"string","description":"LinkedIn OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerMicrosoftAppid":{"type":"string","description":"Microsoft OAuth app ID.","x-example":"123247283472834787438"},"providerMicrosoftSecret":{"type":"string","description":"Microsoft OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerPaypalAppid":{"type":"string","description":"PayPal OAuth app ID.","x-example":"123247283472834787438"},"providerPaypalSecret":{"type":"string","description":"PayPal OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerPaypalSandboxAppid":{"type":"string","description":"PayPal OAuth app ID.","x-example":"123247283472834787438"},"providerPaypalSandboxSecret":{"type":"string","description":"PayPal OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerSalesforceAppid":{"type":"string","description":"Salesforce OAuth app ID.","x-example":"123247283472834787438"},"providerSalesforceSecret":{"type":"string","description":"Salesforce OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerSlackAppid":{"type":"string","description":"Slack OAuth app ID.","x-example":"123247283472834787438"},"providerSlackSecret":{"type":"string","description":"Slack OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerSpotifyAppid":{"type":"string","description":"Spotify OAuth app ID.","x-example":"123247283472834787438"},"providerSpotifySecret":{"type":"string","description":"Spotify OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerTradeshiftAppid":{"type":"string","description":"Tradeshift OAuth app ID.","x-example":"123247283472834787438"},"providerTradeshiftSecret":{"type":"string","description":"Tradeshift OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerTradeshiftBoxAppid":{"type":"string","description":"Tradeshift OAuth app ID.","x-example":"123247283472834787438"},"providerTradeshiftBoxSecret":{"type":"string","description":"Tradeshift OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerTwitchAppid":{"type":"string","description":"Twitch OAuth app ID.","x-example":"123247283472834787438"},"providerTwitchSecret":{"type":"string","description":"Twitch OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerVkAppid":{"type":"string","description":"VK OAuth app ID.","x-example":"123247283472834787438"},"providerVkSecret":{"type":"string","description":"VK OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerYahooAppid":{"type":"string","description":"Yahoo OAuth app ID.","x-example":"123247283472834787438"},"providerYahooSecret":{"type":"string","description":"Yahoo OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerYandexAppid":{"type":"string","description":"Yandex OAuth app ID.","x-example":"123247283472834787438"},"providerYandexSecret":{"type":"string","description":"Yandex OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerWordpressAppid":{"type":"string","description":"WordPress OAuth app ID.","x-example":"123247283472834787438"},"providerWordpressSecret":{"type":"string","description":"WordPress OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"providerMockAppid":{"type":"string","description":"Mock OAuth app ID.","x-example":"123247283472834787438"},"providerMockSecret":{"type":"string","description":"Mock OAuth secret ID.","x-example":"djsgudsdsewe43434343dd34..."},"authEmailPassword":{"type":"boolean","description":"Email\/Password auth method status","x-example":true},"authUsersAuthMagicURL":{"type":"boolean","description":"Magic URL auth method status","x-example":true},"authAnonymous":{"type":"boolean","description":"Anonymous auth method status","x-example":true},"authInvites":{"type":"boolean","description":"Invites auth method status","x-example":true},"authJWT":{"type":"boolean","description":"JWT auth method status","x-example":true},"authPhone":{"type":"boolean","description":"Phone auth method status","x-example":true},"serviceStatusForAccount":{"type":"boolean","description":"Account service status","x-example":true},"serviceStatusForAvatars":{"type":"boolean","description":"Avatars service status","x-example":true},"serviceStatusForDatabase":{"type":"boolean","description":"Database service status","x-example":true},"serviceStatusForLocale":{"type":"boolean","description":"Locale service status","x-example":true},"serviceStatusForHealth":{"type":"boolean","description":"Health service status","x-example":true},"serviceStatusForStorage":{"type":"boolean","description":"Storage service status","x-example":true},"serviceStatusForTeams":{"type":"boolean","description":"Teams service status","x-example":true},"serviceStatusForUsers":{"type":"boolean","description":"Users service status","x-example":true},"serviceStatusForFunctions":{"type":"boolean","description":"Functions service status","x-example":true}},"required":["$id","name","description","teamId","logo","url","legalName","legalCountry","legalState","legalCity","legalAddress","legalTaxId","authLimit","platforms","webhooks","keys","domains","providerAmazonAppid","providerAmazonSecret","providerAppleAppid","providerAppleSecret","providerBitbucketAppid","providerBitbucketSecret","providerBitlyAppid","providerBitlySecret","providerBoxAppid","providerBoxSecret","providerDiscordAppid","providerDiscordSecret","providerDropboxAppid","providerDropboxSecret","providerFacebookAppid","providerFacebookSecret","providerGithubAppid","providerGithubSecret","providerGitlabAppid","providerGitlabSecret","providerGoogleAppid","providerGoogleSecret","providerLinkedinAppid","providerLinkedinSecret","providerMicrosoftAppid","providerMicrosoftSecret","providerPaypalAppid","providerPaypalSecret","providerPaypalSandboxAppid","providerPaypalSandboxSecret","providerSalesforceAppid","providerSalesforceSecret","providerSlackAppid","providerSlackSecret","providerSpotifyAppid","providerSpotifySecret","providerTradeshiftAppid","providerTradeshiftSecret","providerTradeshiftBoxAppid","providerTradeshiftBoxSecret","providerTwitchAppid","providerTwitchSecret","providerVkAppid","providerVkSecret","providerYahooAppid","providerYahooSecret","providerYandexAppid","providerYandexSecret","providerWordpressAppid","providerWordpressSecret","providerMockAppid","providerMockSecret","authEmailPassword","authUsersAuthMagicURL","authAnonymous","authInvites","authJWT","authPhone","serviceStatusForAccount","serviceStatusForAvatars","serviceStatusForDatabase","serviceStatusForLocale","serviceStatusForHealth","serviceStatusForStorage","serviceStatusForTeams","serviceStatusForUsers","serviceStatusForFunctions"]},"webhook":{"description":"Webhook","type":"object","properties":{"$id":{"type":"string","description":"Webhook ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Webhook name.","x-example":"My Webhook"},"url":{"type":"string","description":"Webhook URL endpoint.","x-example":"https:\/\/example.com\/webhook"},"events":{"type":"array","description":"Webhook trigger events.","items":{"type":"string"},"x-example":"database.collections.update"},"security":{"type":"boolean","description":"Indicated if SSL \/ TLS Certificate verification is enabled.","x-example":true},"httpUser":{"type":"string","description":"HTTP basic authentication username.","x-example":"username"},"httpPass":{"type":"string","description":"HTTP basic authentication password.","x-example":"password"}},"required":["$id","name","url","events","security","httpUser","httpPass"]},"key":{"description":"Key","type":"object","properties":{"$id":{"type":"string","description":"Key ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Key name.","x-example":"My API Key"},"scopes":{"type":"array","description":"Allowed permission scopes.","items":{"type":"string"},"x-example":"users.read"},"secret":{"type":"string","description":"Secret key.","x-example":"919c2d18fb5d4...a2ae413da83346ad2"}},"required":["$id","name","scopes","secret"]},"domain":{"description":"Domain","type":"object","properties":{"$id":{"type":"string","description":"Domain ID.","x-example":"5e5ea5c16897e"},"domain":{"type":"string","description":"Domain name.","x-example":"appwrite.company.com"},"registerable":{"type":"string","description":"Registerable domain name.","x-example":"company.com"},"tld":{"type":"string","description":"TLD name.","x-example":"com"},"verification":{"type":"boolean","description":"Verification process status.","x-example":true},"certificateId":{"type":"string","description":"Certificate ID.","x-example":"6ejea5c13377e"}},"required":["$id","domain","registerable","tld","verification","certificateId"]},"platform":{"description":"Platform","type":"object","properties":{"$id":{"type":"string","description":"Platform ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Platform name.","x-example":"My Web App"},"type":{"type":"string","description":"Platform type. Possible values are: web, flutter-ios, flutter-android, ios, android, and unity.","x-example":"My Web App"},"key":{"type":"string","description":"Platform Key. iOS bundle ID or Android package name. Empty string for other platforms.","x-example":"com.company.appname"},"store":{"type":"string","description":"App store or Google Play store ID.","x-example":""},"hostname":{"type":"string","description":"Web app hostname. Empty string for other platforms.","x-example":true},"httpUser":{"type":"string","description":"HTTP basic authentication username.","x-example":"username"},"httpPass":{"type":"string","description":"HTTP basic authentication password.","x-example":"password"}},"required":["$id","name","type","key","store","hostname","httpUser","httpPass"]},"country":{"description":"Country","type":"object","properties":{"name":{"type":"string","description":"Country name.","x-example":"United States"},"code":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"}},"required":["name","code"]},"continent":{"description":"Continent","type":"object","properties":{"name":{"type":"string","description":"Continent name.","x-example":"Europe"},"code":{"type":"string","description":"Continent two letter code.","x-example":"EU"}},"required":["name","code"]},"language":{"description":"Language","type":"object","properties":{"name":{"type":"string","description":"Language name.","x-example":"Italian"},"code":{"type":"string","description":"Language two-character ISO 639-1 codes.","x-example":"it"},"nativeName":{"type":"string","description":"Language native name.","x-example":"Italiano"}},"required":["name","code","nativeName"]},"currency":{"description":"Currency","type":"object","properties":{"symbol":{"type":"string","description":"Currency symbol.","x-example":"$"},"name":{"type":"string","description":"Currency name.","x-example":"US dollar"},"symbolNative":{"type":"string","description":"Currency native symbol.","x-example":"$"},"decimalDigits":{"type":"integer","description":"Number of decimal digits.","x-example":2,"format":"int32"},"rounding":{"type":"number","description":"Currency digit rounding.","x-example":0,"format":"double"},"code":{"type":"string","description":"Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format.","x-example":"USD"},"namePlural":{"type":"string","description":"Currency plural name","x-example":"US dollars"}},"required":["symbol","name","symbolNative","decimalDigits","rounding","code","namePlural"]},"phone":{"description":"Phone","type":"object","properties":{"code":{"type":"string","description":"Phone code.","x-example":"+1"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"}},"required":["code","countryCode","countryName"]},"metric":{"description":"Metric","type":"object","properties":{"value":{"type":"integer","description":"The value of this metric at the timestamp.","x-example":1,"format":"int32"},"timestamp":{"type":"integer","description":"The UNIX timestamp at which this metric was aggregated.","x-example":1592981250,"format":"int32"}},"required":["value","timestamp"]},"usageDatabase":{"description":"UsageDatabase","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"documentsCount":{"type":"array","description":"Aggregated stats for total number of documents.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"collectionsCount":{"type":"array","description":"Aggregated stats for total number of collections.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsCreate":{"type":"array","description":"Aggregated stats for documents created.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsRead":{"type":"array","description":"Aggregated stats for documents read.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsUpdate":{"type":"array","description":"Aggregated stats for documents updated.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsDelete":{"type":"array","description":"Aggregated stats for documents deleted.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"collectionsCreate":{"type":"array","description":"Aggregated stats for collections created.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"collectionsRead":{"type":"array","description":"Aggregated stats for collections read.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"collectionsUpdate":{"type":"array","description":"Aggregated stats for collections updated.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"collectionsDelete":{"type":"array","description":"Aggregated stats for collections delete.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","documentsCount","collectionsCount","documentsCreate","documentsRead","documentsUpdate","documentsDelete","collectionsCreate","collectionsRead","collectionsUpdate","collectionsDelete"]},"usageCollection":{"description":"UsageCollection","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"documentsCount":{"type":"array","description":"Aggregated stats for total number of documents.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsCreate":{"type":"array","description":"Aggregated stats for documents created.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsRead":{"type":"array","description":"Aggregated stats for documents read.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsUpdate":{"type":"array","description":"Aggregated stats for documents updated.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documentsDelete":{"type":"array","description":"Aggregated stats for documents deleted.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","documentsCount","documentsCreate","documentsRead","documentsUpdate","documentsDelete"]},"usageUsers":{"description":"UsageUsers","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"usersCount":{"type":"array","description":"Aggregated stats for total number of users.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"usersCreate":{"type":"array","description":"Aggregated stats for users created.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"usersRead":{"type":"array","description":"Aggregated stats for users read.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"usersUpdate":{"type":"array","description":"Aggregated stats for users updated.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"usersDelete":{"type":"array","description":"Aggregated stats for users deleted.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"sessionsCreate":{"type":"array","description":"Aggregated stats for sessions created.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"sessionsProviderCreate":{"type":"array","description":"Aggregated stats for sessions created for a provider ( email, anonymous or oauth2 ).","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"sessionsDelete":{"type":"array","description":"Aggregated stats for sessions deleted.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","usersCount","usersCreate","usersRead","usersUpdate","usersDelete","sessionsCreate","sessionsProviderCreate","sessionsDelete"]},"usageStorage":{"description":"StorageUsage","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"storage":{"type":"array","description":"Aggregated stats for the occupied storage size (in bytes).","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"files":{"type":"array","description":"Aggregated stats for total number of files.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","storage","files"]},"usageBuckets":{"description":"UsageBuckets","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"filesCount":{"type":"array","description":"Aggregated stats for total number of files in this bucket.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"filesCreate":{"type":"array","description":"Aggregated stats for files created.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"filesRead":{"type":"array","description":"Aggregated stats for files read.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"filesUpdate":{"type":"array","description":"Aggregated stats for files updated.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"filesDelete":{"type":"array","description":"Aggregated stats for files deleted.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","filesCount","filesCreate","filesRead","filesUpdate","filesDelete"]},"usageFunctions":{"description":"UsageFunctions","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"functionsExecutions":{"type":"array","description":"Aggregated stats for function executions.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"functionsFailures":{"type":"array","description":"Aggregated stats for function execution failures.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"functionsCompute":{"type":"array","description":"Aggregated stats for function execution duration.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","functionsExecutions","functionsFailures","functionsCompute"]},"usageProject":{"description":"UsageProject","type":"object","properties":{"range":{"type":"string","description":"The time range of the usage stats.","x-example":"30d"},"requests":{"type":"array","description":"Aggregated stats for number of requests.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"network":{"type":"array","description":"Aggregated stats for consumed bandwidth.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"functions":{"type":"array","description":"Aggregated stats for function executions.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"documents":{"type":"array","description":"Aggregated stats for number of documents.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"collections":{"type":"array","description":"Aggregated stats for number of collections.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"users":{"type":"array","description":"Aggregated stats for number of users.","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}},"storage":{"type":"array","description":"Aggregated stats for the occupied storage size (in bytes).","items":{"type":"object","$ref":"#\/definitions\/metricList"},"x-example":{}}},"required":["range","requests","network","functions","documents","collections","users","storage"]}},"externalDocs":{"description":"Full API docs, specs and tutorials","url":"https:\/\/appwrite.io\/docs"}} \ No newline at end of file diff --git a/app/config/specs/0.12.x.server.json b/app/config/specs/0.12.x.server.json index d978e405b3..4ec99d9224 100644 --- a/app/config/specs/0.12.x.server.json +++ b/app/config/specs/0.12.x.server.json @@ -1 +1 @@ -{"swagger":"2.0","info":{"version":"0.12.0","title":"Appwrite","description":"Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)","termsOfService":"https:\/\/appwrite.io\/policy\/terms","contact":{"name":"Appwrite Team","url":"https:\/\/appwrite.io\/support","email":"team@appwrite.io"},"license":{"name":"BSD-3-Clause","url":"https:\/\/raw.githubusercontent.com\/appwrite\/appwrite\/master\/LICENSE"}},"host":"appwrite.io","basePath":"\/v1","schemes":["https"],"consumes":["application\/json","multipart\/form-data"],"produces":["application\/json"],"securityDefinitions":{"Project":{"type":"apiKey","name":"X-Appwrite-Project","description":"Your project ID","in":"header","x-appwrite":{"demo":"5df5acd0d48c2"}},"Key":{"type":"apiKey","name":"X-Appwrite-Key","description":"Your secret API key","in":"header","x-appwrite":{"demo":"919c2d18fb5d4...a2ae413da83346ad2"}},"JWT":{"type":"apiKey","name":"X-Appwrite-JWT","description":"Your secret JSON Web Token","in":"header","x-appwrite":{"demo":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."}},"Locale":{"type":"apiKey","name":"X-Appwrite-Locale","description":"","in":"header","x-appwrite":{"demo":"en"}}},"paths":{"\/account":{"get":{"summary":"Get Account","operationId":"accountGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user data as JSON object.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"get","weight":47,"cookies":false,"type":"","demo":"account\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}]},"delete":{"summary":"Delete Account","operationId":"accountDelete","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Delete a currently logged in user account. Behind the scene, the user record is not deleted but permanently blocked from any access. This is done to avoid deleted accounts being overtaken by new users with the same email address. Any user-related resources like documents or storage files should be deleted separately.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":56,"cookies":false,"type":"","demo":"account\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/account\/email":{"patch":{"summary":"Update Account Email","operationId":"accountUpdateEmail","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account email address. After changing user address, the user confirmation status will get reset. A new confirmation email is not sent automatically however you can use the send confirmation email endpoint again to send the confirmation email. For security measures, user password is required to complete this request.\nThis endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.\n","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateEmail","weight":54,"cookies":false,"type":"","demo":"account\/update-email.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-email.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["email","password"]}}]}},"\/account\/logs":{"get":{"summary":"Get Account Logs","operationId":"accountGetLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user list of latest security activity logs. Each log returns user IP address, location and date and time of log.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"getLogs","weight":50,"cookies":false,"type":"","demo":"account\/get-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"limit","description":"Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/account\/name":{"patch":{"summary":"Update Account Name","operationId":"accountUpdateName","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account name.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateName","weight":52,"cookies":false,"type":"","demo":"account\/update-name.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-name.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"User name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]}},"\/account\/password":{"patch":{"summary":"Update Account Password","operationId":"accountUpdatePassword","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user password. For validation, user is required to pass in the new password, and the old password. For users created with OAuth and Team Invites, oldPassword is optional.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePassword","weight":53,"cookies":false,"type":"","demo":"account\/update-password.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-password.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"},"oldPassword":{"type":"string","description":"Old user password. Must be at least 8 chars.","default":"","x-example":"password"}},"required":["password"]}}]}},"\/account\/prefs":{"get":{"summary":"Get Account Preferences","operationId":"accountGetPrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user preferences as a key-value object.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"getPrefs","weight":48,"cookies":false,"type":"","demo":"account\/get-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}]},"patch":{"summary":"Update Account Preferences","operationId":"accountUpdatePrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account preferences. You can pass only the specific settings you wish to update.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePrefs","weight":55,"cookies":false,"type":"","demo":"account\/update-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"prefs":{"type":"object","description":"Prefs key-value JSON object.","default":{},"x-example":"{}"}},"required":["prefs"]}}]}},"\/account\/recovery":{"post":{"summary":"Create Password Recovery","operationId":"accountCreateRecovery","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Sends the user an email with a temporary secret key for password reset. When the user clicks the confirmation link he is redirected back to your app password reset URL with the secret key and email address values attached to the URL query string. Use the query string params to submit a request to the [PUT \/account\/recovery](\/docs\/client\/account#accountUpdateRecovery) endpoint to complete the process. The verification link sent to the user's email address is valid for 1 hour.","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createRecovery","weight":59,"cookies":false,"type":"","demo":"account\/create-recovery.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-recovery.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"url":{"type":"string","description":"URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"}},"required":["email","url"]}}]},"put":{"summary":"Create Password Recovery (confirmation)","operationId":"accountUpdateRecovery","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/recovery](\/docs\/client\/account#accountCreateRecovery) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.","responses":{"200":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"updateRecovery","weight":60,"cookies":false,"type":"","demo":"account\/update-recovery.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-recovery.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User account UID address.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Valid reset token.","default":null,"x-example":"[SECRET]"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"},"passwordAgain":{"type":"string","description":"New password again. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["userId","secret","password","passwordAgain"]}}]}},"\/account\/sessions":{"get":{"summary":"Get Account Sessions","operationId":"accountGetSessions","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user list of active sessions across different devices.","responses":{"200":{"description":"Sessions List","schema":{"$ref":"#\/definitions\/sessionList"}}},"x-appwrite":{"method":"getSessions","weight":49,"cookies":false,"type":"","demo":"account\/get-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}]},"delete":{"summary":"Delete All Account Sessions","operationId":"accountDeleteSessions","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Delete all sessions from the user account and remove any sessions cookies from the end client.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSessions","weight":58,"cookies":false,"type":"","demo":"account\/delete-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-sessions.md","rate-limit":100,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/account\/sessions\/{sessionId}":{"get":{"summary":"Get Session By ID","operationId":"accountGetSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to get a logged in user's session using a Session ID. Inputting 'current' will return the current session being used.","responses":{"200":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"getSession","weight":51,"cookies":false,"type":"","demo":"account\/get-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-session.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"sessionId","description":"Session unique ID. Use the string 'current' to get the current device session.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]},"delete":{"summary":"Delete Account Session","operationId":"accountDeleteSession","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Use this endpoint to log out the currently logged in user from all their account sessions across all of their different devices. When using the option id argument, only the session unique ID provider will be deleted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSession","weight":57,"cookies":false,"type":"","demo":"account\/delete-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-session.md","rate-limit":100,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"sessionId","description":"Session unique ID. Use the string 'current' to delete the current device session.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]}},"\/account\/verification":{"post":{"summary":"Create Email Verification","operationId":"accountCreateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](\/docs\/client\/account#accountUpdateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createVerification","weight":61,"cookies":false,"type":"","demo":"account\/create-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-verification.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{userId}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"url":{"type":"string","description":"URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"}},"required":["url"]}}]},"put":{"summary":"Create Email Verification (confirmation)","operationId":"accountUpdateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.","responses":{"200":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"updateVerification","weight":62,"cookies":false,"type":"","demo":"account\/update-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-verification.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User unique ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Valid verification token.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/avatars\/browsers\/{code}":{"get":{"summary":"Get Browser Icon","operationId":"avatarsGetBrowser","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user \/account\/sessions endpoint. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getBrowser","weight":64,"cookies":false,"type":"location","demo":"avatars\/get-browser.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-browser.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"code","description":"Browser Code.","required":true,"type":"string","x-example":"aa","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/credit-cards\/{code}":{"get":{"summary":"Get Credit Card Icon","operationId":"avatarsGetCreditCard","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getCreditCard","weight":63,"cookies":false,"type":"location","demo":"avatars\/get-credit-card.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-credit-card.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"code","description":"Credit Card Code. Possible values: amex, argencard, cabal, censosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro.","required":true,"type":"string","x-example":"amex","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/favicon":{"get":{"summary":"Get Favicon","operationId":"avatarsGetFavicon","consumes":["application\/json"],"produces":["image\/*"],"tags":["avatars"],"description":"Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFavicon","weight":67,"cookies":false,"type":"location","demo":"avatars\/get-favicon.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-favicon.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"url","description":"Website URL which you want to fetch the favicon from.","required":true,"type":"string","format":"url","x-example":"https:\/\/example.com","in":"query"}]}},"\/avatars\/flags\/{code}":{"get":{"summary":"Get Country Flag","operationId":"avatarsGetFlag","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFlag","weight":65,"cookies":false,"type":"location","demo":"avatars\/get-flag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-flag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"code","description":"Country Code. ISO Alpha-2 country code format.","required":true,"type":"string","x-example":"af","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/image":{"get":{"summary":"Get Image from URL","operationId":"avatarsGetImage","consumes":["application\/json"],"produces":["image\/*"],"tags":["avatars"],"description":"Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getImage","weight":66,"cookies":false,"type":"location","demo":"avatars\/get-image.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-image.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"url","description":"Image URL which you want to crop.","required":true,"type":"string","format":"url","x-example":"https:\/\/example.com","in":"query"},{"name":"width","description":"Resize preview image width, Pass an integer between 0 to 2000.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"},{"name":"height","description":"Resize preview image height, Pass an integer between 0 to 2000.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"}]}},"\/avatars\/initials":{"get":{"summary":"Get User Initials","operationId":"avatarsGetInitials","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.\n\nYou can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getInitials","weight":69,"cookies":false,"type":"location","demo":"avatars\/get-initials.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-initials.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"name","description":"Full Name. When empty, current user name or email will be used. Max length: 128 chars.","required":false,"type":"string","x-example":"[NAME]","default":"","in":"query"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":500,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":500,"in":"query"},{"name":"color","description":"Changes text color. By default a random color will be picked and stay will persistent to the given name.","required":false,"type":"string","default":"","in":"query"},{"name":"background","description":"Changes background color. By default a random color will be picked and stay will persistent to the given name.","required":false,"type":"string","default":"","in":"query"}]}},"\/avatars\/qr":{"get":{"summary":"Get QR Code","operationId":"avatarsGetQR","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getQR","weight":68,"cookies":false,"type":"location","demo":"avatars\/get-q-r.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-qr.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"text","description":"Plain text to be converted to QR code image.","required":true,"type":"string","x-example":"[TEXT]","in":"query"},{"name":"size","description":"QR code size. Pass an integer between 0 to 1000. Defaults to 400.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"},{"name":"margin","description":"Margin from edge. Pass an integer between 0 to 10. Defaults to 1.","required":false,"type":"integer","format":"int32","x-example":0,"default":1,"in":"query"},{"name":"download","description":"Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.","required":false,"type":"boolean","x-example":false,"default":false,"in":"query"}]}},"\/database\/collections":{"get":{"summary":"List Collections","operationId":"databaseListCollections","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a list of all the user collections. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's collections. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Collections List","schema":{"$ref":"#\/definitions\/collectionList"}}},"x-appwrite":{"method":"listCollections","weight":71,"cookies":false,"type":"","demo":"database\/list-collections.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-collections.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the collection used as the starting point for the query, excluding the collection itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Collection","operationId":"databaseCreateCollection","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new Collection.","responses":{"201":{"description":"Collection","schema":{"$ref":"#\/definitions\/collection"}}},"x-appwrite":{"method":"createCollection","weight":70,"cookies":false,"type":"","demo":"database\/create-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"collectionId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Collection name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"permission":{"type":"string","description":"Permissions type model to use for reading documents in this collection. You can use collection-level permission set once on the collection using the `read` and `write` params, or you can set document-level permission where each document read and write params will decide who has access to read and write to each document individually. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"document"},"read":{"type":"array","description":"An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["collectionId","name","permission","read","write"]}}]}},"\/database\/collections\/{collectionId}":{"get":{"summary":"Get Collection","operationId":"databaseGetCollection","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.","responses":{"200":{"description":"Collection","schema":{"$ref":"#\/definitions\/collection"}}},"x-appwrite":{"method":"getCollection","weight":72,"cookies":false,"type":"","demo":"database\/get-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]},"put":{"summary":"Update Collection","operationId":"databaseUpdateCollection","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Update a collection by its unique ID.","responses":{"200":{"description":"Collection","schema":{"$ref":"#\/definitions\/collection"}}},"x-appwrite":{"method":"updateCollection","weight":76,"cookies":false,"type":"","demo":"database\/update-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/update-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Collection name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"permission":{"type":"string","description":"Permissions type model to use for reading documents in this collection. You can use collection-level permission set once on the collection using the `read` and `write` params, or you can set document-level permission where each document read and write params will decide who has access to read and write to each document individually. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"document"},"read":{"type":"array","description":"An array of strings with read permissions. By default inherits the existing read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default inherits the existing write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"enabled":{"type":"boolean","description":"Is collection enabled?","default":true,"x-example":false}},"required":["name","permission"]}}]},"delete":{"summary":"Delete Collection","operationId":"databaseDeleteCollection","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteCollection","weight":77,"cookies":false,"type":"","demo":"database\/delete-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]}},"\/database\/collections\/{collectionId}\/attributes":{"get":{"summary":"List Attributes","operationId":"databaseListAttributes","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"Attributes List","schema":{"$ref":"#\/definitions\/attributeList"}}},"x-appwrite":{"method":"listAttributes","weight":86,"cookies":false,"type":"","demo":"database\/list-attributes.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-attributes.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]}},"\/database\/collections\/{collectionId}\/attributes\/boolean":{"post":{"summary":"Create Boolean Attribute","operationId":"databaseCreateBooleanAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a boolean attribute.\n","responses":{"201":{"description":"AttributeBoolean","schema":{"$ref":"#\/definitions\/attributeBoolean"}}},"x-appwrite":{"method":"createBooleanAttribute","weight":85,"cookies":false,"type":"","demo":"database\/create-boolean-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-boolean-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"boolean","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":false},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/email":{"post":{"summary":"Create Email Attribute","operationId":"databaseCreateEmailAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create an email attribute.\n","responses":{"201":{"description":"AttributeEmail","schema":{"$ref":"#\/definitions\/attributeEmail"}}},"x-appwrite":{"method":"createEmailAttribute","weight":79,"cookies":false,"type":"","demo":"database\/create-email-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-email-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"email@example.com"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/enum":{"post":{"summary":"Create Enum Attribute","operationId":"databaseCreateEnumAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"201":{"description":"AttributeEnum","schema":{"$ref":"#\/definitions\/attributeEnum"}}},"x-appwrite":{"method":"createEnumAttribute","weight":80,"cookies":false,"type":"","demo":"database\/create-enum-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-attribute-enum.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"elements":{"type":"array","description":"Array of elements in enumerated type. Uses length of longest element to determine size.","default":null,"x-example":null,"items":{"type":"string"}},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"[DEFAULT]"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","elements","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/float":{"post":{"summary":"Create Float Attribute","operationId":"databaseCreateFloatAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a float attribute. Optionally, minimum and maximum values can be provided.\n","responses":{"201":{"description":"AttributeFloat","schema":{"$ref":"#\/definitions\/attributeFloat"}}},"x-appwrite":{"method":"createFloatAttribute","weight":84,"cookies":false,"type":"","demo":"database\/create-float-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-float-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"min":{"type":"string","description":"Minimum value to enforce on new documents","default":null,"x-example":null},"max":{"type":"string","description":"Maximum value to enforce on new documents","default":null,"x-example":null},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":null},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/integer":{"post":{"summary":"Create Integer Attribute","operationId":"databaseCreateIntegerAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create an integer attribute. Optionally, minimum and maximum values can be provided.\n","responses":{"201":{"description":"AttributeInteger","schema":{"$ref":"#\/definitions\/attributeInteger"}}},"x-appwrite":{"method":"createIntegerAttribute","weight":83,"cookies":false,"type":"","demo":"database\/create-integer-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-integer-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"min":{"type":"integer","description":"Minimum value to enforce on new documents","default":null,"x-example":null},"max":{"type":"integer","description":"Maximum value to enforce on new documents","default":null,"x-example":null},"default":{"type":"integer","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":null},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/ip":{"post":{"summary":"Create IP Address Attribute","operationId":"databaseCreateIpAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create IP address attribute.\n","responses":{"201":{"description":"AttributeIP","schema":{"$ref":"#\/definitions\/attributeIp"}}},"x-appwrite":{"method":"createIpAttribute","weight":81,"cookies":false,"type":"","demo":"database\/create-ip-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-ip-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":null},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/string":{"post":{"summary":"Create String Attribute","operationId":"databaseCreateStringAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new string attribute.\n","responses":{"201":{"description":"AttributeString","schema":{"$ref":"#\/definitions\/attributeString"}}},"x-appwrite":{"method":"createStringAttribute","weight":78,"cookies":false,"type":"","demo":"database\/create-string-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-string-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"size":{"type":"integer","description":"Attribute size for text attributes, in number of characters.","default":null,"x-example":1},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"[DEFAULT]"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","size","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/url":{"post":{"summary":"Create URL Attribute","operationId":"databaseCreateUrlAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a URL attribute.\n","responses":{"201":{"description":"AttributeURL","schema":{"$ref":"#\/definitions\/attributeUrl"}}},"x-appwrite":{"method":"createUrlAttribute","weight":82,"cookies":false,"type":"","demo":"database\/create-url-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-url-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"attributeId":{"type":"string","description":"Attribute ID.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"https:\/\/example.com"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["attributeId","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/{attributeId}":{"get":{"summary":"Get Attribute","operationId":"databaseGetAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"AttributeBoolean, or AttributeInteger, or AttributeFloat, or AttributeEmail, or AttributeEnum, or AttributeURL, or AttributeIP, or AttributeString","schema":{"oneOf":[{"$ref":"#\/definitions\/attributeBoolean"},{"$ref":"#\/definitions\/attributeInteger"},{"$ref":"#\/definitions\/attributeFloat"},{"$ref":"#\/definitions\/attributeEmail"},{"$ref":"#\/definitions\/attributeEnum"},{"$ref":"#\/definitions\/attributeUrl"},{"$ref":"#\/definitions\/attributeIp"},{"$ref":"#\/definitions\/attributeString"}]}}},"x-appwrite":{"method":"getAttribute","weight":87,"cookies":false,"type":"","demo":"database\/get-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"attributeId","description":"Attribute ID.","required":true,"type":"string","in":"path"}]},"delete":{"summary":"Delete Attribute","operationId":"databaseDeleteAttribute","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteAttribute","weight":88,"cookies":false,"type":"","demo":"database\/delete-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"attributeId","description":"Attribute ID.","required":true,"type":"string","in":"path"}]}},"\/database\/collections\/{collectionId}\/documents":{"get":{"summary":"List Documents","operationId":"databaseListDocuments","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a list of all the user documents. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's documents. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Documents List","schema":{"$ref":"#\/definitions\/documentList"}}},"x-appwrite":{"method":"listDocuments","weight":94,"cookies":false,"type":"","demo":"database\/list-documents.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-documents.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"queries","description":"Array of query strings.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"},{"name":"limit","description":"Maximum number of documents to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the document used as the starting point for the query, excluding the document itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderAttributes","description":"Array of attributes used to sort results.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"},{"name":"orderTypes","description":"Array of order directions for sorting attribtues. Possible values are DESC for descending order, or ASC for ascending order.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"}]},"post":{"summary":"Create Document","operationId":"databaseCreateDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](\/docs\/server\/database#databaseCreateCollection) API or directly from your database console.","responses":{"201":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"createDocument","weight":93,"cookies":false,"type":"","demo":"database\/create-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection with validation rules using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"documentId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"data":{"type":"object","description":"Document data as JSON object.","default":{},"x-example":"{}"},"read":{"type":"array","description":"An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["documentId","data"]}}]}},"\/database\/collections\/{collectionId}\/documents\/{documentId}":{"get":{"summary":"Get Document","operationId":"databaseGetDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a document by its unique ID. This endpoint response returns a JSON object with the document data.","responses":{"200":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"getDocument","weight":95,"cookies":false,"type":"","demo":"database\/get-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"}]},"patch":{"summary":"Update Document","operationId":"databaseUpdateDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.","responses":{"200":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"updateDocument","weight":97,"cookies":false,"type":"","demo":"database\/update-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/update-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection with validation rules using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"data":{"type":"object","description":"Document data as JSON object.","default":{},"x-example":"{}"},"read":{"type":"array","description":"An array of strings with read permissions. By default inherits the existing read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default inherits the existing write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["data"]}}]},"delete":{"summary":"Delete Document","operationId":"databaseDeleteDocument","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"Delete a document by its unique ID. This endpoint deletes only the parent documents, its attributes and relations to other documents. Child documents **will not** be deleted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteDocument","weight":98,"cookies":false,"type":"","demo":"database\/delete-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document unique ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"}]}},"\/database\/collections\/{collectionId}\/indexes":{"get":{"summary":"List Indexes","operationId":"databaseListIndexes","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"Indexes List","schema":{"$ref":"#\/definitions\/indexList"}}},"x-appwrite":{"method":"listIndexes","weight":90,"cookies":false,"type":"","demo":"database\/list-indexes.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-indexes.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]},"post":{"summary":"Create Index","operationId":"databaseCreateIndex","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"201":{"description":"Index","schema":{"$ref":"#\/definitions\/index"}}},"x-appwrite":{"method":"createIndex","weight":89,"cookies":false,"type":"","demo":"database\/create-index.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-index.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"indexId":{"type":"string","description":"Index ID.","default":null,"x-example":null},"type":{"type":"string","description":"Index type.","default":null,"x-example":"key"},"attributes":{"type":"array","description":"Array of attributes to index.","default":null,"x-example":null,"items":{"type":"string"}},"orders":{"type":"array","description":"Array of index orders.","default":[],"x-example":null,"items":{"type":"string"}}},"required":["indexId","type","attributes"]}}]}},"\/database\/collections\/{collectionId}\/indexes\/{indexId}":{"get":{"summary":"Get Index","operationId":"databaseGetIndex","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"Index","schema":{"$ref":"#\/definitions\/index"}}},"x-appwrite":{"method":"getIndex","weight":91,"cookies":false,"type":"","demo":"database\/get-index.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-index.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"indexId","description":"Index ID.","required":true,"type":"string","in":"path"}]},"delete":{"summary":"Delete Index","operationId":"databaseDeleteIndex","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteIndex","weight":92,"cookies":false,"type":"","demo":"database\/delete-index.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-index.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection unique ID. You can create a new collection using the Database service [server integration](\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"indexId","description":"Index ID.","required":true,"type":"string","in":"path"}]}},"\/functions":{"get":{"summary":"List Functions","operationId":"functionsList","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the project's functions. You can use the query params to filter your results.","responses":{"200":{"description":"Functions List","schema":{"$ref":"#\/definitions\/functionList"}}},"x-appwrite":{"method":"list","weight":187,"cookies":false,"type":"","demo":"functions\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-functions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the function used as the starting point for the query, excluding the function itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Function","operationId":"functionsCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Create a new function. You can pass a list of [permissions](\/docs\/permissions) to allow different project users or team with access to execute the function using the client API.","responses":{"201":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"create","weight":186,"cookies":false,"type":"","demo":"functions\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"functionId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Function name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"execute":{"type":"array","description":"An array of strings with execution permissions. By default no user is granted with any execute permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"runtime":{"type":"string","description":"Execution runtime.","default":null,"x-example":"dotnet-5.0"},"vars":{"type":"object","description":"Key-value JSON object.","default":[],"x-example":"{}"},"events":{"type":"array","description":"Events list.","default":[],"x-example":null,"items":{"type":"string"}},"schedule":{"type":"string","description":"Schedule CRON syntax.","default":"","x-example":null},"timeout":{"type":"integer","description":"Function maximum execution time in seconds.","default":15,"x-example":1}},"required":["functionId","name","execute","runtime"]}}]}},"\/functions\/runtimes":{"get":{"summary":"List the currently active function runtimes.","operationId":"functionsListRuntimes","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all runtimes that are currently active in your project.","responses":{"200":{"description":"Runtimes List","schema":{"$ref":"#\/definitions\/runtimeList"}}},"x-appwrite":{"method":"listRuntimes","weight":188,"cookies":false,"type":"","demo":"functions\/list-runtimes.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-runtimes.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/functions\/{functionId}":{"get":{"summary":"Get Function","operationId":"functionsGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a function by its unique ID.","responses":{"200":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"get","weight":189,"cookies":false,"type":"","demo":"functions\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"}]},"put":{"summary":"Update Function","operationId":"functionsUpdate","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Update function by its unique ID.","responses":{"200":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"update","weight":191,"cookies":false,"type":"","demo":"functions\/update.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/update-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Function name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"execute":{"type":"array","description":"An array of strings with execution permissions. By default no user is granted with any execute permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"vars":{"type":"object","description":"Key-value JSON object.","default":[],"x-example":"{}"},"events":{"type":"array","description":"Events list.","default":[],"x-example":null,"items":{"type":"string"}},"schedule":{"type":"string","description":"Schedule CRON syntax.","default":"","x-example":null},"timeout":{"type":"integer","description":"Function maximum execution time in seconds.","default":15,"x-example":1}},"required":["name","execute"]}}]},"delete":{"summary":"Delete Function","operationId":"functionsDelete","consumes":["application\/json"],"produces":[],"tags":["functions"],"description":"Delete a function by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":193,"cookies":false,"type":"","demo":"functions\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/delete-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"}]}},"\/functions\/{functionId}\/executions":{"get":{"summary":"List Executions","operationId":"functionsListExecutions","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the current user function execution logs. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's executions. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Executions List","schema":{"$ref":"#\/definitions\/executionList"}}},"x-appwrite":{"method":"listExecutions","weight":199,"cookies":false,"type":"","demo":"functions\/list-executions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-executions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"execution.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"cursor","description":"ID of the execution used as the starting point for the query, excluding the execution itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"}]},"post":{"summary":"Create Execution","operationId":"functionsCreateExecution","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.","responses":{"201":{"description":"Execution","schema":{"$ref":"#\/definitions\/execution"}}},"x-appwrite":{"method":"createExecution","weight":198,"cookies":false,"type":"","demo":"functions\/create-execution.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-execution.md","rate-limit":60,"rate-time":60,"rate-key":"url:{url},ip:{ip}","scope":"execution.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"data":{"type":"string","description":"String of custom data to send to function.","default":"","x-example":"[DATA]"}}}}]}},"\/functions\/{functionId}\/executions\/{executionId}":{"get":{"summary":"Get Execution","operationId":"functionsGetExecution","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a function execution log by its unique ID.","responses":{"200":{"description":"Execution","schema":{"$ref":"#\/definitions\/execution"}}},"x-appwrite":{"method":"getExecution","weight":200,"cookies":false,"type":"","demo":"functions\/get-execution.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-execution.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"execution.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"executionId","description":"Execution unique ID.","required":true,"type":"string","x-example":"[EXECUTION_ID]","in":"path"}]}},"\/functions\/{functionId}\/tag":{"patch":{"summary":"Update Function Tag","operationId":"functionsUpdateTag","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Update the function code tag ID using the unique function ID. Use this endpoint to switch the code tag that should be executed by the execution endpoint.","responses":{"200":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"updateTag","weight":192,"cookies":false,"type":"","demo":"functions\/update-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/update-function-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"tag":{"type":"string","description":"Tag unique ID.","default":null,"x-example":"[TAG]"}},"required":["tag"]}}]}},"\/functions\/{functionId}\/tags":{"get":{"summary":"List Tags","operationId":"functionsListTags","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the project's code tags. You can use the query params to filter your results.","responses":{"200":{"description":"Tags List","schema":{"$ref":"#\/definitions\/tagList"}}},"x-appwrite":{"method":"listTags","weight":195,"cookies":false,"type":"","demo":"functions\/list-tags.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-tags.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the tag used as the starting point for the query, excluding the tag itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Tag","operationId":"functionsCreateTag","consumes":["multipart\/form-data"],"produces":["application\/json"],"tags":["functions"],"description":"Create a new function code tag. Use this endpoint to upload a new version of your code function. To execute your newly uploaded code, you'll need to update the function's tag to use your new tag UID.\n\nThis endpoint accepts a tar.gz file compressed with your code. Make sure to include any dependencies your code has within the compressed file. You can learn more about code packaging in the [Appwrite Cloud Functions tutorial](\/docs\/functions).\n\nUse the \"command\" param to set the entry point used to execute your code.","responses":{"201":{"description":"Tag","schema":{"$ref":"#\/definitions\/tag"}}},"x-appwrite":{"method":"createTag","weight":194,"cookies":false,"type":"","demo":"functions\/create-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":true,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"command","description":"Code execution command.","required":true,"type":"string","x-example":"[COMMAND]","in":"formData"},{"name":"code","description":"Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.","required":true,"type":"file","in":"formData"}]}},"\/functions\/{functionId}\/tags\/{tagId}":{"get":{"summary":"Get Tag","operationId":"functionsGetTag","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a code tag by its unique ID.","responses":{"200":{"description":"Tag","schema":{"$ref":"#\/definitions\/tag"}}},"x-appwrite":{"method":"getTag","weight":196,"cookies":false,"type":"","demo":"functions\/get-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"tagId","description":"Tag unique ID.","required":true,"type":"string","x-example":"[TAG_ID]","in":"path"}]},"delete":{"summary":"Delete Tag","operationId":"functionsDeleteTag","consumes":["application\/json"],"produces":[],"tags":["functions"],"description":"Delete a code tag by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteTag","weight":197,"cookies":false,"type":"","demo":"functions\/delete-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/delete-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function unique ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"tagId","description":"Tag unique ID.","required":true,"type":"string","x-example":"[TAG_ID]","in":"path"}]}},"\/health":{"get":{"summary":"Get HTTP","operationId":"healthGet","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite HTTP server is up and responsive.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"get","weight":106,"cookies":false,"type":"","demo":"health\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/anti-virus":{"get":{"summary":"Get Anti virus","operationId":"healthGetAntiVirus","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite Anti Virus server is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getAntiVirus","weight":117,"cookies":false,"type":"","demo":"health\/get-anti-virus.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-anti-virus.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/cache":{"get":{"summary":"Get Cache","operationId":"healthGetCache","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite in-memory cache server is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getCache","weight":109,"cookies":false,"type":"","demo":"health\/get-cache.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-cache.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/db":{"get":{"summary":"Get DB","operationId":"healthGetDB","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite database server is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getDB","weight":108,"cookies":false,"type":"","demo":"health\/get-d-b.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-db.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/certificates":{"get":{"summary":"Get Certificates Queue","operationId":"healthGetQueueCertificates","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of certificates that are waiting to be issued against [Letsencrypt](https:\/\/letsencrypt.org\/) in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueCertificates","weight":114,"cookies":false,"type":"","demo":"health\/get-queue-certificates.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-certificates.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/functions":{"get":{"summary":"Get Functions Queue","operationId":"healthGetQueueFunctions","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueFunctions","weight":115,"cookies":false,"type":"","demo":"health\/get-queue-functions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-functions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/logs":{"get":{"summary":"Get Logs Queue","operationId":"healthGetQueueLogs","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of logs that are waiting to be processed in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueLogs","weight":112,"cookies":false,"type":"","demo":"health\/get-queue-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/usage":{"get":{"summary":"Get Usage Queue","operationId":"healthGetQueueUsage","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of usage stats that are waiting to be processed in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueUsage","weight":113,"cookies":false,"type":"","demo":"health\/get-queue-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-usage.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/webhooks":{"get":{"summary":"Get Webhooks Queue","operationId":"healthGetQueueWebhooks","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of webhooks that are waiting to be processed in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueWebhooks","weight":111,"cookies":false,"type":"","demo":"health\/get-queue-webhooks.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-webhooks.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/storage\/local":{"get":{"summary":"Get Local Storage","operationId":"healthGetStorageLocal","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite local storage device is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getStorageLocal","weight":116,"cookies":false,"type":"","demo":"health\/get-storage-local.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-local.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/time":{"get":{"summary":"Get Time","operationId":"healthGetTime","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite server time is synced with Google remote NTP server. We use this technology to smoothly handle leap seconds with no disruptive events. The [Network Time Protocol](https:\/\/en.wikipedia.org\/wiki\/Network_Time_Protocol) (NTP) is used by hundreds of millions of computers and devices to synchronize their clocks over the Internet. If your computer sets its own clock, it likely uses NTP.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getTime","weight":110,"cookies":false,"type":"","demo":"health\/get-time.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-time.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/locale":{"get":{"summary":"Get User Locale","operationId":"localeGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.\n\n([IP Geolocation by DB-IP](https:\/\/db-ip.com))","responses":{"200":{"description":"Locale","schema":{"$ref":"#\/definitions\/locale"}}},"x-appwrite":{"method":"get","weight":99,"cookies":false,"type":"","demo":"locale\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/continents":{"get":{"summary":"List Continents","operationId":"localeGetContinents","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all continents. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Continents List","schema":{"$ref":"#\/definitions\/continentList"}}},"x-appwrite":{"method":"getContinents","weight":103,"cookies":false,"type":"","demo":"locale\/get-continents.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-continents.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/countries":{"get":{"summary":"List Countries","operationId":"localeGetCountries","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Countries List","schema":{"$ref":"#\/definitions\/countryList"}}},"x-appwrite":{"method":"getCountries","weight":100,"cookies":false,"type":"","demo":"locale\/get-countries.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/countries\/eu":{"get":{"summary":"List EU Countries","operationId":"localeGetCountriesEU","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries that are currently members of the EU. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Countries List","schema":{"$ref":"#\/definitions\/countryList"}}},"x-appwrite":{"method":"getCountriesEU","weight":101,"cookies":false,"type":"","demo":"locale\/get-countries-e-u.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries-eu.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/countries\/phones":{"get":{"summary":"List Countries Phone Codes","operationId":"localeGetCountriesPhones","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries phone codes. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Phones List","schema":{"$ref":"#\/definitions\/phoneList"}}},"x-appwrite":{"method":"getCountriesPhones","weight":102,"cookies":false,"type":"","demo":"locale\/get-countries-phones.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries-phones.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/currencies":{"get":{"summary":"List Currencies","operationId":"localeGetCurrencies","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Currencies List","schema":{"$ref":"#\/definitions\/currencyList"}}},"x-appwrite":{"method":"getCurrencies","weight":104,"cookies":false,"type":"","demo":"locale\/get-currencies.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-currencies.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/languages":{"get":{"summary":"List Languages","operationId":"localeGetLanguages","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.","responses":{"200":{"description":"Languages List","schema":{"$ref":"#\/definitions\/languageList"}}},"x-appwrite":{"method":"getLanguages","weight":105,"cookies":false,"type":"","demo":"locale\/get-languages.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-languages.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/storage\/files":{"get":{"summary":"List Files","operationId":"storageListFiles","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Get a list of all the user files. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's files. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Files List","schema":{"$ref":"#\/definitions\/fileList"}}},"x-appwrite":{"method":"listFiles","weight":150,"cookies":false,"type":"","demo":"storage\/list-files.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the file used as the starting point for the query, excluding the file itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create File","operationId":"storageCreateFile","consumes":["multipart\/form-data"],"produces":["application\/json"],"tags":["storage"],"description":"Create a new file. The user who creates the file will automatically be assigned to read and write access unless he has passed custom values for read and write arguments.","responses":{"201":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"createFile","weight":149,"cookies":false,"type":"upload","demo":"storage\/create-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","required":true,"type":"string","in":"formData"},{"name":"file","description":"Binary file.","required":true,"type":"file","in":"formData"},{"name":"read","description":"An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"in":"formData"},{"name":"write","description":"An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"in":"formData"}]}},"\/storage\/files\/{fileId}":{"get":{"summary":"Get File","operationId":"storageGetFile","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.","responses":{"200":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"getFile","weight":151,"cookies":false,"type":"","demo":"storage\/get-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]},"put":{"summary":"Update File","operationId":"storageUpdateFile","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Update a file by its unique ID. Only users with write permissions have access to update this resource.","responses":{"200":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"updateFile","weight":155,"cookies":false,"type":"","demo":"storage\/update-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"read":{"type":"array","description":"An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["read","write"]}}]},"delete":{"summary":"Delete File","operationId":"storageDeleteFile","consumes":["application\/json"],"produces":[],"tags":["storage"],"description":"Delete a file by its unique ID. Only users with write permissions have access to delete this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteFile","weight":156,"cookies":false,"type":"","demo":"storage\/delete-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/files\/{fileId}\/download":{"get":{"summary":"Get File for Download","operationId":"storageGetFileDownload","consumes":["application\/json"],"produces":["*\/*"],"tags":["storage"],"description":"Get a file content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.","responses":{"200":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getFileDownload","weight":153,"cookies":false,"type":"location","demo":"storage\/get-file-download.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/files\/{fileId}\/preview":{"get":{"summary":"Get File Preview","operationId":"storageGetFilePreview","consumes":["application\/json"],"produces":["image\/*"],"tags":["storage"],"description":"Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFilePreview","weight":152,"cookies":false,"type":"location","demo":"storage\/get-file-preview.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"},{"name":"width","description":"Resize preview image width, Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"height","description":"Resize preview image height, Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"gravity","description":"Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right","required":false,"type":"string","x-example":"center","default":"center","in":"query"},{"name":"quality","description":"Preview image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"borderWidth","description":"Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"borderColor","description":"Preview image border color. Use a valid HEX color, no # is needed for prefix.","required":false,"type":"string","default":"","in":"query"},{"name":"borderRadius","description":"Preview image border radius in pixels. Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"opacity","description":"Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.","required":false,"type":"number","format":"float","x-example":0,"default":1,"in":"query"},{"name":"rotation","description":"Preview image rotation in degrees. Pass an integer between -360 and 360.","required":false,"type":"integer","format":"int32","x-example":-360,"default":0,"in":"query"},{"name":"background","description":"Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.","required":false,"type":"string","default":"","in":"query"},{"name":"output","description":"Output format type (jpeg, jpg, png, gif and webp).","required":false,"type":"string","x-example":"jpg","default":"","in":"query"}]}},"\/storage\/files\/{fileId}\/view":{"get":{"summary":"Get File for View","operationId":"storageGetFileView","consumes":["application\/json"],"produces":["*\/*"],"tags":["storage"],"description":"Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.","responses":{"200":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getFileView","weight":154,"cookies":false,"type":"location","demo":"storage\/get-file-view.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File unique ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/teams":{"get":{"summary":"List Teams","operationId":"teamsList","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a list of all the current user teams. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's teams. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Teams List","schema":{"$ref":"#\/definitions\/teamList"}}},"x-appwrite":{"method":"list","weight":160,"cookies":false,"type":"","demo":"teams\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the team used as the starting point for the query, excluding the team itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Team","operationId":"teamsCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Create a new team. The user who creates the team will automatically be assigned as the owner of the team. The team owner can invite new members, who will be able add new owners and update or delete the team from your project.","responses":{"201":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"create","weight":159,"cookies":false,"type":"","demo":"teams\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"teamId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Team name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"roles":{"type":"array","description":"Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":["owner"],"x-example":null,"items":{"type":"string"}}},"required":["teamId","name"]}}]}},"\/teams\/{teamId}":{"get":{"summary":"Get Team","operationId":"teamsGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team by its unique ID. All team members have read access for this resource.","responses":{"200":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"get","weight":161,"cookies":false,"type":"","demo":"teams\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"}]},"put":{"summary":"Update Team","operationId":"teamsUpdate","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Update a team by its unique ID. Only team owners have write access for this resource.","responses":{"200":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"update","weight":162,"cookies":false,"type":"","demo":"teams\/update.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Team name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]},"delete":{"summary":"Delete Team","operationId":"teamsDelete","consumes":["application\/json"],"produces":[],"tags":["teams"],"description":"Delete a team by its unique ID. Only team owners have write access for this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":163,"cookies":false,"type":"","demo":"teams\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"}]}},"\/teams\/{teamId}\/memberships":{"get":{"summary":"Get Team Memberships","operationId":"teamsGetMemberships","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team members by the team unique ID. All team members have read access for this list of resources.","responses":{"200":{"description":"Memberships List","schema":{"$ref":"#\/definitions\/membershipList"}}},"x-appwrite":{"method":"getMemberships","weight":165,"cookies":false,"type":"","demo":"teams\/get-memberships.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-members.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the membership used as the starting point for the query, excluding the membership itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Team Membership","operationId":"teamsCreateMembership","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"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.\n\nUse 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.\n\nPlease 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.","responses":{"201":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"createMembership","weight":164,"cookies":false,"type":"","demo":"teams\/create-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team-membership.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"New team member email.","default":null,"x-example":"email@example.com"},"roles":{"type":"array","description":"Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":null,"x-example":null,"items":{"type":"string"}},"url":{"type":"string","description":"URL to redirect the user back to your app from the invitation email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"},"name":{"type":"string","description":"New team member name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["email","roles","url"]}}]}},"\/teams\/{teamId}\/memberships\/{membershipId}":{"get":{"summary":"Get Team Membership","operationId":"teamsGetMembership","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team member by the membership unique id. All team members have read access for this resource.","responses":{"200":{"description":"Memberships List","schema":{"$ref":"#\/definitions\/membershipList"}}},"x-appwrite":{"method":"getMembership","weight":166,"cookies":false,"type":"","demo":"teams\/get-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"membership unique ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"}]},"patch":{"summary":"Update Membership Roles","operationId":"teamsUpdateMembershipRoles","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"","responses":{"200":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"updateMembershipRoles","weight":167,"cookies":false,"type":"","demo":"teams\/update-membership-roles.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-roles.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"roles":{"type":"array","description":"Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["roles"]}}]},"delete":{"summary":"Delete Team Membership","operationId":"teamsDeleteMembership","consumes":["application\/json"],"produces":[],"tags":["teams"],"description":"This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteMembership","weight":169,"cookies":false,"type":"","demo":"teams\/delete-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"}]}},"\/teams\/{teamId}\/memberships\/{membershipId}\/status":{"patch":{"summary":"Update Team Membership Status","operationId":"teamsUpdateMembershipStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user.","responses":{"200":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"updateMembershipStatus","weight":168,"cookies":false,"type":"","demo":"teams\/update-membership-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team unique ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User unique ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Secret key.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/users":{"get":{"summary":"List Users","operationId":"usersList","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get a list of all the project's users. You can use the query params to filter your results.","responses":{"200":{"description":"Users List","schema":{"$ref":"#\/definitions\/userList"}}},"x-appwrite":{"method":"list","weight":171,"cookies":false,"type":"","demo":"users\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-users.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Results limit value. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Results offset. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the user used as the starting point for the query, excluding the user itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create User","operationId":"usersCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Create a new user.","responses":{"201":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"create","weight":170,"cookies":false,"type":"","demo":"users\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"},"name":{"type":"string","description":"User name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["userId","email","password"]}}]}},"\/users\/{userId}":{"get":{"summary":"Get User","operationId":"usersGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get a user by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"get","weight":172,"cookies":false,"type":"","demo":"users\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]},"delete":{"summary":"Delete User","operationId":"usersDelete","consumes":["application\/json"],"produces":[],"tags":["users"],"description":"Delete a user by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":184,"cookies":false,"type":"","demo":"users\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]}},"\/users\/{userId}\/email":{"patch":{"summary":"Update Email","operationId":"usersUpdateEmail","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user email by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateEmail","weight":180,"cookies":false,"type":"","demo":"users\/update-email.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"}},"required":["email"]}}]}},"\/users\/{userId}\/logs":{"get":{"summary":"Get User Logs","operationId":"usersGetLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get the user activity logs list by its unique ID.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"getLogs","weight":175,"cookies":false,"type":"","demo":"users\/get-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"limit","description":"Maximum number of logs to return in response. Use this value to manage pagination. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/users\/{userId}\/name":{"patch":{"summary":"Update Name","operationId":"usersUpdateName","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user name by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateName","weight":178,"cookies":false,"type":"","demo":"users\/update-name.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-name.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"User name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]}},"\/users\/{userId}\/password":{"patch":{"summary":"Update Password","operationId":"usersUpdatePassword","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user password by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePassword","weight":179,"cookies":false,"type":"","demo":"users\/update-password.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-password.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"password":{"type":"string","description":"New user password. Must be between 6 to 32 chars.","default":null,"x-example":"password"}},"required":["password"]}}]}},"\/users\/{userId}\/prefs":{"get":{"summary":"Get User Preferences","operationId":"usersGetPrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get the user preferences by its unique ID.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"getPrefs","weight":173,"cookies":false,"type":"","demo":"users\/get-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]},"patch":{"summary":"Update User Preferences","operationId":"usersUpdatePrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user preferences by its unique ID. You can pass only the specific settings you wish to update.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"updatePrefs","weight":181,"cookies":false,"type":"","demo":"users\/update-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"prefs":{"type":"object","description":"Prefs key-value JSON object.","default":{},"x-example":"{}"}},"required":["prefs"]}}]}},"\/users\/{userId}\/sessions":{"get":{"summary":"Get User Sessions","operationId":"usersGetSessions","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get the user sessions list by its unique ID.","responses":{"200":{"description":"Sessions List","schema":{"$ref":"#\/definitions\/sessionList"}}},"x-appwrite":{"method":"getSessions","weight":174,"cookies":false,"type":"","demo":"users\/get-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]},"delete":{"summary":"Delete User Sessions","operationId":"usersDeleteSessions","consumes":["application\/json"],"produces":[],"tags":["users"],"description":"Delete all user's sessions by using the user's unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSessions","weight":183,"cookies":false,"type":"","demo":"users\/delete-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]}},"\/users\/{userId}\/sessions\/{sessionId}":{"delete":{"summary":"Delete User Session","operationId":"usersDeleteSession","consumes":["application\/json"],"produces":[],"tags":["users"],"description":"Delete a user sessions by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSession","weight":182,"cookies":false,"type":"","demo":"users\/delete-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-session.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"sessionId","description":"User unique session ID.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]}},"\/users\/{userId}\/status":{"patch":{"summary":"Update User Status","operationId":"usersUpdateStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user status by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateStatus","weight":176,"cookies":false,"type":"","demo":"users\/update-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-status.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"status":{"type":"boolean","description":"User Status. To activate the user pass `true` and to block the user pass `false`","default":null,"x-example":false}},"required":["status"]}}]}},"\/users\/{userId}\/verification":{"patch":{"summary":"Update Email Verification","operationId":"usersUpdateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user email verification status by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateVerification","weight":177,"cookies":false,"type":"","demo":"users\/update-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-verification.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User unique ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"emailVerification":{"type":"boolean","description":"User Email Verification Status.","default":null,"x-example":false}},"required":["emailVerification"]}}]}}},"tags":[{"name":"account","description":"The Account service allows you to authenticate and manage a user account."},{"name":"avatars","description":"The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars."},{"name":"database","description":"The Database service allows you to create structured collections of documents, query and filter lists of documents"},{"name":"locale","description":"The Locale service allows you to customize your app based on your users' location."},{"name":"health","description":"The Health service allows you to both validate and monitor your Appwrite server's health."},{"name":"projects","description":"The Project service allows you to manage all the projects in your Appwrite server."},{"name":"storage","description":"The Storage service allows you to manage your project files."},{"name":"teams","description":"The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources"},{"name":"users","description":"The Users service allows you to manage your project users."},{"name":"functions","description":"The Functions Service allows you view, create and manage your Cloud Functions."}],"definitions":{"collectionList":{"description":"Collections List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"collections":{"type":"array","description":"List of collections.","items":{"type":"object","$ref":"#\/definitions\/collection"},"x-example":""}},"required":["sum","collections"]},"indexList":{"description":"Indexes List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"indexes":{"type":"array","description":"List of indexes.","items":{"type":"object","$ref":"#\/definitions\/index"},"x-example":""}},"required":["sum","indexes"]},"documentList":{"description":"Documents List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"documents":{"type":"array","description":"List of documents.","items":{"type":"object","$ref":"#\/definitions\/document"},"x-example":""}},"required":["sum","documents"]},"userList":{"description":"Users List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"users":{"type":"array","description":"List of users.","items":{"type":"object","$ref":"#\/definitions\/user"},"x-example":""}},"required":["sum","users"]},"sessionList":{"description":"Sessions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"sessions":{"type":"array","description":"List of sessions.","items":{"type":"object","$ref":"#\/definitions\/session"},"x-example":""}},"required":["sum","sessions"]},"logList":{"description":"Logs List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"logs":{"type":"array","description":"List of logs.","items":{"type":"object","$ref":"#\/definitions\/log"},"x-example":""}},"required":["sum","logs"]},"fileList":{"description":"Files List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"files":{"type":"array","description":"List of files.","items":{"type":"object","$ref":"#\/definitions\/file"},"x-example":""}},"required":["sum","files"]},"teamList":{"description":"Teams List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"teams":{"type":"array","description":"List of teams.","items":{"type":"object","$ref":"#\/definitions\/team"},"x-example":""}},"required":["sum","teams"]},"membershipList":{"description":"Memberships List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"memberships":{"type":"array","description":"List of memberships.","items":{"type":"object","$ref":"#\/definitions\/membership"},"x-example":""}},"required":["sum","memberships"]},"functionList":{"description":"Functions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"functions":{"type":"array","description":"List of functions.","items":{"type":"object","$ref":"#\/definitions\/function"},"x-example":""}},"required":["sum","functions"]},"runtimeList":{"description":"Runtimes List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"runtimes":{"type":"array","description":"List of runtimes.","items":{"type":"object","$ref":"#\/definitions\/runtime"},"x-example":""}},"required":["sum","runtimes"]},"tagList":{"description":"Tags List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"tags":{"type":"array","description":"List of tags.","items":{"type":"object","$ref":"#\/definitions\/tag"},"x-example":""}},"required":["sum","tags"]},"executionList":{"description":"Executions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"executions":{"type":"array","description":"List of executions.","items":{"type":"object","$ref":"#\/definitions\/execution"},"x-example":""}},"required":["sum","executions"]},"countryList":{"description":"Countries List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"countries":{"type":"array","description":"List of countries.","items":{"type":"object","$ref":"#\/definitions\/country"},"x-example":""}},"required":["sum","countries"]},"continentList":{"description":"Continents List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"continents":{"type":"array","description":"List of continents.","items":{"type":"object","$ref":"#\/definitions\/continent"},"x-example":""}},"required":["sum","continents"]},"languageList":{"description":"Languages List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"languages":{"type":"array","description":"List of languages.","items":{"type":"object","$ref":"#\/definitions\/language"},"x-example":""}},"required":["sum","languages"]},"currencyList":{"description":"Currencies List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"currencies":{"type":"array","description":"List of currencies.","items":{"type":"object","$ref":"#\/definitions\/currency"},"x-example":""}},"required":["sum","currencies"]},"phoneList":{"description":"Phones List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"phones":{"type":"array","description":"List of phones.","items":{"type":"object","$ref":"#\/definitions\/phone"},"x-example":""}},"required":["sum","phones"]},"collection":{"description":"Collection","type":"object","properties":{"$id":{"type":"string","description":"Collection ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"Collection read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"Collection write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"},"name":{"type":"string","description":"Collection name.","x-example":"My Collection"},"enabled":{"type":"boolean","description":"Collection enabled.","x-example":false},"permission":{"type":"string","description":"Collection permission model. Possible values: `document` or `collection`","x-example":"document"},"attributes":{"type":"array","description":"Collection attributes.","items":{"anyOf":[{"$ref":"#\/definitions\/attributeBoolean"},{"$ref":"#\/definitions\/attributeInteger"},{"$ref":"#\/definitions\/attributeFloat"},{"$ref":"#\/definitions\/attributeEmail"},{"$ref":"#\/definitions\/attributeEnum"},{"$ref":"#\/definitions\/attributeUrl"},{"$ref":"#\/definitions\/attributeIp"},{"$ref":"#\/definitions\/attributeString"}]},"x-example":{}},"indexes":{"type":"array","description":"Collection indexes.","items":{"type":"object","$ref":"#\/definitions\/index"},"x-example":{}}},"required":["$id","$read","$write","name","enabled","permission","attributes","indexes"]},"attributeList":{"description":"Attributes List","type":"object","properties":{"sum":{"type":"integer","description":"Total sum of items in the list.","x-example":5,"format":"int32"},"attributes":{"type":"array","description":"List of attributes.","items":{"anyOf":[{"$ref":"#\/definitions\/attributeBoolean"},{"$ref":"#\/definitions\/attributeInteger"},{"$ref":"#\/definitions\/attributeFloat"},{"$ref":"#\/definitions\/attributeEmail"},{"$ref":"#\/definitions\/attributeEnum"},{"$ref":"#\/definitions\/attributeUrl"},{"$ref":"#\/definitions\/attributeIp"},{"$ref":"#\/definitions\/attributeString"}]},"x-example":""}},"required":["sum","attributes"]},"attributeString":{"description":"AttributeString","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"size":{"type":"string","description":"Attribute size.","x-example":128},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"default","nullable":true}},"required":["key","type","status","required","size"]},"attributeInteger":{"description":"AttributeInteger","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"min":{"type":"integer","description":"Minimum value to enforce for new documents.","x-example":1,"format":"int32","nullable":true},"max":{"type":"integer","description":"Maximum value to enforce for new documents.","x-example":10,"format":"int32","nullable":true},"default":{"type":"integer","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":10,"format":"int32","nullable":true}},"required":["key","type","status","required"]},"attributeFloat":{"description":"AttributeFloat","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"min":{"type":"number","description":"Minimum value to enforce for new documents.","x-example":1.5,"format":"double","nullable":true},"max":{"type":"number","description":"Maximum value to enforce for new documents.","x-example":10.5,"format":"double","nullable":true},"default":{"type":"number","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":2.5,"format":"double","nullable":true}},"required":["key","type","status","required"]},"attributeBoolean":{"description":"AttributeBoolean","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"default":{"type":"boolean","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":false,"nullable":true}},"required":["key","type","status","required"]},"attributeEmail":{"description":"AttributeEmail","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"format":{"type":"string","description":"String format.","x-example":"email"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"default@example.com","nullable":true}},"required":["key","type","status","required","format"]},"attributeEnum":{"description":"AttributeEnum","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"elements":{"type":"array","description":"Array of elements in enumerated type.","items":{"type":"string"},"x-example":"element"},"format":{"type":"string","description":"String format.","x-example":"enum"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"element","nullable":true}},"required":["key","type","status","required","elements","format"]},"attributeIp":{"description":"AttributeIP","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"format":{"type":"string","description":"String format.","x-example":"ip"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"192.0.2.0","nullable":true}},"required":["key","type","status","required","format"]},"attributeUrl":{"description":"AttributeURL","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"format":{"type":"string","description":"String format.","x-example":"url"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"http:\/\/example.com","nullable":true}},"required":["key","type","status","required","format"]},"index":{"description":"Index","type":"object","properties":{"key":{"type":"string","description":"Index Key.","x-example":"index1"},"type":{"type":"string","description":"Index type.","x-example":""},"status":{"type":"string","description":"Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"attributes":{"type":"array","description":"Index attributes.","items":{"type":"string"},"x-example":[]},"orders":{"type":"array","description":"Index orders.","items":{"type":"string"},"x-example":[]}},"required":["key","type","status","attributes","orders"]},"document":{"description":"Document","type":"object","properties":{"$id":{"type":"string","description":"Document ID.","x-example":"5e5ea5c16897e"},"$collection":{"type":"string","description":"Collection ID.","x-example":"5e5ea5c15117e"},"$read":{"type":"array","description":"Document read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"Document write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"}},"additionalProperties":true,"required":["$id","$collection","$read","$write"]},"log":{"description":"Log","type":"object","properties":{"event":{"type":"string","description":"Event name.","x-example":"account.sessions.create"},"userId":{"type":"string","description":"User ID.","x-example":"610fc2f985ee0"},"userEmail":{"type":"string","description":"User Email.","x-example":"john@appwrite.io"},"userName":{"type":"string","description":"User Name.","x-example":"John Doe"},"mode":{"type":"string","description":"API mode when event triggered.","x-example":"admin"},"ip":{"type":"string","description":"IP session in use when the session was created.","x-example":"127.0.0.1"},"time":{"type":"integer","description":"Log creation time in Unix timestamp.","x-example":1592981250,"format":"int32"},"osCode":{"type":"string","description":"Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).","x-example":"Mac"},"osName":{"type":"string","description":"Operating system name.","x-example":"Mac"},"osVersion":{"type":"string","description":"Operating system version.","x-example":"Mac"},"clientType":{"type":"string","description":"Client type.","x-example":"browser"},"clientCode":{"type":"string","description":"Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).","x-example":"CM"},"clientName":{"type":"string","description":"Client name.","x-example":"Chrome Mobile iOS"},"clientVersion":{"type":"string","description":"Client version.","x-example":"84.0"},"clientEngine":{"type":"string","description":"Client engine name.","x-example":"WebKit"},"clientEngineVersion":{"type":"string","description":"Client engine name.","x-example":"605.1.15"},"deviceName":{"type":"string","description":"Device name.","x-example":"smartphone"},"deviceBrand":{"type":"string","description":"Device brand name.","x-example":"Google"},"deviceModel":{"type":"string","description":"Device model name.","x-example":"Nexus 5"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"}},"required":["event","userId","userEmail","userName","mode","ip","time","osCode","osName","osVersion","clientType","clientCode","clientName","clientVersion","clientEngine","clientEngineVersion","deviceName","deviceBrand","deviceModel","countryCode","countryName"]},"user":{"description":"User","type":"object","properties":{"$id":{"type":"string","description":"User ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"User name.","x-example":"John Doe"},"registration":{"type":"integer","description":"User registration date in Unix timestamp.","x-example":1592981250,"format":"int32"},"status":{"type":"boolean","description":"User status. Pass `true` for enabled and `false` for disabled.","x-example":true},"passwordUpdate":{"type":"integer","description":"Unix timestamp of the most recent password update","x-example":1592981250,"format":"int32"},"email":{"type":"string","description":"User email address.","x-example":"john@appwrite.io"},"emailVerification":{"type":"boolean","description":"Email verification status.","x-example":true},"prefs":{"type":"object","description":"User preferences as a key-value object","x-example":{"theme":"pink","timezone":"UTC"},"items":{"type":"object","$ref":"#\/definitions\/preferences"}}},"required":["$id","name","registration","status","passwordUpdate","email","emailVerification","prefs"]},"preferences":{"description":"Preferences","type":"object","additionalProperties":true},"session":{"description":"Session","type":"object","properties":{"$id":{"type":"string","description":"Session ID.","x-example":"5e5ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5bb8c16897e"},"expire":{"type":"integer","description":"Session expiration date in Unix timestamp.","x-example":1592981250,"format":"int32"},"provider":{"type":"string","description":"Session Provider.","x-example":"email"},"providerUid":{"type":"string","description":"Session Provider User ID.","x-example":"user@example.com"},"providerToken":{"type":"string","description":"Session Provider Token.","x-example":"MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"},"ip":{"type":"string","description":"IP in use when the session was created.","x-example":"127.0.0.1"},"osCode":{"type":"string","description":"Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).","x-example":"Mac"},"osName":{"type":"string","description":"Operating system name.","x-example":"Mac"},"osVersion":{"type":"string","description":"Operating system version.","x-example":"Mac"},"clientType":{"type":"string","description":"Client type.","x-example":"browser"},"clientCode":{"type":"string","description":"Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).","x-example":"CM"},"clientName":{"type":"string","description":"Client name.","x-example":"Chrome Mobile iOS"},"clientVersion":{"type":"string","description":"Client version.","x-example":"84.0"},"clientEngine":{"type":"string","description":"Client engine name.","x-example":"WebKit"},"clientEngineVersion":{"type":"string","description":"Client engine name.","x-example":"605.1.15"},"deviceName":{"type":"string","description":"Device name.","x-example":"smartphone"},"deviceBrand":{"type":"string","description":"Device brand name.","x-example":"Google"},"deviceModel":{"type":"string","description":"Device model name.","x-example":"Nexus 5"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"},"current":{"type":"boolean","description":"Returns true if this the current user session.","x-example":true}},"required":["$id","userId","expire","provider","providerUid","providerToken","ip","osCode","osName","osVersion","clientType","clientCode","clientName","clientVersion","clientEngine","clientEngineVersion","deviceName","deviceBrand","deviceModel","countryCode","countryName","current"]},"token":{"description":"Token","type":"object","properties":{"$id":{"type":"string","description":"Token ID.","x-example":"bb8ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5ea5c168bb8"},"secret":{"type":"string","description":"Token secret key. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.","x-example":""},"expire":{"type":"integer","description":"Token expiration date in Unix timestamp.","x-example":1592981250,"format":"int32"}},"required":["$id","userId","secret","expire"]},"locale":{"description":"Locale","type":"object","properties":{"ip":{"type":"string","description":"User IP address.","x-example":"127.0.0.1"},"countryCode":{"type":"string","description":"Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format","x-example":"US"},"country":{"type":"string","description":"Country name. This field support localization.","x-example":"United States"},"continentCode":{"type":"string","description":"Continent code. A two character continent code \"AF\" for Africa, \"AN\" for Antarctica, \"AS\" for Asia, \"EU\" for Europe, \"NA\" for North America, \"OC\" for Oceania, and \"SA\" for South America.","x-example":"NA"},"continent":{"type":"string","description":"Continent name. This field support localization.","x-example":"North America"},"eu":{"type":"boolean","description":"True if country is part of the Europian Union.","x-example":false},"currency":{"type":"string","description":"Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format","x-example":"USD"}},"required":["ip","countryCode","country","continentCode","continent","eu","currency"]},"file":{"description":"File","type":"object","properties":{"$id":{"type":"string","description":"File ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"File read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"File write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"},"name":{"type":"string","description":"File name.","x-example":"Pink.png"},"dateCreated":{"type":"integer","description":"File creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"signature":{"type":"string","description":"File MD5 signature.","x-example":"5d529fd02b544198ae075bd57c1762bb"},"mimeType":{"type":"string","description":"File mime type.","x-example":"image\/png"},"sizeOriginal":{"type":"integer","description":"File original size in bytes.","x-example":17890,"format":"int32"}},"required":["$id","$read","$write","name","dateCreated","signature","mimeType","sizeOriginal"]},"team":{"description":"Team","type":"object","properties":{"$id":{"type":"string","description":"Team ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Team name.","x-example":"VIP"},"dateCreated":{"type":"integer","description":"Team creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"sum":{"type":"integer","description":"Total sum of team members.","x-example":7,"format":"int32"}},"required":["$id","name","dateCreated","sum"]},"membership":{"description":"Membership","type":"object","properties":{"$id":{"type":"string","description":"Membership ID.","x-example":"5e5ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5ea5c16897e"},"teamId":{"type":"string","description":"Team ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"User name.","x-example":"VIP"},"email":{"type":"string","description":"User email address.","x-example":"john@appwrite.io"},"invited":{"type":"integer","description":"Date, the user has been invited to join the team in Unix timestamp.","x-example":1592981250,"format":"int32"},"joined":{"type":"integer","description":"Date, the user has accepted the invitation to join the team in Unix timestamp.","x-example":1592981250,"format":"int32"},"confirm":{"type":"boolean","description":"User confirmation status, true if the user has joined the team or false otherwise.","x-example":false},"roles":{"type":"array","description":"User list of roles","items":{"type":"string"},"x-example":"admin"}},"required":["$id","userId","teamId","name","email","invited","joined","confirm","roles"]},"function":{"description":"Function","type":"object","properties":{"$id":{"type":"string","description":"Function ID.","x-example":"5e5ea5c16897e"},"execute":{"type":"object","description":"Function permissions.","x-example":{},"items":{"type":"object","$ref":"#\/definitions\/funcPermissions"}},"name":{"type":"string","description":"Function name.","x-example":"My Function"},"dateCreated":{"type":"integer","description":"Function creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"dateUpdated":{"type":"integer","description":"Function update date in Unix timestamp.","x-example":1592981257,"format":"int32"},"status":{"type":"string","description":"Function status. Possible values: `disabled`, `enabled`","x-example":"enabled"},"runtime":{"type":"string","description":"Function execution runtime.","x-example":"python-3.8"},"tag":{"type":"string","description":"Function active tag ID.","x-example":"5e5ea5c16897e"},"vars":{"type":"string","description":"Function environment variables.","x-example":{"key":"value"}},"events":{"type":"array","description":"Function trigger events.","items":{"type":"string"},"x-example":"account.create"},"schedule":{"type":"string","description":"Function execution schedult in CRON format.","x-example":"5 4 * * *"},"scheduleNext":{"type":"integer","description":"Function next scheduled execution date in Unix timestamp.","x-example":1592981292,"format":"int32"},"schedulePrevious":{"type":"integer","description":"Function next scheduled execution date in Unix timestamp.","x-example":1592981237,"format":"int32"},"timeout":{"type":"integer","description":"Function execution timeout in seconds.","x-example":1592981237,"format":"int32"}},"required":["$id","execute","name","dateCreated","dateUpdated","status","runtime","tag","vars","events","schedule","scheduleNext","schedulePrevious","timeout"]},"runtime":{"description":"Runtime","type":"object","properties":{"$id":{"type":"string","description":"Runtime ID.","x-example":"python-3.8"},"name":{"type":"string","description":"Runtime Name.","x-example":"Python"},"version":{"type":"string","description":"Runtime version.","x-example":"3.8"},"base":{"type":"string","description":"Base Docker image used to build the runtime.","x-example":"python:3.8-alpine"},"image":{"type":"string","description":"Image name of Docker Hub.","x-example":"appwrite\\\/runtime-for-python:3.8"},"logo":{"type":"string","description":"Name of the logo image.","x-example":"python.png"},"supports":{"type":"array","description":"List of supported architectures.","items":{"type":"string"},"x-example":"amd64"}},"required":["$id","name","version","base","image","logo","supports"]},"funcPermissions":{"description":"FuncPermissions","type":"object","properties":{"execute":{"type":"array","description":"Execution permissions.","items":{"type":"string"},"x-example":"user:5e5ea5c16897e"}},"required":["execute"]},"tag":{"description":"Tag","type":"object","properties":{"$id":{"type":"string","description":"Tag ID.","x-example":"5e5ea5c16897e"},"functionId":{"type":"string","description":"Function ID.","x-example":"5e5ea6g16897e"},"dateCreated":{"type":"integer","description":"The tag creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"command":{"type":"string","description":"The entrypoint command in use to execute the tag code.","x-example":"enabled"},"size":{"type":"string","description":"The code size in bytes.","x-example":"python-3.8"}},"required":["$id","functionId","dateCreated","command","size"]},"execution":{"description":"Execution","type":"object","properties":{"$id":{"type":"string","description":"Execution ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"Execution read permissions.","items":{"type":"string"},"x-example":"role:all"},"functionId":{"type":"string","description":"Function ID.","x-example":"5e5ea6g16897e"},"dateCreated":{"type":"integer","description":"The execution creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"trigger":{"type":"string","description":"The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.","x-example":"http"},"status":{"type":"string","description":"The status of the function execution. Possible values can be: `waiting`, `processing`, `completed`, or `failed`.","x-example":"processing"},"exitCode":{"type":"integer","description":"The script exit code.","x-example":0,"format":"int32"},"stdout":{"type":"string","description":"The script stdout output string. Logs the last 4,000 characters of the execution stdout output.","x-example":""},"stderr":{"type":"string","description":"The script stderr output string. Logs the last 4,000 characters of the execution stderr output","x-example":""},"time":{"type":"number","description":"The script execution time in seconds.","x-example":0.4,"format":"double"}},"required":["$id","$read","functionId","dateCreated","trigger","status","exitCode","stdout","stderr","time"]},"country":{"description":"Country","type":"object","properties":{"name":{"type":"string","description":"Country name.","x-example":"United States"},"code":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"}},"required":["name","code"]},"continent":{"description":"Continent","type":"object","properties":{"name":{"type":"string","description":"Continent name.","x-example":"Europe"},"code":{"type":"string","description":"Continent two letter code.","x-example":"EU"}},"required":["name","code"]},"language":{"description":"Language","type":"object","properties":{"name":{"type":"string","description":"Language name.","x-example":"Italian"},"code":{"type":"string","description":"Language two-character ISO 639-1 codes.","x-example":"it"},"nativeName":{"type":"string","description":"Language native name.","x-example":"Italiano"}},"required":["name","code","nativeName"]},"currency":{"description":"Currency","type":"object","properties":{"symbol":{"type":"string","description":"Currency symbol.","x-example":"$"},"name":{"type":"string","description":"Currency name.","x-example":"US dollar"},"symbolNative":{"type":"string","description":"Currency native symbol.","x-example":"$"},"decimalDigits":{"type":"integer","description":"Number of decimal digits.","x-example":2,"format":"int32"},"rounding":{"type":"number","description":"Currency digit rounding.","x-example":0,"format":"double"},"code":{"type":"string","description":"Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format.","x-example":"USD"},"namePlural":{"type":"string","description":"Currency plural name","x-example":"US dollars"}},"required":["symbol","name","symbolNative","decimalDigits","rounding","code","namePlural"]},"phone":{"description":"Phone","type":"object","properties":{"code":{"type":"string","description":"Phone code.","x-example":"+1"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"}},"required":["code","countryCode","countryName"]}},"externalDocs":{"description":"Full API docs, specs and tutorials","url":"https:\/\/appwrite.io\/docs"}} \ No newline at end of file +{"swagger":"2.0","info":{"version":"0.12.0","title":"Appwrite","description":"Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)","termsOfService":"https:\/\/appwrite.io\/policy\/terms","contact":{"name":"Appwrite Team","url":"https:\/\/appwrite.io\/support","email":"team@appwrite.io"},"license":{"name":"BSD-3-Clause","url":"https:\/\/raw.githubusercontent.com\/appwrite\/appwrite\/master\/LICENSE"}},"host":"appwrite.io","basePath":"\/v1","schemes":["https"],"consumes":["application\/json","multipart\/form-data"],"produces":["application\/json"],"securityDefinitions":{"Project":{"type":"apiKey","name":"X-Appwrite-Project","description":"Your project ID","in":"header","x-appwrite":{"demo":"5df5acd0d48c2"}},"Key":{"type":"apiKey","name":"X-Appwrite-Key","description":"Your secret API key","in":"header","x-appwrite":{"demo":"919c2d18fb5d4...a2ae413da83346ad2"}},"JWT":{"type":"apiKey","name":"X-Appwrite-JWT","description":"Your secret JSON Web Token","in":"header","x-appwrite":{"demo":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ..."}},"Locale":{"type":"apiKey","name":"X-Appwrite-Locale","description":"","in":"header","x-appwrite":{"demo":"en"}}},"paths":{"\/account":{"get":{"summary":"Get Account","operationId":"accountGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user data as JSON object.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"get","weight":47,"cookies":false,"type":"","demo":"account\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}]},"delete":{"summary":"Delete Account","operationId":"accountDelete","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Delete a currently logged in user account. Behind the scene, the user record is not deleted but permanently blocked from any access. This is done to avoid deleted accounts being overtaken by new users with the same email address. Any user-related resources like documents or storage files should be deleted separately.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":56,"cookies":false,"type":"","demo":"account\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/account\/email":{"patch":{"summary":"Update Account Email","operationId":"accountUpdateEmail","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account email address. After changing user address, the user confirmation status will get reset. A new confirmation email is not sent automatically however you can use the send confirmation email endpoint again to send the confirmation email. For security measures, user password is required to complete this request.\nThis endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.\n","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateEmail","weight":54,"cookies":false,"type":"","demo":"account\/update-email.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-email.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["email","password"]}}]}},"\/account\/logs":{"get":{"summary":"Get Account Logs","operationId":"accountGetLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user list of latest security activity logs. Each log returns user IP address, location and date and time of log.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"getLogs","weight":50,"cookies":false,"type":"","demo":"account\/get-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"limit","description":"Maximum number of logs to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this value to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/account\/name":{"patch":{"summary":"Update Account Name","operationId":"accountUpdateName","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account name.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateName","weight":52,"cookies":false,"type":"","demo":"account\/update-name.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-name.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"User name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]}},"\/account\/password":{"patch":{"summary":"Update Account Password","operationId":"accountUpdatePassword","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user password. For validation, user is required to pass in the new password, and the old password. For users created with OAuth and Team Invites, oldPassword is optional.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePassword","weight":53,"cookies":false,"type":"","demo":"account\/update-password.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-password.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"password":{"type":"string","description":"New user password. Must be at least 8 chars.","default":null,"x-example":"password"},"oldPassword":{"type":"string","description":"Current user password. Must be at least 8 chars.","default":"","x-example":"password"}},"required":["password"]}}]}},"\/account\/prefs":{"get":{"summary":"Get Account Preferences","operationId":"accountGetPrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user preferences as a key-value object.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"getPrefs","weight":48,"cookies":false,"type":"","demo":"account\/get-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}]},"patch":{"summary":"Update Account Preferences","operationId":"accountUpdatePrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Update currently logged in user account preferences. You can pass only the specific settings you wish to update.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePrefs","weight":55,"cookies":false,"type":"","demo":"account\/update-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"prefs":{"type":"object","description":"Prefs key-value JSON object.","default":{},"x-example":"{}"}},"required":["prefs"]}}]}},"\/account\/recovery":{"post":{"summary":"Create Password Recovery","operationId":"accountCreateRecovery","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Sends the user an email with a temporary secret key for password reset. When the user clicks the confirmation link he is redirected back to your app password reset URL with the secret key and email address values attached to the URL query string. Use the query string params to submit a request to the [PUT \/account\/recovery](\/docs\/client\/account#accountUpdateRecovery) endpoint to complete the process. The verification link sent to the user's email address is valid for 1 hour.","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createRecovery","weight":59,"cookies":false,"type":"","demo":"account\/create-recovery.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-recovery.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},email:{param-email}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"url":{"type":"string","description":"URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"}},"required":["email","url"]}}]},"put":{"summary":"Create Password Recovery (confirmation)","operationId":"accountUpdateRecovery","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/recovery](\/docs\/client\/account#accountCreateRecovery) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.","responses":{"200":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"updateRecovery","weight":60,"cookies":false,"type":"","demo":"account\/update-recovery.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-recovery.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Valid reset token.","default":null,"x-example":"[SECRET]"},"password":{"type":"string","description":"New user password. Must be at least 8 chars.","default":null,"x-example":"password"},"passwordAgain":{"type":"string","description":"Repeat new user password. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["userId","secret","password","passwordAgain"]}}]}},"\/account\/sessions":{"get":{"summary":"Get Account Sessions","operationId":"accountGetSessions","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Get currently logged in user list of active sessions across different devices.","responses":{"200":{"description":"Sessions List","schema":{"$ref":"#\/definitions\/sessionList"}}},"x-appwrite":{"method":"getSessions","weight":49,"cookies":false,"type":"","demo":"account\/get-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}]},"delete":{"summary":"Delete All Account Sessions","operationId":"accountDeleteSessions","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Delete all sessions from the user account and remove any sessions cookies from the end client.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSessions","weight":58,"cookies":false,"type":"","demo":"account\/delete-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-sessions.md","rate-limit":100,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}]}},"\/account\/sessions\/{sessionId}":{"get":{"summary":"Get Session By ID","operationId":"accountGetSession","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to get a logged in user's session using a Session ID. Inputting 'current' will return the current session being used.","responses":{"200":{"description":"Session","schema":{"$ref":"#\/definitions\/session"}}},"x-appwrite":{"method":"getSession","weight":51,"cookies":false,"type":"","demo":"account\/get-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-session.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"sessionId","description":"Session ID. Use the string 'current' to get the current device session.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]},"delete":{"summary":"Delete Account Session","operationId":"accountDeleteSession","consumes":["application\/json"],"produces":[],"tags":["account"],"description":"Use this endpoint to log out the currently logged in user from all their account sessions across all of their different devices. When using the option id argument, only the session unique ID provider will be deleted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSession","weight":57,"cookies":false,"type":"","demo":"account\/delete-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-session.md","rate-limit":100,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"sessionId","description":"Session ID. Use the string 'current' to delete the current device session.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]}},"\/account\/verification":{"post":{"summary":"Create Email Verification","operationId":"accountCreateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](\/docs\/client\/account#accountUpdateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n","responses":{"201":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"createVerification","weight":61,"cookies":false,"type":"","demo":"account\/create-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-verification.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{userId}","scope":"account","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"url":{"type":"string","description":"URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"}},"required":["url"]}}]},"put":{"summary":"Create Email Verification (confirmation)","operationId":"accountUpdateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["account"],"description":"Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.","responses":{"200":{"description":"Token","schema":{"$ref":"#\/definitions\/token"}}},"x-appwrite":{"method":"updateVerification","weight":62,"cookies":false,"type":"","demo":"account\/update-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-verification.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},userId:{param-userId}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Valid verification token.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/avatars\/browsers\/{code}":{"get":{"summary":"Get Browser Icon","operationId":"avatarsGetBrowser","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user \/account\/sessions endpoint. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getBrowser","weight":64,"cookies":false,"type":"location","demo":"avatars\/get-browser.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-browser.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"code","description":"Browser Code.","required":true,"type":"string","x-example":"aa","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/credit-cards\/{code}":{"get":{"summary":"Get Credit Card Icon","operationId":"avatarsGetCreditCard","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getCreditCard","weight":63,"cookies":false,"type":"location","demo":"avatars\/get-credit-card.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-credit-card.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"code","description":"Credit Card Code. Possible values: amex, argencard, cabal, censosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro.","required":true,"type":"string","x-example":"amex","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/favicon":{"get":{"summary":"Get Favicon","operationId":"avatarsGetFavicon","consumes":["application\/json"],"produces":["image\/*"],"tags":["avatars"],"description":"Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFavicon","weight":67,"cookies":false,"type":"location","demo":"avatars\/get-favicon.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-favicon.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"url","description":"Website URL which you want to fetch the favicon from.","required":true,"type":"string","format":"url","x-example":"https:\/\/example.com","in":"query"}]}},"\/avatars\/flags\/{code}":{"get":{"summary":"Get Country Flag","operationId":"avatarsGetFlag","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFlag","weight":65,"cookies":false,"type":"location","demo":"avatars\/get-flag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-flag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"code","description":"Country Code. ISO Alpha-2 country code format.","required":true,"type":"string","x-example":"af","in":"path"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"quality","description":"Image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"}]}},"\/avatars\/image":{"get":{"summary":"Get Image from URL","operationId":"avatarsGetImage","consumes":["application\/json"],"produces":["image\/*"],"tags":["avatars"],"description":"Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getImage","weight":66,"cookies":false,"type":"location","demo":"avatars\/get-image.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-image.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"url","description":"Image URL which you want to crop.","required":true,"type":"string","format":"url","x-example":"https:\/\/example.com","in":"query"},{"name":"width","description":"Resize preview image width, Pass an integer between 0 to 2000.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"},{"name":"height","description":"Resize preview image height, Pass an integer between 0 to 2000.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"}]}},"\/avatars\/initials":{"get":{"summary":"Get User Initials","operationId":"avatarsGetInitials","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.\n\nYou can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getInitials","weight":69,"cookies":false,"type":"location","demo":"avatars\/get-initials.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-initials.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"name","description":"Full Name. When empty, current user name or email will be used. Max length: 128 chars.","required":false,"type":"string","x-example":"[NAME]","default":"","in":"query"},{"name":"width","description":"Image width. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":500,"in":"query"},{"name":"height","description":"Image height. Pass an integer between 0 to 2000. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":500,"in":"query"},{"name":"color","description":"Changes text color. By default a random color will be picked and stay will persistent to the given name.","required":false,"type":"string","default":"","in":"query"},{"name":"background","description":"Changes background color. By default a random color will be picked and stay will persistent to the given name.","required":false,"type":"string","default":"","in":"query"}]}},"\/avatars\/qr":{"get":{"summary":"Get QR Code","operationId":"avatarsGetQR","consumes":["application\/json"],"produces":["image\/png"],"tags":["avatars"],"description":"Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getQR","weight":68,"cookies":false,"type":"location","demo":"avatars\/get-q-r.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-qr.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"avatars.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"text","description":"Plain text to be converted to QR code image.","required":true,"type":"string","x-example":"[TEXT]","in":"query"},{"name":"size","description":"QR code size. Pass an integer between 0 to 1000. Defaults to 400.","required":false,"type":"integer","format":"int32","x-example":0,"default":400,"in":"query"},{"name":"margin","description":"Margin from edge. Pass an integer between 0 to 10. Defaults to 1.","required":false,"type":"integer","format":"int32","x-example":0,"default":1,"in":"query"},{"name":"download","description":"Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.","required":false,"type":"boolean","x-example":false,"default":false,"in":"query"}]}},"\/database\/collections":{"get":{"summary":"List Collections","operationId":"databaseListCollections","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a list of all the user collections. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's collections. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Collections List","schema":{"$ref":"#\/definitions\/collectionList"}}},"x-appwrite":{"method":"listCollections","weight":71,"cookies":false,"type":"","demo":"database\/list-collections.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-collections.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Maximum number of collection to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the collection used as the starting point for the query, excluding the collection itself. Should be used for efficient pagination when working with large sets of data.","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Collection","operationId":"databaseCreateCollection","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new Collection.","responses":{"201":{"description":"Collection","schema":{"$ref":"#\/definitions\/collection"}}},"x-appwrite":{"method":"createCollection","weight":70,"cookies":false,"type":"","demo":"database\/create-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"collectionId":{"type":"string","description":"Unique Id. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Collection name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"permission":{"type":"string","description":"Permissions type model to use for reading documents in this collection. You can use collection-level permission set once on the collection using the `read` and `write` params, or you can set document-level permission where each document read and write params will decide who has access to read and write to each document individually. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"document"},"read":{"type":"array","description":"An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["collectionId","name","permission","read","write"]}}]}},"\/database\/collections\/{collectionId}":{"get":{"summary":"Get Collection","operationId":"databaseGetCollection","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.","responses":{"200":{"description":"Collection","schema":{"$ref":"#\/definitions\/collection"}}},"x-appwrite":{"method":"getCollection","weight":72,"cookies":false,"type":"","demo":"database\/get-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]},"put":{"summary":"Update Collection","operationId":"databaseUpdateCollection","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Update a collection by its unique ID.","responses":{"200":{"description":"Collection","schema":{"$ref":"#\/definitions\/collection"}}},"x-appwrite":{"method":"updateCollection","weight":76,"cookies":false,"type":"","demo":"database\/update-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/update-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Collection name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"permission":{"type":"string","description":"Permissions type model to use for reading documents in this collection. You can use collection-level permission set once on the collection using the `read` and `write` params, or you can set document-level permission where each document read and write params will decide who has access to read and write to each document individually. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"document"},"read":{"type":"array","description":"An array of strings with read permissions. By default inherits the existing read permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default inherits the existing write permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"enabled":{"type":"boolean","description":"Is collection enabled?","default":true,"x-example":false}},"required":["name","permission"]}}]},"delete":{"summary":"Delete Collection","operationId":"databaseDeleteCollection","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteCollection","weight":77,"cookies":false,"type":"","demo":"database\/delete-collection.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-collection.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID.","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]}},"\/database\/collections\/{collectionId}\/attributes":{"get":{"summary":"List Attributes","operationId":"databaseListAttributes","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"Attributes List","schema":{"$ref":"#\/definitions\/attributeList"}}},"x-appwrite":{"method":"listAttributes","weight":86,"cookies":false,"type":"","demo":"database\/list-attributes.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-attributes.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]}},"\/database\/collections\/{collectionId}\/attributes\/boolean":{"post":{"summary":"Create Boolean Attribute","operationId":"databaseCreateBooleanAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a boolean attribute.\n","responses":{"201":{"description":"AttributeBoolean","schema":{"$ref":"#\/definitions\/attributeBoolean"}}},"x-appwrite":{"method":"createBooleanAttribute","weight":85,"cookies":false,"type":"","demo":"database\/create-boolean-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-boolean-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"boolean","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":false},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["key","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/email":{"post":{"summary":"Create Email Attribute","operationId":"databaseCreateEmailAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create an email attribute.\n","responses":{"201":{"description":"AttributeEmail","schema":{"$ref":"#\/definitions\/attributeEmail"}}},"x-appwrite":{"method":"createEmailAttribute","weight":79,"cookies":false,"type":"","demo":"database\/create-email-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-email-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"email@example.com"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["key","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/enum":{"post":{"summary":"Create Enum Attribute","operationId":"databaseCreateEnumAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"201":{"description":"AttributeEnum","schema":{"$ref":"#\/definitions\/attributeEnum"}}},"x-appwrite":{"method":"createEnumAttribute","weight":80,"cookies":false,"type":"","demo":"database\/create-enum-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-attribute-enum.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","default":null,"x-example":null},"elements":{"type":"array","description":"Array of elements in enumerated type. Uses length of longest element to determine size.","default":null,"x-example":null,"items":{"type":"string"}},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"[DEFAULT]"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["key","elements","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/float":{"post":{"summary":"Create Float Attribute","operationId":"databaseCreateFloatAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a float attribute. Optionally, minimum and maximum values can be provided.\n","responses":{"201":{"description":"AttributeFloat","schema":{"$ref":"#\/definitions\/attributeFloat"}}},"x-appwrite":{"method":"createFloatAttribute","weight":84,"cookies":false,"type":"","demo":"database\/create-float-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-float-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"min":{"type":"string","description":"Minimum value to enforce on new documents","default":null,"x-example":null},"max":{"type":"string","description":"Maximum value to enforce on new documents","default":null,"x-example":null},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":null},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["key","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/integer":{"post":{"summary":"Create Integer Attribute","operationId":"databaseCreateIntegerAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create an integer attribute. Optionally, minimum and maximum values can be provided.\n","responses":{"201":{"description":"AttributeInteger","schema":{"$ref":"#\/definitions\/attributeInteger"}}},"x-appwrite":{"method":"createIntegerAttribute","weight":83,"cookies":false,"type":"","demo":"database\/create-integer-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-integer-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"min":{"type":"integer","description":"Minimum value to enforce on new documents","default":null,"x-example":null},"max":{"type":"integer","description":"Maximum value to enforce on new documents","default":null,"x-example":null},"default":{"type":"integer","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":null},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["key","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/ip":{"post":{"summary":"Create IP Address Attribute","operationId":"databaseCreateIpAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create IP address attribute.\n","responses":{"201":{"description":"AttributeIP","schema":{"$ref":"#\/definitions\/attributeIp"}}},"x-appwrite":{"method":"createIpAttribute","weight":81,"cookies":false,"type":"","demo":"database\/create-ip-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-ip-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":null},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["key","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/string":{"post":{"summary":"Create String Attribute","operationId":"databaseCreateStringAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new string attribute.\n","responses":{"201":{"description":"AttributeString","schema":{"$ref":"#\/definitions\/attributeString"}}},"x-appwrite":{"method":"createStringAttribute","weight":78,"cookies":false,"type":"","demo":"database\/create-string-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-string-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","default":null,"x-example":null},"size":{"type":"integer","description":"Attribute size for text attributes, in number of characters.","default":null,"x-example":1},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"[DEFAULT]"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["key","size","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/url":{"post":{"summary":"Create URL Attribute","operationId":"databaseCreateUrlAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a URL attribute.\n","responses":{"201":{"description":"AttributeURL","schema":{"$ref":"#\/definitions\/attributeUrl"}}},"x-appwrite":{"method":"createUrlAttribute","weight":82,"cookies":false,"type":"","demo":"database\/create-url-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-url-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","default":null,"x-example":null},"required":{"type":"boolean","description":"Is attribute required?","default":null,"x-example":false},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","default":null,"x-example":"https:\/\/example.com"},"array":{"type":"boolean","description":"Is attribute an array?","default":false,"x-example":false}},"required":["key","required"]}}]}},"\/database\/collections\/{collectionId}\/attributes\/{key}":{"get":{"summary":"Get Attribute","operationId":"databaseGetAttribute","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"AttributeBoolean, or AttributeInteger, or AttributeFloat, or AttributeEmail, or AttributeEnum, or AttributeURL, or AttributeIP, or AttributeString","schema":{"oneOf":[{"$ref":"#\/definitions\/attributeBoolean"},{"$ref":"#\/definitions\/attributeInteger"},{"$ref":"#\/definitions\/attributeFloat"},{"$ref":"#\/definitions\/attributeEmail"},{"$ref":"#\/definitions\/attributeEnum"},{"$ref":"#\/definitions\/attributeUrl"},{"$ref":"#\/definitions\/attributeIp"},{"$ref":"#\/definitions\/attributeString"}]}}},"x-appwrite":{"method":"getAttribute","weight":87,"cookies":false,"type":"","demo":"database\/get-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"key","description":"Attribute Key.","required":true,"type":"string","in":"path"}]},"delete":{"summary":"Delete Attribute","operationId":"databaseDeleteAttribute","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteAttribute","weight":88,"cookies":false,"type":"","demo":"database\/delete-attribute.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-attribute.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"key","description":"Attribute Key.","required":true,"type":"string","in":"path"}]}},"\/database\/collections\/{collectionId}\/documents":{"get":{"summary":"List Documents","operationId":"databaseListDocuments","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a list of all the user documents. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's documents. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Documents List","schema":{"$ref":"#\/definitions\/documentList"}}},"x-appwrite":{"method":"listDocuments","weight":94,"cookies":false,"type":"","demo":"database\/list-documents.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-documents.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"queries","description":"Array of query strings.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"},{"name":"limit","description":"Maximum number of documents to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this value to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the document used as the starting point for the query, excluding the document itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderAttributes","description":"Array of attributes used to sort results.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"},{"name":"orderTypes","description":"Array of order directions for sorting attribtues. Possible values are DESC for descending order, or ASC for ascending order.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"default":[],"in":"query"}]},"post":{"summary":"Create Document","operationId":"databaseCreateDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](\/docs\/server\/database#databaseCreateCollection) API or directly from your database console.","responses":{"201":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"createDocument","weight":93,"cookies":false,"type":"","demo":"database\/create-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection with validation rules using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"documentId":{"type":"string","description":"Document ID. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"data":{"type":"object","description":"Document data as JSON object.","default":{},"x-example":"{}"},"read":{"type":"array","description":"An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["documentId","data"]}}]}},"\/database\/collections\/{collectionId}\/documents\/{documentId}":{"get":{"summary":"Get Document","operationId":"databaseGetDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Get a document by its unique ID. This endpoint response returns a JSON object with the document data.","responses":{"200":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"getDocument","weight":95,"cookies":false,"type":"","demo":"database\/get-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"}]},"patch":{"summary":"Update Document","operationId":"databaseUpdateDocument","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.","responses":{"200":{"description":"Document","schema":{"$ref":"#\/definitions\/document"}}},"x-appwrite":{"method":"updateDocument","weight":97,"cookies":false,"type":"","demo":"database\/update-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/update-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection with validation rules using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"data":{"type":"object","description":"Document data as JSON object.","default":{},"x-example":"{}"},"read":{"type":"array","description":"An array of strings with read permissions. By default inherits the existing read permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default inherits the existing write permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":"[\"role:all\"]","items":{"type":"string"}}},"required":["data"]}}]},"delete":{"summary":"Delete Document","operationId":"databaseDeleteDocument","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"Delete a document by its unique ID. This endpoint deletes only the parent documents, its attributes and relations to other documents. Child documents **will not** be deleted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteDocument","weight":98,"cookies":false,"type":"","demo":"database\/delete-document.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-document.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"documents.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"documentId","description":"Document ID.","required":true,"type":"string","x-example":"[DOCUMENT_ID]","in":"path"}]}},"\/database\/collections\/{collectionId}\/indexes":{"get":{"summary":"List Indexes","operationId":"databaseListIndexes","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"Indexes List","schema":{"$ref":"#\/definitions\/indexList"}}},"x-appwrite":{"method":"listIndexes","weight":90,"cookies":false,"type":"","demo":"database\/list-indexes.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/list-indexes.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"}]},"post":{"summary":"Create Index","operationId":"databaseCreateIndex","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"201":{"description":"Index","schema":{"$ref":"#\/definitions\/index"}}},"x-appwrite":{"method":"createIndex","weight":89,"cookies":false,"type":"","demo":"database\/create-index.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/create-index.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"key":{"type":"string","description":"Index Key.","default":null,"x-example":null},"type":{"type":"string","description":"Index type.","default":null,"x-example":"key"},"attributes":{"type":"array","description":"Array of attributes to index.","default":null,"x-example":null,"items":{"type":"string"}},"orders":{"type":"array","description":"Array of index orders.","default":[],"x-example":null,"items":{"type":"string"}}},"required":["key","type","attributes"]}}]}},"\/database\/collections\/{collectionId}\/indexes\/{key}":{"get":{"summary":"Get Index","operationId":"databaseGetIndex","consumes":["application\/json"],"produces":["application\/json"],"tags":["database"],"description":"","responses":{"200":{"description":"Index","schema":{"$ref":"#\/definitions\/index"}}},"x-appwrite":{"method":"getIndex","weight":91,"cookies":false,"type":"","demo":"database\/get-index.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/get-index.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"key","description":"Index Key.","required":true,"type":"string","in":"path"}]},"delete":{"summary":"Delete Index","operationId":"databaseDeleteIndex","consumes":["application\/json"],"produces":[],"tags":["database"],"description":"","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteIndex","weight":92,"cookies":false,"type":"","demo":"database\/delete-index.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/database\/delete-index.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"collections.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"collectionId","description":"Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/database#createCollection).","required":true,"type":"string","x-example":"[COLLECTION_ID]","in":"path"},{"name":"key","description":"Index Key.","required":true,"type":"string","in":"path"}]}},"\/functions":{"get":{"summary":"List Functions","operationId":"functionsList","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the project's functions. You can use the query params to filter your results.","responses":{"200":{"description":"Functions List","schema":{"$ref":"#\/definitions\/functionList"}}},"x-appwrite":{"method":"list","weight":187,"cookies":false,"type":"","demo":"functions\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-functions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Maximum number of functions to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this value to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the function used as the starting point for the query, excluding the function itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Function","operationId":"functionsCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Create a new function. You can pass a list of [permissions](\/docs\/permissions) to allow different project users or team with access to execute the function using the client API.","responses":{"201":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"create","weight":186,"cookies":false,"type":"","demo":"functions\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"functionId":{"type":"string","description":"Function ID. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Function name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"execute":{"type":"array","description":"An array of strings with execution permissions. By default no user is granted with any execute permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"runtime":{"type":"string","description":"Execution runtime.","default":null,"x-example":"dotnet-5.0"},"vars":{"type":"object","description":"Key-value JSON object that will be passed to the function as environment variables.","default":[],"x-example":"{}"},"events":{"type":"array","description":"Events list.","default":[],"x-example":null,"items":{"type":"string"}},"schedule":{"type":"string","description":"Schedule CRON syntax.","default":"","x-example":null},"timeout":{"type":"integer","description":"Function maximum execution time in seconds.","default":15,"x-example":1}},"required":["functionId","name","execute","runtime"]}}]}},"\/functions\/runtimes":{"get":{"summary":"List the currently active function runtimes.","operationId":"functionsListRuntimes","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all runtimes that are currently active in your project.","responses":{"200":{"description":"Runtimes List","schema":{"$ref":"#\/definitions\/runtimeList"}}},"x-appwrite":{"method":"listRuntimes","weight":188,"cookies":false,"type":"","demo":"functions\/list-runtimes.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-runtimes.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/functions\/{functionId}":{"get":{"summary":"Get Function","operationId":"functionsGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a function by its unique ID.","responses":{"200":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"get","weight":189,"cookies":false,"type":"","demo":"functions\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"}]},"put":{"summary":"Update Function","operationId":"functionsUpdate","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Update function by its unique ID.","responses":{"200":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"update","weight":191,"cookies":false,"type":"","demo":"functions\/update.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/update-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Function name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"execute":{"type":"array","description":"An array of strings with execution permissions. By default no user is granted with any execute permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"vars":{"type":"object","description":"Key-value JSON object that will be passed to the function as environment variables.","default":[],"x-example":"{}"},"events":{"type":"array","description":"Events list.","default":[],"x-example":null,"items":{"type":"string"}},"schedule":{"type":"string","description":"Schedule CRON syntax.","default":"","x-example":null},"timeout":{"type":"integer","description":"Maximum execution time in seconds.","default":15,"x-example":1}},"required":["name","execute"]}}]},"delete":{"summary":"Delete Function","operationId":"functionsDelete","consumes":["application\/json"],"produces":[],"tags":["functions"],"description":"Delete a function by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":193,"cookies":false,"type":"","demo":"functions\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/delete-function.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"}]}},"\/functions\/{functionId}\/executions":{"get":{"summary":"List Executions","operationId":"functionsListExecutions","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the current user function execution logs. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's executions. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Executions List","schema":{"$ref":"#\/definitions\/executionList"}}},"x-appwrite":{"method":"listExecutions","weight":199,"cookies":false,"type":"","demo":"functions\/list-executions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-executions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"execution.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"limit","description":"Maximum number of executions to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this value to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"cursor","description":"ID of the execution used as the starting point for the query, excluding the execution itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"}]},"post":{"summary":"Create Execution","operationId":"functionsCreateExecution","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.","responses":{"201":{"description":"Execution","schema":{"$ref":"#\/definitions\/execution"}}},"x-appwrite":{"method":"createExecution","weight":198,"cookies":false,"type":"","demo":"functions\/create-execution.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-execution.md","rate-limit":60,"rate-time":60,"rate-key":"url:{url},ip:{ip}","scope":"execution.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"data":{"type":"string","description":"String of custom data to send to function.","default":"","x-example":"[DATA]"}}}}]}},"\/functions\/{functionId}\/executions\/{executionId}":{"get":{"summary":"Get Execution","operationId":"functionsGetExecution","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a function execution log by its unique ID.","responses":{"200":{"description":"Execution","schema":{"$ref":"#\/definitions\/execution"}}},"x-appwrite":{"method":"getExecution","weight":200,"cookies":false,"type":"","demo":"functions\/get-execution.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-execution.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"execution.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"functionId","description":"Function ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"executionId","description":"Execution ID.","required":true,"type":"string","x-example":"[EXECUTION_ID]","in":"path"}]}},"\/functions\/{functionId}\/tag":{"patch":{"summary":"Update Function Tag","operationId":"functionsUpdateTag","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Update the function code tag ID using the unique function ID. Use this endpoint to switch the code tag that should be executed by the execution endpoint.","responses":{"200":{"description":"Function","schema":{"$ref":"#\/definitions\/function"}}},"x-appwrite":{"method":"updateTag","weight":192,"cookies":false,"type":"","demo":"functions\/update-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/update-function-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"tag":{"type":"string","description":"Tag ID.","default":null,"x-example":"[TAG]"}},"required":["tag"]}}]}},"\/functions\/{functionId}\/tags":{"get":{"summary":"List Tags","operationId":"functionsListTags","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a list of all the project's code tags. You can use the query params to filter your results.","responses":{"200":{"description":"Tags List","schema":{"$ref":"#\/definitions\/tagList"}}},"x-appwrite":{"method":"listTags","weight":195,"cookies":false,"type":"","demo":"functions\/list-tags.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/list-tags.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Maximum number of tags to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this value to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the tag used as the starting point for the query, excluding the tag itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Tag","operationId":"functionsCreateTag","consumes":["multipart\/form-data"],"produces":["application\/json"],"tags":["functions"],"description":"Create a new function code tag. Use this endpoint to upload a new version of your code function. To execute your newly uploaded code, you'll need to update the function's tag to use your new tag UID.\n\nThis endpoint accepts a tar.gz file compressed with your code. Make sure to include any dependencies your code has within the compressed file. You can learn more about code packaging in the [Appwrite Cloud Functions tutorial](\/docs\/functions).\n\nUse the \"command\" param to set the entry point used to execute your code.","responses":{"201":{"description":"Tag","schema":{"$ref":"#\/definitions\/tag"}}},"x-appwrite":{"method":"createTag","weight":194,"cookies":false,"type":"","demo":"functions\/create-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/create-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":true,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"command","description":"Code execution command.","required":true,"type":"string","x-example":"[COMMAND]","in":"formData"},{"name":"code","description":"Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.","required":true,"type":"file","in":"formData"}]}},"\/functions\/{functionId}\/tags\/{tagId}":{"get":{"summary":"Get Tag","operationId":"functionsGetTag","consumes":["application\/json"],"produces":["application\/json"],"tags":["functions"],"description":"Get a code tag by its unique ID.","responses":{"200":{"description":"Tag","schema":{"$ref":"#\/definitions\/tag"}}},"x-appwrite":{"method":"getTag","weight":196,"cookies":false,"type":"","demo":"functions\/get-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/get-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"tagId","description":"Tag ID.","required":true,"type":"string","x-example":"[TAG_ID]","in":"path"}]},"delete":{"summary":"Delete Tag","operationId":"functionsDeleteTag","consumes":["application\/json"],"produces":[],"tags":["functions"],"description":"Delete a code tag by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteTag","weight":197,"cookies":false,"type":"","demo":"functions\/delete-tag.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/functions\/delete-tag.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"functions.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"functionId","description":"Function ID.","required":true,"type":"string","x-example":"[FUNCTION_ID]","in":"path"},{"name":"tagId","description":"Tag ID.","required":true,"type":"string","x-example":"[TAG_ID]","in":"path"}]}},"\/health":{"get":{"summary":"Get HTTP","operationId":"healthGet","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite HTTP server is up and responsive.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"get","weight":106,"cookies":false,"type":"","demo":"health\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/anti-virus":{"get":{"summary":"Get Anti virus","operationId":"healthGetAntiVirus","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite Anti Virus server is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getAntiVirus","weight":117,"cookies":false,"type":"","demo":"health\/get-anti-virus.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-anti-virus.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/cache":{"get":{"summary":"Get Cache","operationId":"healthGetCache","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite in-memory cache server is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getCache","weight":109,"cookies":false,"type":"","demo":"health\/get-cache.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-cache.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/db":{"get":{"summary":"Get DB","operationId":"healthGetDB","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite database server is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getDB","weight":108,"cookies":false,"type":"","demo":"health\/get-d-b.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-db.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/certificates":{"get":{"summary":"Get Certificates Queue","operationId":"healthGetQueueCertificates","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of certificates that are waiting to be issued against [Letsencrypt](https:\/\/letsencrypt.org\/) in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueCertificates","weight":114,"cookies":false,"type":"","demo":"health\/get-queue-certificates.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-certificates.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/functions":{"get":{"summary":"Get Functions Queue","operationId":"healthGetQueueFunctions","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueFunctions","weight":115,"cookies":false,"type":"","demo":"health\/get-queue-functions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-functions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/logs":{"get":{"summary":"Get Logs Queue","operationId":"healthGetQueueLogs","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of logs that are waiting to be processed in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueLogs","weight":112,"cookies":false,"type":"","demo":"health\/get-queue-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/usage":{"get":{"summary":"Get Usage Queue","operationId":"healthGetQueueUsage","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of usage stats that are waiting to be processed in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueUsage","weight":113,"cookies":false,"type":"","demo":"health\/get-queue-usage.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-usage.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/queue\/webhooks":{"get":{"summary":"Get Webhooks Queue","operationId":"healthGetQueueWebhooks","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Get the number of webhooks that are waiting to be processed in the Appwrite internal queue server.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getQueueWebhooks","weight":111,"cookies":false,"type":"","demo":"health\/get-queue-webhooks.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-webhooks.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/storage\/local":{"get":{"summary":"Get Local Storage","operationId":"healthGetStorageLocal","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite local storage device is up and connection is successful.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getStorageLocal","weight":116,"cookies":false,"type":"","demo":"health\/get-storage-local.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-local.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/health\/time":{"get":{"summary":"Get Time","operationId":"healthGetTime","consumes":["application\/json"],"produces":[],"tags":["health"],"description":"Check the Appwrite server time is synced with Google remote NTP server. We use this technology to smoothly handle leap seconds with no disruptive events. The [Network Time Protocol](https:\/\/en.wikipedia.org\/wiki\/Network_Time_Protocol) (NTP) is used by hundreds of millions of computers and devices to synchronize their clocks over the Internet. If your computer sets its own clock, it likely uses NTP.","responses":{"500":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getTime","weight":110,"cookies":false,"type":"","demo":"health\/get-time.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-time.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"health.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}]}},"\/locale":{"get":{"summary":"Get User Locale","operationId":"localeGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.\n\n([IP Geolocation by DB-IP](https:\/\/db-ip.com))","responses":{"200":{"description":"Locale","schema":{"$ref":"#\/definitions\/locale"}}},"x-appwrite":{"method":"get","weight":99,"cookies":false,"type":"","demo":"locale\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/continents":{"get":{"summary":"List Continents","operationId":"localeGetContinents","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all continents. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Continents List","schema":{"$ref":"#\/definitions\/continentList"}}},"x-appwrite":{"method":"getContinents","weight":103,"cookies":false,"type":"","demo":"locale\/get-continents.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-continents.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/countries":{"get":{"summary":"List Countries","operationId":"localeGetCountries","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Countries List","schema":{"$ref":"#\/definitions\/countryList"}}},"x-appwrite":{"method":"getCountries","weight":100,"cookies":false,"type":"","demo":"locale\/get-countries.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/countries\/eu":{"get":{"summary":"List EU Countries","operationId":"localeGetCountriesEU","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries that are currently members of the EU. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Countries List","schema":{"$ref":"#\/definitions\/countryList"}}},"x-appwrite":{"method":"getCountriesEU","weight":101,"cookies":false,"type":"","demo":"locale\/get-countries-e-u.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries-eu.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/countries\/phones":{"get":{"summary":"List Countries Phone Codes","operationId":"localeGetCountriesPhones","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all countries phone codes. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Phones List","schema":{"$ref":"#\/definitions\/phoneList"}}},"x-appwrite":{"method":"getCountriesPhones","weight":102,"cookies":false,"type":"","demo":"locale\/get-countries-phones.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-countries-phones.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/currencies":{"get":{"summary":"List Currencies","operationId":"localeGetCurrencies","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.","responses":{"200":{"description":"Currencies List","schema":{"$ref":"#\/definitions\/currencyList"}}},"x-appwrite":{"method":"getCurrencies","weight":104,"cookies":false,"type":"","demo":"locale\/get-currencies.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-currencies.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/locale\/languages":{"get":{"summary":"List Languages","operationId":"localeGetLanguages","consumes":["application\/json"],"produces":["application\/json"],"tags":["locale"],"description":"List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.","responses":{"200":{"description":"Languages List","schema":{"$ref":"#\/definitions\/languageList"}}},"x-appwrite":{"method":"getLanguages","weight":105,"cookies":false,"type":"","demo":"locale\/get-languages.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-languages.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"locale.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}]}},"\/storage\/files":{"get":{"summary":"List Files","operationId":"storageListFiles","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Get a list of all the user files. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's files. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Files List","schema":{"$ref":"#\/definitions\/fileList"}}},"x-appwrite":{"method":"listFiles","weight":150,"cookies":false,"type":"","demo":"storage\/list-files.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Maximum number of files to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the file used as the starting point for the query, excluding the file itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create File","operationId":"storageCreateFile","consumes":["multipart\/form-data"],"produces":["application\/json"],"tags":["storage"],"description":"Create a new file. The user who creates the file will automatically be assigned to read and write access unless he has passed custom values for read and write arguments.","responses":{"201":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"createFile","weight":149,"cookies":false,"type":"upload","demo":"storage\/create-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File ID. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","required":true,"type":"string","in":"formData"},{"name":"file","description":"Binary file.","required":true,"type":"file","in":"formData"},{"name":"read","description":"An array of strings with read permissions. By default only the current user is granted with read permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"in":"formData"},{"name":"write","description":"An array of strings with write permissions. By default only the current user is granted with write permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","required":false,"type":"array","collectionFormat":"multi","items":{"type":"string"},"in":"formData"}]}},"\/storage\/files\/{fileId}":{"get":{"summary":"Get File","operationId":"storageGetFile","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.","responses":{"200":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"getFile","weight":151,"cookies":false,"type":"","demo":"storage\/get-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]},"put":{"summary":"Update File","operationId":"storageUpdateFile","consumes":["application\/json"],"produces":["application\/json"],"tags":["storage"],"description":"Update a file by its unique ID. Only users with write permissions have access to update this resource.","responses":{"200":{"description":"File","schema":{"$ref":"#\/definitions\/file"}}},"x-appwrite":{"method":"updateFile","weight":155,"cookies":false,"type":"","demo":"storage\/update-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"read":{"type":"array","description":"An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}},"write":{"type":"array","description":"An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](https:\/\/appwrite.io\/docs\/permissions) and get a full list of available permissions.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["read","write"]}}]},"delete":{"summary":"Delete File","operationId":"storageDeleteFile","consumes":["application\/json"],"produces":[],"tags":["storage"],"description":"Delete a file by its unique ID. Only users with write permissions have access to delete this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteFile","weight":156,"cookies":false,"type":"","demo":"storage\/delete-file.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/files\/{fileId}\/download":{"get":{"summary":"Get File for Download","operationId":"storageGetFileDownload","consumes":["application\/json"],"produces":["*\/*"],"tags":["storage"],"description":"Get a file content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.","responses":{"200":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getFileDownload","weight":153,"cookies":false,"type":"location","demo":"storage\/get-file-download.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/storage\/files\/{fileId}\/preview":{"get":{"summary":"Get File Preview","operationId":"storageGetFilePreview","consumes":["application\/json"],"produces":["image\/*"],"tags":["storage"],"description":"Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image.","responses":{"200":{"description":"Image","schema":{"type":"file"}}},"x-appwrite":{"method":"getFilePreview","weight":152,"cookies":false,"type":"location","demo":"storage\/get-file-preview.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"},{"name":"width","description":"Resize preview image width, Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"height","description":"Resize preview image height, Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"gravity","description":"Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right","required":false,"type":"string","x-example":"center","default":"center","in":"query"},{"name":"quality","description":"Preview image quality. Pass an integer between 0 to 100. Defaults to 100.","required":false,"type":"integer","format":"int32","x-example":0,"default":100,"in":"query"},{"name":"borderWidth","description":"Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"borderColor","description":"Preview image border color. Use a valid HEX color, no # is needed for prefix.","required":false,"type":"string","default":"","in":"query"},{"name":"borderRadius","description":"Preview image border radius in pixels. Pass an integer between 0 to 4000.","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"opacity","description":"Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.","required":false,"type":"number","format":"float","x-example":0,"default":1,"in":"query"},{"name":"rotation","description":"Preview image rotation in degrees. Pass an integer between -360 and 360.","required":false,"type":"integer","format":"int32","x-example":-360,"default":0,"in":"query"},{"name":"background","description":"Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.","required":false,"type":"string","default":"","in":"query"},{"name":"output","description":"Output format type (jpeg, jpg, png, gif and webp).","required":false,"type":"string","x-example":"jpg","default":"","in":"query"}]}},"\/storage\/files\/{fileId}\/view":{"get":{"summary":"Get File for View","operationId":"storageGetFileView","consumes":["application\/json"],"produces":["*\/*"],"tags":["storage"],"description":"Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.","responses":{"200":{"description":"File","schema":{"type":"file"}}},"x-appwrite":{"method":"getFileView","weight":154,"cookies":false,"type":"location","demo":"storage\/get-file-view.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"files.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"fileId","description":"File ID.","required":true,"type":"string","x-example":"[FILE_ID]","in":"path"}]}},"\/teams":{"get":{"summary":"List Teams","operationId":"teamsList","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a list of all the current user teams. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's teams. [Learn more about different API modes](\/docs\/admin).","responses":{"200":{"description":"Teams List","schema":{"$ref":"#\/definitions\/teamList"}}},"x-appwrite":{"method":"list","weight":160,"cookies":false,"type":"","demo":"teams\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Maximum number of teams to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the team used as the starting point for the query, excluding the team itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Team","operationId":"teamsCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Create a new team. The user who creates the team will automatically be assigned as the owner of the team. The team owner can invite new members, who will be able add new owners and update or delete the team from your project.","responses":{"201":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"create","weight":159,"cookies":false,"type":"","demo":"teams\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"teamId":{"type":"string","description":"Team ID. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"name":{"type":"string","description":"Team name. Max length: 128 chars.","default":null,"x-example":"[NAME]"},"roles":{"type":"array","description":"Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":["owner"],"x-example":null,"items":{"type":"string"}}},"required":["teamId","name"]}}]}},"\/teams\/{teamId}":{"get":{"summary":"Get Team","operationId":"teamsGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team by its unique ID. All team members have read access for this resource.","responses":{"200":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"get","weight":161,"cookies":false,"type":"","demo":"teams\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"}]},"put":{"summary":"Update Team","operationId":"teamsUpdate","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Update a team by its unique ID. Only team owners have write access for this resource.","responses":{"200":{"description":"Team","schema":{"$ref":"#\/definitions\/team"}}},"x-appwrite":{"method":"update","weight":162,"cookies":false,"type":"","demo":"teams\/update.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"Team name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]},"delete":{"summary":"Delete Team","operationId":"teamsDelete","consumes":["application\/json"],"produces":[],"tags":["teams"],"description":"Delete a team by its unique ID. Only team owners have write access for this resource.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":163,"cookies":false,"type":"","demo":"teams\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"}]}},"\/teams\/{teamId}\/memberships":{"get":{"summary":"Get Team Memberships","operationId":"teamsGetMemberships","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team members by the team unique ID. All team members have read access for this list of resources.","responses":{"200":{"description":"Memberships List","schema":{"$ref":"#\/definitions\/membershipList"}}},"x-appwrite":{"method":"getMemberships","weight":165,"cookies":false,"type":"","demo":"teams\/get-memberships.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-members.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Maximum number of memberships to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this value to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the membership used as the starting point for the query, excluding the membership itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create Team Membership","operationId":"teamsCreateMembership","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"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.\n\nUse 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.\n\nPlease 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.","responses":{"201":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"createMembership","weight":164,"cookies":false,"type":"","demo":"teams\/create-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team-membership.md","rate-limit":10,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"Team member email.","default":null,"x-example":"email@example.com"},"roles":{"type":"array","description":"Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](\/docs\/permissions). Max length for each role is 32 chars.","default":null,"x-example":null,"items":{"type":"string"}},"url":{"type":"string","description":"URL to redirect the user back to your app from the invitation email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.","default":null,"x-example":"https:\/\/example.com"},"name":{"type":"string","description":"Team member name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["email","roles","url"]}}]}},"\/teams\/{teamId}\/memberships\/{membershipId}":{"get":{"summary":"Get Team Membership","operationId":"teamsGetMembership","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Get a team member by the membership unique id. All team members have read access for this resource.","responses":{"200":{"description":"Memberships List","schema":{"$ref":"#\/definitions\/membershipList"}}},"x-appwrite":{"method":"getMembership","weight":166,"cookies":false,"type":"","demo":"teams\/get-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.read","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"}]},"patch":{"summary":"Update Membership Roles","operationId":"teamsUpdateMembershipRoles","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"","responses":{"200":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"updateMembershipRoles","weight":167,"cookies":false,"type":"","demo":"teams\/update-membership-roles.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-roles.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"roles":{"type":"array","description":"Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Max length for each role is 32 chars.","default":null,"x-example":null,"items":{"type":"string"}}},"required":["roles"]}}]},"delete":{"summary":"Delete Team Membership","operationId":"teamsDeleteMembership","consumes":["application\/json"],"produces":[],"tags":["teams"],"description":"This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteMembership","weight":169,"cookies":false,"type":"","demo":"teams\/delete-membership.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"teams.write","platforms":["client","server","server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"}]}},"\/teams\/{teamId}\/memberships\/{membershipId}\/status":{"patch":{"summary":"Update Team Membership Status","operationId":"teamsUpdateMembershipStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["teams"],"description":"Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user.","responses":{"200":{"description":"Membership","schema":{"$ref":"#\/definitions\/membership"}}},"x-appwrite":{"method":"updateMembershipStatus","weight":168,"cookies":false,"type":"","demo":"teams\/update-membership-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"public","platforms":["client","server"],"packaging":false,"auth":{"Project":[],"JWT":[]}},"security":[{"Project":[],"JWT":[]}],"parameters":[{"name":"teamId","description":"Team ID.","required":true,"type":"string","x-example":"[TEAM_ID]","in":"path"},{"name":"membershipId","description":"Membership ID.","required":true,"type":"string","x-example":"[MEMBERSHIP_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User ID.","default":null,"x-example":"[USER_ID]"},"secret":{"type":"string","description":"Secret key.","default":null,"x-example":"[SECRET]"}},"required":["userId","secret"]}}]}},"\/users":{"get":{"summary":"List Users","operationId":"usersList","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get a list of all the project's users. You can use the query params to filter your results.","responses":{"200":{"description":"Users List","schema":{"$ref":"#\/definitions\/userList"}}},"x-appwrite":{"method":"list","weight":171,"cookies":false,"type":"","demo":"users\/list.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-users.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"search","description":"Search term to filter your list results. Max length: 256 chars.","required":false,"type":"string","x-example":"[SEARCH]","default":"","in":"query"},{"name":"limit","description":"Maximum number of users to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this param to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"},{"name":"cursor","description":"ID of the user used as the starting point for the query, excluding the user itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"string","x-example":"[CURSOR]","default":"","in":"query"},{"name":"cursorDirection","description":"Direction of the cursor.","required":false,"type":"string","x-example":"after","default":"after","in":"query"},{"name":"orderType","description":"Order result by ASC or DESC order.","required":false,"type":"string","x-example":"ASC","default":"ASC","in":"query"}]},"post":{"summary":"Create User","operationId":"usersCreate","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Create a new user.","responses":{"201":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"create","weight":170,"cookies":false,"type":"","demo":"users\/create.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"payload","in":"body","schema":{"type":"object","properties":{"userId":{"type":"string","description":"User ID. Choose your own unique ID or pass the string `unique()` to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.","default":null,"x-example":null},"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"},"password":{"type":"string","description":"User password. Must be at least 8 chars.","default":null,"x-example":"password"},"name":{"type":"string","description":"User name. Max length: 128 chars.","default":"","x-example":"[NAME]"}},"required":["userId","email","password"]}}]}},"\/users\/{userId}":{"get":{"summary":"Get User","operationId":"usersGet","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get a user by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"get","weight":172,"cookies":false,"type":"","demo":"users\/get.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]},"delete":{"summary":"Delete User","operationId":"usersDelete","consumes":["application\/json"],"produces":[],"tags":["users"],"description":"Delete a user by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"delete","weight":184,"cookies":false,"type":"","demo":"users\/delete.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]}},"\/users\/{userId}\/email":{"patch":{"summary":"Update Email","operationId":"usersUpdateEmail","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user email by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateEmail","weight":180,"cookies":false,"type":"","demo":"users\/update-email.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"email":{"type":"string","description":"User email.","default":null,"x-example":"email@example.com"}},"required":["email"]}}]}},"\/users\/{userId}\/logs":{"get":{"summary":"Get User Logs","operationId":"usersGetLogs","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get the user activity logs list by its unique ID.","responses":{"200":{"description":"Logs List","schema":{"$ref":"#\/definitions\/logList"}}},"x-appwrite":{"method":"getLogs","weight":175,"cookies":false,"type":"","demo":"users\/get-logs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-logs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"limit","description":"Maximum number of logs to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.","required":false,"type":"integer","format":"int32","x-example":0,"default":25,"in":"query"},{"name":"offset","description":"Offset value. The default value is 0. Use this value to manage pagination. [learn more about pagination](https:\/\/appwrite.io\/docs\/pagination)","required":false,"type":"integer","format":"int32","x-example":0,"default":0,"in":"query"}]}},"\/users\/{userId}\/name":{"patch":{"summary":"Update Name","operationId":"usersUpdateName","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user name by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateName","weight":178,"cookies":false,"type":"","demo":"users\/update-name.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-name.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"name":{"type":"string","description":"User name. Max length: 128 chars.","default":null,"x-example":"[NAME]"}},"required":["name"]}}]}},"\/users\/{userId}\/password":{"patch":{"summary":"Update Password","operationId":"usersUpdatePassword","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user password by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updatePassword","weight":179,"cookies":false,"type":"","demo":"users\/update-password.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-password.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"password":{"type":"string","description":"New user password. Must be at least 8 chars.","default":null,"x-example":"password"}},"required":["password"]}}]}},"\/users\/{userId}\/prefs":{"get":{"summary":"Get User Preferences","operationId":"usersGetPrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get the user preferences by its unique ID.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"getPrefs","weight":173,"cookies":false,"type":"","demo":"users\/get-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]},"patch":{"summary":"Update User Preferences","operationId":"usersUpdatePrefs","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user preferences by its unique ID. You can pass only the specific settings you wish to update.","responses":{"200":{"description":"Preferences","schema":{"$ref":"#\/definitions\/preferences"}}},"x-appwrite":{"method":"updatePrefs","weight":181,"cookies":false,"type":"","demo":"users\/update-prefs.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-prefs.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"prefs":{"type":"object","description":"Prefs key-value JSON object.","default":{},"x-example":"{}"}},"required":["prefs"]}}]}},"\/users\/{userId}\/sessions":{"get":{"summary":"Get User Sessions","operationId":"usersGetSessions","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Get the user sessions list by its unique ID.","responses":{"200":{"description":"Sessions List","schema":{"$ref":"#\/definitions\/sessionList"}}},"x-appwrite":{"method":"getSessions","weight":174,"cookies":false,"type":"","demo":"users\/get-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.read","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]},"delete":{"summary":"Delete User Sessions","operationId":"usersDeleteSessions","consumes":["application\/json"],"produces":[],"tags":["users"],"description":"Delete all user's sessions by using the user's unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSessions","weight":183,"cookies":false,"type":"","demo":"users\/delete-sessions.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-sessions.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"}]}},"\/users\/{userId}\/sessions\/{sessionId}":{"delete":{"summary":"Delete User Session","operationId":"usersDeleteSession","consumes":["application\/json"],"produces":[],"tags":["users"],"description":"Delete a user sessions by its unique ID.","responses":{"204":{"description":"No content"}},"x-appwrite":{"method":"deleteSession","weight":182,"cookies":false,"type":"","demo":"users\/delete-session.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-session.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"sessionId","description":"Session ID.","required":true,"type":"string","x-example":"[SESSION_ID]","in":"path"}]}},"\/users\/{userId}\/status":{"patch":{"summary":"Update User Status","operationId":"usersUpdateStatus","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user status by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateStatus","weight":176,"cookies":false,"type":"","demo":"users\/update-status.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-status.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"status":{"type":"boolean","description":"User Status. To activate the user pass `true` and to block the user pass `false`.","default":null,"x-example":false}},"required":["status"]}}]}},"\/users\/{userId}\/verification":{"patch":{"summary":"Update Email Verification","operationId":"usersUpdateVerification","consumes":["application\/json"],"produces":["application\/json"],"tags":["users"],"description":"Update the user email verification status by its unique ID.","responses":{"200":{"description":"User","schema":{"$ref":"#\/definitions\/user"}}},"x-appwrite":{"method":"updateVerification","weight":177,"cookies":false,"type":"","demo":"users\/update-verification.md","edit":"https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-verification.md","rate-limit":0,"rate-time":3600,"rate-key":"url:{url},ip:{ip}","scope":"users.write","platforms":["server"],"packaging":false,"auth":{"Project":[],"Key":[]}},"security":[{"Project":[],"Key":[]}],"parameters":[{"name":"userId","description":"User ID.","required":true,"type":"string","x-example":"[USER_ID]","in":"path"},{"name":"payload","in":"body","schema":{"type":"object","properties":{"emailVerification":{"type":"boolean","description":"User email verification status.","default":null,"x-example":false}},"required":["emailVerification"]}}]}}},"tags":[{"name":"account","description":"The Account service allows you to authenticate and manage a user account."},{"name":"avatars","description":"The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars."},{"name":"database","description":"The Database service allows you to create structured collections of documents, query and filter lists of documents"},{"name":"locale","description":"The Locale service allows you to customize your app based on your users' location."},{"name":"health","description":"The Health service allows you to both validate and monitor your Appwrite server's health."},{"name":"projects","description":"The Project service allows you to manage all the projects in your Appwrite server."},{"name":"storage","description":"The Storage service allows you to manage your project files."},{"name":"teams","description":"The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources"},{"name":"users","description":"The Users service allows you to manage your project users."},{"name":"functions","description":"The Functions Service allows you view, create and manage your Cloud Functions."}],"definitions":{"collectionList":{"description":"Collections List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"collections":{"type":"array","description":"List of collections.","items":{"type":"object","$ref":"#\/definitions\/collection"},"x-example":""}},"required":["sum","collections"]},"indexList":{"description":"Indexes List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"indexes":{"type":"array","description":"List of indexes.","items":{"type":"object","$ref":"#\/definitions\/index"},"x-example":""}},"required":["sum","indexes"]},"documentList":{"description":"Documents List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"documents":{"type":"array","description":"List of documents.","items":{"type":"object","$ref":"#\/definitions\/document"},"x-example":""}},"required":["sum","documents"]},"userList":{"description":"Users List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"users":{"type":"array","description":"List of users.","items":{"type":"object","$ref":"#\/definitions\/user"},"x-example":""}},"required":["sum","users"]},"sessionList":{"description":"Sessions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"sessions":{"type":"array","description":"List of sessions.","items":{"type":"object","$ref":"#\/definitions\/session"},"x-example":""}},"required":["sum","sessions"]},"logList":{"description":"Logs List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"logs":{"type":"array","description":"List of logs.","items":{"type":"object","$ref":"#\/definitions\/log"},"x-example":""}},"required":["sum","logs"]},"fileList":{"description":"Files List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"files":{"type":"array","description":"List of files.","items":{"type":"object","$ref":"#\/definitions\/file"},"x-example":""}},"required":["sum","files"]},"teamList":{"description":"Teams List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"teams":{"type":"array","description":"List of teams.","items":{"type":"object","$ref":"#\/definitions\/team"},"x-example":""}},"required":["sum","teams"]},"membershipList":{"description":"Memberships List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"memberships":{"type":"array","description":"List of memberships.","items":{"type":"object","$ref":"#\/definitions\/membership"},"x-example":""}},"required":["sum","memberships"]},"functionList":{"description":"Functions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"functions":{"type":"array","description":"List of functions.","items":{"type":"object","$ref":"#\/definitions\/function"},"x-example":""}},"required":["sum","functions"]},"runtimeList":{"description":"Runtimes List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"runtimes":{"type":"array","description":"List of runtimes.","items":{"type":"object","$ref":"#\/definitions\/runtime"},"x-example":""}},"required":["sum","runtimes"]},"tagList":{"description":"Tags List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"tags":{"type":"array","description":"List of tags.","items":{"type":"object","$ref":"#\/definitions\/tag"},"x-example":""}},"required":["sum","tags"]},"executionList":{"description":"Executions List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"executions":{"type":"array","description":"List of executions.","items":{"type":"object","$ref":"#\/definitions\/execution"},"x-example":""}},"required":["sum","executions"]},"countryList":{"description":"Countries List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"countries":{"type":"array","description":"List of countries.","items":{"type":"object","$ref":"#\/definitions\/country"},"x-example":""}},"required":["sum","countries"]},"continentList":{"description":"Continents List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"continents":{"type":"array","description":"List of continents.","items":{"type":"object","$ref":"#\/definitions\/continent"},"x-example":""}},"required":["sum","continents"]},"languageList":{"description":"Languages List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"languages":{"type":"array","description":"List of languages.","items":{"type":"object","$ref":"#\/definitions\/language"},"x-example":""}},"required":["sum","languages"]},"currencyList":{"description":"Currencies List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"currencies":{"type":"array","description":"List of currencies.","items":{"type":"object","$ref":"#\/definitions\/currency"},"x-example":""}},"required":["sum","currencies"]},"phoneList":{"description":"Phones List","type":"object","properties":{"sum":{"type":"integer","description":"Total number of items available on the server.","x-example":5,"format":"int32"},"phones":{"type":"array","description":"List of phones.","items":{"type":"object","$ref":"#\/definitions\/phone"},"x-example":""}},"required":["sum","phones"]},"collection":{"description":"Collection","type":"object","properties":{"$id":{"type":"string","description":"Collection ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"Collection read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"Collection write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"},"name":{"type":"string","description":"Collection name.","x-example":"My Collection"},"enabled":{"type":"boolean","description":"Collection enabled.","x-example":false},"permission":{"type":"string","description":"Collection permission model. Possible values: `document` or `collection`","x-example":"document"},"attributes":{"type":"array","description":"Collection attributes.","items":{"anyOf":[{"$ref":"#\/definitions\/attributeBoolean"},{"$ref":"#\/definitions\/attributeInteger"},{"$ref":"#\/definitions\/attributeFloat"},{"$ref":"#\/definitions\/attributeEmail"},{"$ref":"#\/definitions\/attributeEnum"},{"$ref":"#\/definitions\/attributeUrl"},{"$ref":"#\/definitions\/attributeIp"},{"$ref":"#\/definitions\/attributeString"}]},"x-example":{}},"indexes":{"type":"array","description":"Collection indexes.","items":{"type":"object","$ref":"#\/definitions\/index"},"x-example":{}}},"required":["$id","$read","$write","name","enabled","permission","attributes","indexes"]},"attributeList":{"description":"Attributes List","type":"object","properties":{"sum":{"type":"integer","description":"Total sum of items in the list.","x-example":5,"format":"int32"},"attributes":{"type":"array","description":"List of attributes.","items":{"anyOf":[{"$ref":"#\/definitions\/attributeBoolean"},{"$ref":"#\/definitions\/attributeInteger"},{"$ref":"#\/definitions\/attributeFloat"},{"$ref":"#\/definitions\/attributeEmail"},{"$ref":"#\/definitions\/attributeEnum"},{"$ref":"#\/definitions\/attributeUrl"},{"$ref":"#\/definitions\/attributeIp"},{"$ref":"#\/definitions\/attributeString"}]},"x-example":""}},"required":["sum","attributes"]},"attributeString":{"description":"AttributeString","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"size":{"type":"string","description":"Attribute size.","x-example":128},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"default","nullable":true}},"required":["key","type","status","required","size"]},"attributeInteger":{"description":"AttributeInteger","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"min":{"type":"integer","description":"Minimum value to enforce for new documents.","x-example":1,"format":"int32","nullable":true},"max":{"type":"integer","description":"Maximum value to enforce for new documents.","x-example":10,"format":"int32","nullable":true},"default":{"type":"integer","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":10,"format":"int32","nullable":true}},"required":["key","type","status","required"]},"attributeFloat":{"description":"AttributeFloat","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"min":{"type":"number","description":"Minimum value to enforce for new documents.","x-example":1.5,"format":"double","nullable":true},"max":{"type":"number","description":"Maximum value to enforce for new documents.","x-example":10.5,"format":"double","nullable":true},"default":{"type":"number","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":2.5,"format":"double","nullable":true}},"required":["key","type","status","required"]},"attributeBoolean":{"description":"AttributeBoolean","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"default":{"type":"boolean","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":false,"nullable":true}},"required":["key","type","status","required"]},"attributeEmail":{"description":"AttributeEmail","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"format":{"type":"string","description":"String format.","x-example":"email"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"default@example.com","nullable":true}},"required":["key","type","status","required","format"]},"attributeEnum":{"description":"AttributeEnum","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"elements":{"type":"array","description":"Array of elements in enumerated type.","items":{"type":"string"},"x-example":"element"},"format":{"type":"string","description":"String format.","x-example":"enum"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"element","nullable":true}},"required":["key","type","status","required","elements","format"]},"attributeIp":{"description":"AttributeIP","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"format":{"type":"string","description":"String format.","x-example":"ip"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"192.0.2.0","nullable":true}},"required":["key","type","status","required","format"]},"attributeUrl":{"description":"AttributeURL","type":"object","properties":{"key":{"type":"string","description":"Attribute Key.","x-example":"fullName"},"type":{"type":"string","description":"Attribute type.","x-example":"string"},"status":{"type":"string","description":"Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"required":{"type":"boolean","description":"Is attribute required?","x-example":true},"array":{"type":"boolean","description":"Is attribute an array?","x-example":false,"nullable":true},"format":{"type":"string","description":"String format.","x-example":"url"},"default":{"type":"string","description":"Default value for attribute when not provided. Cannot be set when attribute is required.","x-example":"http:\/\/example.com","nullable":true}},"required":["key","type","status","required","format"]},"index":{"description":"Index","type":"object","properties":{"key":{"type":"string","description":"Index Key.","x-example":"index1"},"type":{"type":"string","description":"Index type.","x-example":""},"status":{"type":"string","description":"Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`","x-example":"available"},"attributes":{"type":"array","description":"Index attributes.","items":{"type":"string"},"x-example":[]},"orders":{"type":"array","description":"Index orders.","items":{"type":"string"},"x-example":[]}},"required":["key","type","status","attributes","orders"]},"document":{"description":"Document","type":"object","properties":{"$id":{"type":"string","description":"Document ID.","x-example":"5e5ea5c16897e"},"$collection":{"type":"string","description":"Collection ID.","x-example":"5e5ea5c15117e"},"$read":{"type":"array","description":"Document read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"Document write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"}},"additionalProperties":true,"required":["$id","$collection","$read","$write"]},"log":{"description":"Log","type":"object","properties":{"event":{"type":"string","description":"Event name.","x-example":"account.sessions.create"},"userId":{"type":"string","description":"User ID.","x-example":"610fc2f985ee0"},"userEmail":{"type":"string","description":"User Email.","x-example":"john@appwrite.io"},"userName":{"type":"string","description":"User Name.","x-example":"John Doe"},"mode":{"type":"string","description":"API mode when event triggered.","x-example":"admin"},"ip":{"type":"string","description":"IP session in use when the session was created.","x-example":"127.0.0.1"},"time":{"type":"integer","description":"Log creation time in Unix timestamp.","x-example":1592981250,"format":"int32"},"osCode":{"type":"string","description":"Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).","x-example":"Mac"},"osName":{"type":"string","description":"Operating system name.","x-example":"Mac"},"osVersion":{"type":"string","description":"Operating system version.","x-example":"Mac"},"clientType":{"type":"string","description":"Client type.","x-example":"browser"},"clientCode":{"type":"string","description":"Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).","x-example":"CM"},"clientName":{"type":"string","description":"Client name.","x-example":"Chrome Mobile iOS"},"clientVersion":{"type":"string","description":"Client version.","x-example":"84.0"},"clientEngine":{"type":"string","description":"Client engine name.","x-example":"WebKit"},"clientEngineVersion":{"type":"string","description":"Client engine name.","x-example":"605.1.15"},"deviceName":{"type":"string","description":"Device name.","x-example":"smartphone"},"deviceBrand":{"type":"string","description":"Device brand name.","x-example":"Google"},"deviceModel":{"type":"string","description":"Device model name.","x-example":"Nexus 5"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"}},"required":["event","userId","userEmail","userName","mode","ip","time","osCode","osName","osVersion","clientType","clientCode","clientName","clientVersion","clientEngine","clientEngineVersion","deviceName","deviceBrand","deviceModel","countryCode","countryName"]},"user":{"description":"User","type":"object","properties":{"$id":{"type":"string","description":"User ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"User name.","x-example":"John Doe"},"registration":{"type":"integer","description":"User registration date in Unix timestamp.","x-example":1592981250,"format":"int32"},"status":{"type":"boolean","description":"User status. Pass `true` for enabled and `false` for disabled.","x-example":true},"passwordUpdate":{"type":"integer","description":"Unix timestamp of the most recent password update","x-example":1592981250,"format":"int32"},"email":{"type":"string","description":"User email address.","x-example":"john@appwrite.io"},"emailVerification":{"type":"boolean","description":"Email verification status.","x-example":true},"prefs":{"type":"object","description":"User preferences as a key-value object","x-example":{"theme":"pink","timezone":"UTC"},"items":{"type":"object","$ref":"#\/definitions\/preferences"}}},"required":["$id","name","registration","status","passwordUpdate","email","emailVerification","prefs"]},"preferences":{"description":"Preferences","type":"object","additionalProperties":true},"session":{"description":"Session","type":"object","properties":{"$id":{"type":"string","description":"Session ID.","x-example":"5e5ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5bb8c16897e"},"expire":{"type":"integer","description":"Session expiration date in Unix timestamp.","x-example":1592981250,"format":"int32"},"provider":{"type":"string","description":"Session Provider.","x-example":"email"},"providerUid":{"type":"string","description":"Session Provider User ID.","x-example":"user@example.com"},"providerToken":{"type":"string","description":"Session Provider Token.","x-example":"MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"},"ip":{"type":"string","description":"IP in use when the session was created.","x-example":"127.0.0.1"},"osCode":{"type":"string","description":"Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).","x-example":"Mac"},"osName":{"type":"string","description":"Operating system name.","x-example":"Mac"},"osVersion":{"type":"string","description":"Operating system version.","x-example":"Mac"},"clientType":{"type":"string","description":"Client type.","x-example":"browser"},"clientCode":{"type":"string","description":"Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).","x-example":"CM"},"clientName":{"type":"string","description":"Client name.","x-example":"Chrome Mobile iOS"},"clientVersion":{"type":"string","description":"Client version.","x-example":"84.0"},"clientEngine":{"type":"string","description":"Client engine name.","x-example":"WebKit"},"clientEngineVersion":{"type":"string","description":"Client engine name.","x-example":"605.1.15"},"deviceName":{"type":"string","description":"Device name.","x-example":"smartphone"},"deviceBrand":{"type":"string","description":"Device brand name.","x-example":"Google"},"deviceModel":{"type":"string","description":"Device model name.","x-example":"Nexus 5"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"},"current":{"type":"boolean","description":"Returns true if this the current user session.","x-example":true}},"required":["$id","userId","expire","provider","providerUid","providerToken","ip","osCode","osName","osVersion","clientType","clientCode","clientName","clientVersion","clientEngine","clientEngineVersion","deviceName","deviceBrand","deviceModel","countryCode","countryName","current"]},"token":{"description":"Token","type":"object","properties":{"$id":{"type":"string","description":"Token ID.","x-example":"bb8ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5ea5c168bb8"},"secret":{"type":"string","description":"Token secret key. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.","x-example":""},"expire":{"type":"integer","description":"Token expiration date in Unix timestamp.","x-example":1592981250,"format":"int32"}},"required":["$id","userId","secret","expire"]},"locale":{"description":"Locale","type":"object","properties":{"ip":{"type":"string","description":"User IP address.","x-example":"127.0.0.1"},"countryCode":{"type":"string","description":"Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format","x-example":"US"},"country":{"type":"string","description":"Country name. This field support localization.","x-example":"United States"},"continentCode":{"type":"string","description":"Continent code. A two character continent code \"AF\" for Africa, \"AN\" for Antarctica, \"AS\" for Asia, \"EU\" for Europe, \"NA\" for North America, \"OC\" for Oceania, and \"SA\" for South America.","x-example":"NA"},"continent":{"type":"string","description":"Continent name. This field support localization.","x-example":"North America"},"eu":{"type":"boolean","description":"True if country is part of the Europian Union.","x-example":false},"currency":{"type":"string","description":"Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format","x-example":"USD"}},"required":["ip","countryCode","country","continentCode","continent","eu","currency"]},"file":{"description":"File","type":"object","properties":{"$id":{"type":"string","description":"File ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"File read permissions.","items":{"type":"string"},"x-example":"role:all"},"$write":{"type":"array","description":"File write permissions.","items":{"type":"string"},"x-example":"user:608f9da25e7e1"},"name":{"type":"string","description":"File name.","x-example":"Pink.png"},"dateCreated":{"type":"integer","description":"File creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"signature":{"type":"string","description":"File MD5 signature.","x-example":"5d529fd02b544198ae075bd57c1762bb"},"mimeType":{"type":"string","description":"File mime type.","x-example":"image\/png"},"sizeOriginal":{"type":"integer","description":"File original size in bytes.","x-example":17890,"format":"int32"}},"required":["$id","$read","$write","name","dateCreated","signature","mimeType","sizeOriginal"]},"team":{"description":"Team","type":"object","properties":{"$id":{"type":"string","description":"Team ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"Team name.","x-example":"VIP"},"dateCreated":{"type":"integer","description":"Team creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"sum":{"type":"integer","description":"Total sum of team members.","x-example":7,"format":"int32"}},"required":["$id","name","dateCreated","sum"]},"membership":{"description":"Membership","type":"object","properties":{"$id":{"type":"string","description":"Membership ID.","x-example":"5e5ea5c16897e"},"userId":{"type":"string","description":"User ID.","x-example":"5e5ea5c16897e"},"teamId":{"type":"string","description":"Team ID.","x-example":"5e5ea5c16897e"},"name":{"type":"string","description":"User name.","x-example":"VIP"},"email":{"type":"string","description":"User email address.","x-example":"john@appwrite.io"},"invited":{"type":"integer","description":"Date, the user has been invited to join the team in Unix timestamp.","x-example":1592981250,"format":"int32"},"joined":{"type":"integer","description":"Date, the user has accepted the invitation to join the team in Unix timestamp.","x-example":1592981250,"format":"int32"},"confirm":{"type":"boolean","description":"User confirmation status, true if the user has joined the team or false otherwise.","x-example":false},"roles":{"type":"array","description":"User list of roles","items":{"type":"string"},"x-example":"admin"}},"required":["$id","userId","teamId","name","email","invited","joined","confirm","roles"]},"function":{"description":"Function","type":"object","properties":{"$id":{"type":"string","description":"Function ID.","x-example":"5e5ea5c16897e"},"execute":{"type":"string","description":"Execution permissions.","x-example":"role:member"},"name":{"type":"string","description":"Function name.","x-example":"My Function"},"dateCreated":{"type":"integer","description":"Function creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"dateUpdated":{"type":"integer","description":"Function update date in Unix timestamp.","x-example":1592981257,"format":"int32"},"status":{"type":"string","description":"Function status. Possible values: `disabled`, `enabled`","x-example":"enabled"},"runtime":{"type":"string","description":"Function execution runtime.","x-example":"python-3.8"},"tag":{"type":"string","description":"Function active tag ID.","x-example":"5e5ea5c16897e"},"vars":{"type":"string","description":"Function environment variables.","x-example":{"key":"value"}},"events":{"type":"array","description":"Function trigger events.","items":{"type":"string"},"x-example":"account.create"},"schedule":{"type":"string","description":"Function execution schedult in CRON format.","x-example":"5 4 * * *"},"scheduleNext":{"type":"integer","description":"Function next scheduled execution date in Unix timestamp.","x-example":1592981292,"format":"int32"},"schedulePrevious":{"type":"integer","description":"Function next scheduled execution date in Unix timestamp.","x-example":1592981237,"format":"int32"},"timeout":{"type":"integer","description":"Function execution timeout in seconds.","x-example":1592981237,"format":"int32"}},"required":["$id","execute","name","dateCreated","dateUpdated","status","runtime","tag","vars","events","schedule","scheduleNext","schedulePrevious","timeout"]},"runtime":{"description":"Runtime","type":"object","properties":{"$id":{"type":"string","description":"Runtime ID.","x-example":"python-3.8"},"name":{"type":"string","description":"Runtime Name.","x-example":"Python"},"version":{"type":"string","description":"Runtime version.","x-example":"3.8"},"base":{"type":"string","description":"Base Docker image used to build the runtime.","x-example":"python:3.8-alpine"},"image":{"type":"string","description":"Image name of Docker Hub.","x-example":"appwrite\\\/runtime-for-python:3.8"},"logo":{"type":"string","description":"Name of the logo image.","x-example":"python.png"},"supports":{"type":"array","description":"List of supported architectures.","items":{"type":"string"},"x-example":"amd64"}},"required":["$id","name","version","base","image","logo","supports"]},"tag":{"description":"Tag","type":"object","properties":{"$id":{"type":"string","description":"Tag ID.","x-example":"5e5ea5c16897e"},"functionId":{"type":"string","description":"Function ID.","x-example":"5e5ea6g16897e"},"dateCreated":{"type":"integer","description":"The tag creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"command":{"type":"string","description":"The entrypoint command in use to execute the tag code.","x-example":"enabled"},"size":{"type":"string","description":"The code size in bytes.","x-example":"python-3.8"}},"required":["$id","functionId","dateCreated","command","size"]},"execution":{"description":"Execution","type":"object","properties":{"$id":{"type":"string","description":"Execution ID.","x-example":"5e5ea5c16897e"},"$read":{"type":"array","description":"Execution read permissions.","items":{"type":"string"},"x-example":"role:all"},"functionId":{"type":"string","description":"Function ID.","x-example":"5e5ea6g16897e"},"dateCreated":{"type":"integer","description":"The execution creation date in Unix timestamp.","x-example":1592981250,"format":"int32"},"trigger":{"type":"string","description":"The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.","x-example":"http"},"status":{"type":"string","description":"The status of the function execution. Possible values can be: `waiting`, `processing`, `completed`, or `failed`.","x-example":"processing"},"exitCode":{"type":"integer","description":"The script exit code.","x-example":0,"format":"int32"},"stdout":{"type":"string","description":"The script stdout output string. Logs the last 4,000 characters of the execution stdout output.","x-example":""},"stderr":{"type":"string","description":"The script stderr output string. Logs the last 4,000 characters of the execution stderr output","x-example":""},"time":{"type":"number","description":"The script execution time in seconds.","x-example":0.4,"format":"double"}},"required":["$id","$read","functionId","dateCreated","trigger","status","exitCode","stdout","stderr","time"]},"country":{"description":"Country","type":"object","properties":{"name":{"type":"string","description":"Country name.","x-example":"United States"},"code":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"}},"required":["name","code"]},"continent":{"description":"Continent","type":"object","properties":{"name":{"type":"string","description":"Continent name.","x-example":"Europe"},"code":{"type":"string","description":"Continent two letter code.","x-example":"EU"}},"required":["name","code"]},"language":{"description":"Language","type":"object","properties":{"name":{"type":"string","description":"Language name.","x-example":"Italian"},"code":{"type":"string","description":"Language two-character ISO 639-1 codes.","x-example":"it"},"nativeName":{"type":"string","description":"Language native name.","x-example":"Italiano"}},"required":["name","code","nativeName"]},"currency":{"description":"Currency","type":"object","properties":{"symbol":{"type":"string","description":"Currency symbol.","x-example":"$"},"name":{"type":"string","description":"Currency name.","x-example":"US dollar"},"symbolNative":{"type":"string","description":"Currency native symbol.","x-example":"$"},"decimalDigits":{"type":"integer","description":"Number of decimal digits.","x-example":2,"format":"int32"},"rounding":{"type":"number","description":"Currency digit rounding.","x-example":0,"format":"double"},"code":{"type":"string","description":"Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format.","x-example":"USD"},"namePlural":{"type":"string","description":"Currency plural name","x-example":"US dollars"}},"required":["symbol","name","symbolNative","decimalDigits","rounding","code","namePlural"]},"phone":{"description":"Phone","type":"object","properties":{"code":{"type":"string","description":"Phone code.","x-example":"+1"},"countryCode":{"type":"string","description":"Country two-character ISO 3166-1 alpha code.","x-example":"US"},"countryName":{"type":"string","description":"Country name.","x-example":"United States"}},"required":["code","countryCode","countryName"]}},"externalDocs":{"description":"Full API docs, specs and tutorials","url":"https:\/\/appwrite.io\/docs"}} \ No newline at end of file diff --git a/app/views/console/database/collection.phtml b/app/views/console/database/collection.phtml index 90efbe77b6..a9a3e692aa 100644 --- a/app/views/console/database/collection.phtml +++ b/app/views/console/database/collection.phtml @@ -221,7 +221,7 @@ $logs = $this->getParam('logs', null); - + @@ -275,7 +275,7 @@ $logs = $this->getParam('logs', null); - Index ID + Index Key Type Attributes @@ -295,7 +295,7 @@ $logs = $this->getParam('logs', null); deleting  - + @@ -334,7 +334,7 @@ $logs = $this->getParam('logs', null); - + @@ -563,8 +563,8 @@ $logs = $this->getParam('logs', null); - - + +
    Allowed Characters A-Z, a-z, 0-9, and non-leading underscore
    @@ -640,8 +640,8 @@ $logs = $this->getParam('logs', null); - - + +
    Allowed Characters A-Z, a-z, 0-9, and non-leading underscore
    @@ -722,8 +722,8 @@ $logs = $this->getParam('logs', null); - - + +
    Allowed Characters A-Z, a-z, 0-9, and non-leading underscore
    @@ -803,8 +803,8 @@ $logs = $this->getParam('logs', null); - - + +
    Allowed Characters A-Z, a-z, 0-9, and non-leading underscore
    @@ -873,8 +873,8 @@ $logs = $this->getParam('logs', null); - - + +
    Allowed Characters A-Z, a-z, 0-9, and non-leading underscore
    @@ -946,8 +946,8 @@ $logs = $this->getParam('logs', null); - - + +
    Allowed Characters A-Z, a-z, 0-9, and non-leading underscore
    @@ -1016,8 +1016,8 @@ $logs = $this->getParam('logs', null); - - + +
    Allowed Characters A-Z, a-z, 0-9, and non-leading underscore
    @@ -1086,8 +1086,8 @@ $logs = $this->getParam('logs', null); - - + +
    Allowed Characters A-Z, a-z, 0-9, and non-leading underscore
    @@ -1183,8 +1183,8 @@ $logs = $this->getParam('logs', null); - - + +
    Allowed Characters A-Z, a-z, 0-9, and non-leading underscore
    diff --git a/public/scripts/dependencies/appwrite.js b/public/scripts/dependencies/appwrite.js index ed3bb1e178..54b72f5683 100644 --- a/public/scripts/dependencies/appwrite.js +++ b/public/scripts/dependencies/appwrite.js @@ -1324,27 +1324,27 @@ * * * @param {string} collectionId - * @param {string} attributeId + * @param {string} key * @param {boolean} required * @param {boolean} xdefault * @param {boolean} array * @throws {AppwriteException} * @returns {Promise} */ - createBooleanAttribute: (collectionId, attributeId, required, xdefault, array) => __awaiter(this, void 0, void 0, function* () { + createBooleanAttribute: (collectionId, key, required, xdefault, array) => __awaiter(this, void 0, void 0, function* () { if (typeof collectionId === 'undefined') { throw new AppwriteException('Missing required parameter: "collectionId"'); } - if (typeof attributeId === 'undefined') { - throw new AppwriteException('Missing required parameter: "attributeId"'); + if (typeof key === 'undefined') { + throw new AppwriteException('Missing required parameter: "key"'); } if (typeof required === 'undefined') { throw new AppwriteException('Missing required parameter: "required"'); } let path = '/database/collections/{collectionId}/attributes/boolean'.replace('{collectionId}', collectionId); let payload = {}; - if (typeof attributeId !== 'undefined') { - payload['attributeId'] = attributeId; + if (typeof key !== 'undefined') { + payload['key'] = key; } if (typeof required !== 'undefined') { payload['required'] = required; @@ -1367,27 +1367,27 @@ * * * @param {string} collectionId - * @param {string} attributeId + * @param {string} key * @param {boolean} required * @param {string} xdefault * @param {boolean} array * @throws {AppwriteException} * @returns {Promise} */ - createEmailAttribute: (collectionId, attributeId, required, xdefault, array) => __awaiter(this, void 0, void 0, function* () { + createEmailAttribute: (collectionId, key, required, xdefault, array) => __awaiter(this, void 0, void 0, function* () { if (typeof collectionId === 'undefined') { throw new AppwriteException('Missing required parameter: "collectionId"'); } - if (typeof attributeId === 'undefined') { - throw new AppwriteException('Missing required parameter: "attributeId"'); + if (typeof key === 'undefined') { + throw new AppwriteException('Missing required parameter: "key"'); } if (typeof required === 'undefined') { throw new AppwriteException('Missing required parameter: "required"'); } let path = '/database/collections/{collectionId}/attributes/email'.replace('{collectionId}', collectionId); let payload = {}; - if (typeof attributeId !== 'undefined') { - payload['attributeId'] = attributeId; + if (typeof key !== 'undefined') { + payload['key'] = key; } if (typeof required !== 'undefined') { payload['required'] = required; @@ -1408,7 +1408,7 @@ * * * @param {string} collectionId - * @param {string} attributeId + * @param {string} key * @param {string[]} elements * @param {boolean} required * @param {string} xdefault @@ -1416,12 +1416,12 @@ * @throws {AppwriteException} * @returns {Promise} */ - createEnumAttribute: (collectionId, attributeId, elements, required, xdefault, array) => __awaiter(this, void 0, void 0, function* () { + createEnumAttribute: (collectionId, key, elements, required, xdefault, array) => __awaiter(this, void 0, void 0, function* () { if (typeof collectionId === 'undefined') { throw new AppwriteException('Missing required parameter: "collectionId"'); } - if (typeof attributeId === 'undefined') { - throw new AppwriteException('Missing required parameter: "attributeId"'); + if (typeof key === 'undefined') { + throw new AppwriteException('Missing required parameter: "key"'); } if (typeof elements === 'undefined') { throw new AppwriteException('Missing required parameter: "elements"'); @@ -1431,8 +1431,8 @@ } let path = '/database/collections/{collectionId}/attributes/enum'.replace('{collectionId}', collectionId); let payload = {}; - if (typeof attributeId !== 'undefined') { - payload['attributeId'] = attributeId; + if (typeof key !== 'undefined') { + payload['key'] = key; } if (typeof elements !== 'undefined') { payload['elements'] = elements; @@ -1459,7 +1459,7 @@ * * * @param {string} collectionId - * @param {string} attributeId + * @param {string} key * @param {boolean} required * @param {string} min * @param {string} max @@ -1468,20 +1468,20 @@ * @throws {AppwriteException} * @returns {Promise} */ - createFloatAttribute: (collectionId, attributeId, required, min, max, xdefault, array) => __awaiter(this, void 0, void 0, function* () { + createFloatAttribute: (collectionId, key, required, min, max, xdefault, array) => __awaiter(this, void 0, void 0, function* () { if (typeof collectionId === 'undefined') { throw new AppwriteException('Missing required parameter: "collectionId"'); } - if (typeof attributeId === 'undefined') { - throw new AppwriteException('Missing required parameter: "attributeId"'); + if (typeof key === 'undefined') { + throw new AppwriteException('Missing required parameter: "key"'); } if (typeof required === 'undefined') { throw new AppwriteException('Missing required parameter: "required"'); } let path = '/database/collections/{collectionId}/attributes/float'.replace('{collectionId}', collectionId); let payload = {}; - if (typeof attributeId !== 'undefined') { - payload['attributeId'] = attributeId; + if (typeof key !== 'undefined') { + payload['key'] = key; } if (typeof required !== 'undefined') { payload['required'] = required; @@ -1511,7 +1511,7 @@ * * * @param {string} collectionId - * @param {string} attributeId + * @param {string} key * @param {boolean} required * @param {number} min * @param {number} max @@ -1520,20 +1520,20 @@ * @throws {AppwriteException} * @returns {Promise} */ - createIntegerAttribute: (collectionId, attributeId, required, min, max, xdefault, array) => __awaiter(this, void 0, void 0, function* () { + createIntegerAttribute: (collectionId, key, required, min, max, xdefault, array) => __awaiter(this, void 0, void 0, function* () { if (typeof collectionId === 'undefined') { throw new AppwriteException('Missing required parameter: "collectionId"'); } - if (typeof attributeId === 'undefined') { - throw new AppwriteException('Missing required parameter: "attributeId"'); + if (typeof key === 'undefined') { + throw new AppwriteException('Missing required parameter: "key"'); } if (typeof required === 'undefined') { throw new AppwriteException('Missing required parameter: "required"'); } let path = '/database/collections/{collectionId}/attributes/integer'.replace('{collectionId}', collectionId); let payload = {}; - if (typeof attributeId !== 'undefined') { - payload['attributeId'] = attributeId; + if (typeof key !== 'undefined') { + payload['key'] = key; } if (typeof required !== 'undefined') { payload['required'] = required; @@ -1562,27 +1562,27 @@ * * * @param {string} collectionId - * @param {string} attributeId + * @param {string} key * @param {boolean} required * @param {string} xdefault * @param {boolean} array * @throws {AppwriteException} * @returns {Promise} */ - createIpAttribute: (collectionId, attributeId, required, xdefault, array) => __awaiter(this, void 0, void 0, function* () { + createIpAttribute: (collectionId, key, required, xdefault, array) => __awaiter(this, void 0, void 0, function* () { if (typeof collectionId === 'undefined') { throw new AppwriteException('Missing required parameter: "collectionId"'); } - if (typeof attributeId === 'undefined') { - throw new AppwriteException('Missing required parameter: "attributeId"'); + if (typeof key === 'undefined') { + throw new AppwriteException('Missing required parameter: "key"'); } if (typeof required === 'undefined') { throw new AppwriteException('Missing required parameter: "required"'); } let path = '/database/collections/{collectionId}/attributes/ip'.replace('{collectionId}', collectionId); let payload = {}; - if (typeof attributeId !== 'undefined') { - payload['attributeId'] = attributeId; + if (typeof key !== 'undefined') { + payload['key'] = key; } if (typeof required !== 'undefined') { payload['required'] = required; @@ -1605,7 +1605,7 @@ * * * @param {string} collectionId - * @param {string} attributeId + * @param {string} key * @param {number} size * @param {boolean} required * @param {string} xdefault @@ -1613,12 +1613,12 @@ * @throws {AppwriteException} * @returns {Promise} */ - createStringAttribute: (collectionId, attributeId, size, required, xdefault, array) => __awaiter(this, void 0, void 0, function* () { + createStringAttribute: (collectionId, key, size, required, xdefault, array) => __awaiter(this, void 0, void 0, function* () { if (typeof collectionId === 'undefined') { throw new AppwriteException('Missing required parameter: "collectionId"'); } - if (typeof attributeId === 'undefined') { - throw new AppwriteException('Missing required parameter: "attributeId"'); + if (typeof key === 'undefined') { + throw new AppwriteException('Missing required parameter: "key"'); } if (typeof size === 'undefined') { throw new AppwriteException('Missing required parameter: "size"'); @@ -1628,8 +1628,8 @@ } let path = '/database/collections/{collectionId}/attributes/string'.replace('{collectionId}', collectionId); let payload = {}; - if (typeof attributeId !== 'undefined') { - payload['attributeId'] = attributeId; + if (typeof key !== 'undefined') { + payload['key'] = key; } if (typeof size !== 'undefined') { payload['size'] = size; @@ -1655,27 +1655,27 @@ * * * @param {string} collectionId - * @param {string} attributeId + * @param {string} key * @param {boolean} required * @param {string} xdefault * @param {boolean} array * @throws {AppwriteException} * @returns {Promise} */ - createUrlAttribute: (collectionId, attributeId, required, xdefault, array) => __awaiter(this, void 0, void 0, function* () { + createUrlAttribute: (collectionId, key, required, xdefault, array) => __awaiter(this, void 0, void 0, function* () { if (typeof collectionId === 'undefined') { throw new AppwriteException('Missing required parameter: "collectionId"'); } - if (typeof attributeId === 'undefined') { - throw new AppwriteException('Missing required parameter: "attributeId"'); + if (typeof key === 'undefined') { + throw new AppwriteException('Missing required parameter: "key"'); } if (typeof required === 'undefined') { throw new AppwriteException('Missing required parameter: "required"'); } let path = '/database/collections/{collectionId}/attributes/url'.replace('{collectionId}', collectionId); let payload = {}; - if (typeof attributeId !== 'undefined') { - payload['attributeId'] = attributeId; + if (typeof key !== 'undefined') { + payload['key'] = key; } if (typeof required !== 'undefined') { payload['required'] = required; @@ -1696,18 +1696,18 @@ * * * @param {string} collectionId - * @param {string} attributeId + * @param {string} key * @throws {AppwriteException} * @returns {Promise} */ - getAttribute: (collectionId, attributeId) => __awaiter(this, void 0, void 0, function* () { + getAttribute: (collectionId, key) => __awaiter(this, void 0, void 0, function* () { if (typeof collectionId === 'undefined') { throw new AppwriteException('Missing required parameter: "collectionId"'); } - if (typeof attributeId === 'undefined') { - throw new AppwriteException('Missing required parameter: "attributeId"'); + if (typeof key === 'undefined') { + throw new AppwriteException('Missing required parameter: "key"'); } - let path = '/database/collections/{collectionId}/attributes/{attributeId}'.replace('{collectionId}', collectionId).replace('{attributeId}', attributeId); + let path = '/database/collections/{collectionId}/attributes/{key}'.replace('{collectionId}', collectionId).replace('{key}', key); let payload = {}; const uri = new URL(this.config.endpoint + path); return yield this.call('get', uri, { @@ -1719,18 +1719,18 @@ * * * @param {string} collectionId - * @param {string} attributeId + * @param {string} key * @throws {AppwriteException} * @returns {Promise} */ - deleteAttribute: (collectionId, attributeId) => __awaiter(this, void 0, void 0, function* () { + deleteAttribute: (collectionId, key) => __awaiter(this, void 0, void 0, function* () { if (typeof collectionId === 'undefined') { throw new AppwriteException('Missing required parameter: "collectionId"'); } - if (typeof attributeId === 'undefined') { - throw new AppwriteException('Missing required parameter: "attributeId"'); + if (typeof key === 'undefined') { + throw new AppwriteException('Missing required parameter: "key"'); } - let path = '/database/collections/{collectionId}/attributes/{attributeId}'.replace('{collectionId}', collectionId).replace('{attributeId}', attributeId); + let path = '/database/collections/{collectionId}/attributes/{key}'.replace('{collectionId}', collectionId).replace('{key}', key); let payload = {}; const uri = new URL(this.config.endpoint + path); return yield this.call('delete', uri, { @@ -1980,19 +1980,19 @@ * * * @param {string} collectionId - * @param {string} indexId + * @param {string} key * @param {string} type * @param {string[]} attributes * @param {string[]} orders * @throws {AppwriteException} * @returns {Promise} */ - createIndex: (collectionId, indexId, type, attributes, orders) => __awaiter(this, void 0, void 0, function* () { + createIndex: (collectionId, key, type, attributes, orders) => __awaiter(this, void 0, void 0, function* () { if (typeof collectionId === 'undefined') { throw new AppwriteException('Missing required parameter: "collectionId"'); } - if (typeof indexId === 'undefined') { - throw new AppwriteException('Missing required parameter: "indexId"'); + if (typeof key === 'undefined') { + throw new AppwriteException('Missing required parameter: "key"'); } if (typeof type === 'undefined') { throw new AppwriteException('Missing required parameter: "type"'); @@ -2002,8 +2002,8 @@ } let path = '/database/collections/{collectionId}/indexes'.replace('{collectionId}', collectionId); let payload = {}; - if (typeof indexId !== 'undefined') { - payload['indexId'] = indexId; + if (typeof key !== 'undefined') { + payload['key'] = key; } if (typeof type !== 'undefined') { payload['type'] = type; @@ -2024,18 +2024,18 @@ * * * @param {string} collectionId - * @param {string} indexId + * @param {string} key * @throws {AppwriteException} * @returns {Promise} */ - getIndex: (collectionId, indexId) => __awaiter(this, void 0, void 0, function* () { + getIndex: (collectionId, key) => __awaiter(this, void 0, void 0, function* () { if (typeof collectionId === 'undefined') { throw new AppwriteException('Missing required parameter: "collectionId"'); } - if (typeof indexId === 'undefined') { - throw new AppwriteException('Missing required parameter: "indexId"'); + if (typeof key === 'undefined') { + throw new AppwriteException('Missing required parameter: "key"'); } - let path = '/database/collections/{collectionId}/indexes/{indexId}'.replace('{collectionId}', collectionId).replace('{indexId}', indexId); + let path = '/database/collections/{collectionId}/indexes/{key}'.replace('{collectionId}', collectionId).replace('{key}', key); let payload = {}; const uri = new URL(this.config.endpoint + path); return yield this.call('get', uri, { @@ -2047,18 +2047,18 @@ * * * @param {string} collectionId - * @param {string} indexId + * @param {string} key * @throws {AppwriteException} * @returns {Promise} */ - deleteIndex: (collectionId, indexId) => __awaiter(this, void 0, void 0, function* () { + deleteIndex: (collectionId, key) => __awaiter(this, void 0, void 0, function* () { if (typeof collectionId === 'undefined') { throw new AppwriteException('Missing required parameter: "collectionId"'); } - if (typeof indexId === 'undefined') { - throw new AppwriteException('Missing required parameter: "indexId"'); + if (typeof key === 'undefined') { + throw new AppwriteException('Missing required parameter: "key"'); } - let path = '/database/collections/{collectionId}/indexes/{indexId}'.replace('{collectionId}', collectionId).replace('{indexId}', indexId); + let path = '/database/collections/{collectionId}/indexes/{key}'.replace('{collectionId}', collectionId).replace('{key}', key); let payload = {}; const uri = new URL(this.config.endpoint + path); return yield this.call('delete', uri, { From 22c20ad11cb46f027892c654b70a4ed00163e535 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Fri, 17 Dec 2021 13:51:07 +0100 Subject: [PATCH 104/107] fix: collection level permission using admin mode --- app/controllers/api/database.php | 36 ++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/app/controllers/api/database.php b/app/controllers/api/database.php index 514b64a4bf..3210cf7e3e 100644 --- a/app/controllers/api/database.php +++ b/app/controllers/api/database.php @@ -1620,8 +1620,10 @@ App::post('/v1/database/collections/:collectionId/documents') */ $collection = Authorization::skip(fn() => $dbForInternal->getDocument('collections', $collectionId)); - if ($collection->isEmpty() || (!$collection->getAttribute('enabled') && $mode !== APP_MODE_ADMIN )) { - throw new Exception('Collection not found', 404); + if ($collection->isEmpty() || !$collection->getAttribute('enabled')) { + if (!($mode === APP_MODE_ADMIN && Auth::isPrivilegedUser(Authorization::getRoles()))) { + throw new Exception('Collection not found', 404); + } } // Check collection permissions when enforced @@ -1707,22 +1709,28 @@ App::get('/v1/database/collections/:collectionId/documents') ->inject('response') ->inject('dbForInternal') ->inject('dbForExternal') + ->inject('user') ->inject('usage') ->inject('mode') - ->action(function ($collectionId, $queries, $limit, $offset, $cursor, $cursorDirection, $orderAttributes, $orderTypes, $response, $dbForInternal, $dbForExternal, $usage, $mode) { + ->action(function ($collectionId, $queries, $limit, $offset, $cursor, $cursorDirection, $orderAttributes, $orderTypes, $response, $dbForInternal, $dbForExternal, $user, $usage, $mode) { /** @var Appwrite\Utopia\Response $response */ /** @var Utopia\Database\Database $dbForInternal */ /** @var Utopia\Database\Database $dbForExternal */ /** @var Appwrite\Stats\Stats $usage */ + /** @var Utopia\Database\Document $user */ /** @var string $mode */ /** * Skip Authorization to get the collection. Needed in case of empty permissions for document level permissions. + * + * @var Utopia\Database\Document $collection */ $collection = Authorization::skip(fn() => $dbForInternal->getDocument('collections', $collectionId)); - if ($collection->isEmpty() || (!$collection->getAttribute('enabled') && $mode !== APP_MODE_ADMIN )) { - throw new Exception('Collection not found', 404); + if ($collection->isEmpty() || !$collection->getAttribute('enabled')) { + if (!($mode === APP_MODE_ADMIN && Auth::isPrivilegedUser(Authorization::getRoles()))) { + throw new Exception('Collection not found', 404); + } } // Check collection permissions when enforced @@ -1802,8 +1810,10 @@ App::get('/v1/database/collections/:collectionId/documents/:documentId') */ $collection = Authorization::skip(fn() => $dbForInternal->getDocument('collections', $collectionId)); - if ($collection->isEmpty() || (!$collection->getAttribute('enabled') && $mode !== APP_MODE_ADMIN )) { - throw new Exception('Collection not found', 404); + if ($collection->isEmpty() || !$collection->getAttribute('enabled')) { + if (!($mode === APP_MODE_ADMIN && Auth::isPrivilegedUser(Authorization::getRoles()))) { + throw new Exception('Collection not found', 404); + } } // Check collection permissions when enforced @@ -1965,8 +1975,10 @@ App::patch('/v1/database/collections/:collectionId/documents/:documentId') */ $collection = Authorization::skip(fn() => $dbForInternal->getDocument('collections', $collectionId)); - if ($collection->isEmpty() || (!$collection->getAttribute('enabled') && $mode !== APP_MODE_ADMIN )) { - throw new Exception('Collection not found', 404); + if ($collection->isEmpty() || !$collection->getAttribute('enabled')) { + if (!($mode === APP_MODE_ADMIN && Auth::isPrivilegedUser(Authorization::getRoles()))) { + throw new Exception('Collection not found', 404); + } } // Check collection permissions when enforced @@ -2086,8 +2098,10 @@ App::delete('/v1/database/collections/:collectionId/documents/:documentId') */ $collection = Authorization::skip(fn() => $dbForInternal->getDocument('collections', $collectionId)); - if ($collection->isEmpty() || (!$collection->getAttribute('enabled') && $mode !== APP_MODE_ADMIN )) { - throw new Exception('Collection not found', 404); + if ($collection->isEmpty() || !$collection->getAttribute('enabled')) { + if (!($mode === APP_MODE_ADMIN && Auth::isPrivilegedUser(Authorization::getRoles()))) { + throw new Exception('Collection not found', 404); + } } // Check collection permissions when enforced From 8dde9fca2aa4e69f694a151a39312f6fcce2a1ff Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Fri, 17 Dec 2021 14:38:46 +0100 Subject: [PATCH 105/107] chore: update composer lock --- composer.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/composer.lock b/composer.lock index ff207f2e22..587f0ef4d9 100644 --- a/composer.lock +++ b/composer.lock @@ -2255,16 +2255,16 @@ }, { "name": "utopia-php/framework", - "version": "0.19.2", + "version": "0.19.3", "source": { "type": "git", "url": "https://github.com/utopia-php/framework.git", - "reference": "49e4374b97c0f4d14bc84b424bdc9c3b7747e15f" + "reference": "4c6c841d738cec458b73fec5aedd40fd43bd41a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/framework/zipball/49e4374b97c0f4d14bc84b424bdc9c3b7747e15f", - "reference": "49e4374b97c0f4d14bc84b424bdc9c3b7747e15f", + "url": "https://api.github.com/repos/utopia-php/framework/zipball/4c6c841d738cec458b73fec5aedd40fd43bd41a7", + "reference": "4c6c841d738cec458b73fec5aedd40fd43bd41a7", "shasum": "" }, "require": { @@ -2298,9 +2298,9 @@ ], "support": { "issues": "https://github.com/utopia-php/framework/issues", - "source": "https://github.com/utopia-php/framework/tree/0.19.2" + "source": "https://github.com/utopia-php/framework/tree/0.19.3" }, - "time": "2021-12-07T09:29:35+00:00" + "time": "2021-12-17T13:04:13+00:00" }, { "name": "utopia-php/image", From 1b97c9cd430385cefffc617dc5c79f080bfa337d Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Fri, 17 Dec 2021 16:11:22 +0100 Subject: [PATCH 106/107] fix: optimize team membership controllers --- app/controllers/api/teams.php | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index 7ad415650a..176aab610f 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -470,20 +470,22 @@ App::get('/v1/teams/:teamId/memberships') $memberships = $dbForInternal->find('memberships', [new Query('teamId', Query::TYPE_EQUAL, [$teamId])], $limit, $offset, [], [$orderType], $cursorMembership ?? null, $cursorDirection); $sum = $dbForInternal->count('memberships', [new Query('teamId', Query::TYPE_EQUAL, [$teamId])], APP_LIMIT_COUNT); - $users = []; - foreach ($memberships as $membership) { - if (empty($membership->getAttribute('userId', null))) { - continue; - } + $memberships = array_filter($memberships, fn(Document $membership) => !empty($membership->getAttribute('userId'))); - $temp = $dbForInternal->getDocument('users', $membership->getAttribute('userId', null))->getArrayCopy(['email', 'name']); + $memberships = array_map(function($membership) use ($dbForInternal) { + $user = $dbForInternal->getDocument('users', $membership->getAttribute('userId')); - $users[] = new Document(\array_merge($temp, $membership->getArrayCopy())); - } + $membership + ->setAttribute('name', $user->getAttribute('name')) + ->setAttribute('email', $user->getAttribute('email')) + ; + + return $membership; + }, $memberships); $response->dynamic(new Document([ - 'memberships' => $users, + 'memberships' => $memberships, 'sum' => $sum, ]), Response::MODEL_MEMBERSHIP_LIST); }); @@ -636,11 +638,7 @@ App::patch('/v1/teams/:teamId/memberships/:membershipId/status') throw new Exception('Team IDs don\'t match', 404); } - Authorization::disable(); - - $team = $dbForInternal->getDocument('teams', $teamId); - - Authorization::reset(); + $team = Authorization::skip(fn() => $dbForInternal->getDocument('teams', $teamId)); if ($team->isEmpty()) { throw new Exception('Team not found', 404); @@ -696,7 +694,7 @@ App::patch('/v1/teams/:teamId/memberships/:membershipId/status') ->setAttribute('$read', ['user:'.$user->getId()]) ->setAttribute('$write', ['user:'.$user->getId()]) ); - + $user->setAttribute('sessions', $session, Document::SET_TYPE_APPEND); Authorization::setRole('user:'.$userId); From c1e8d4527d655fe65f0b159e608c3d1a2c13304f Mon Sep 17 00:00:00 2001 From: Damodar Lohani Date: Sun, 19 Dec 2021 13:02:25 +0545 Subject: [PATCH 107/107] fix merge issue --- app/controllers/api/storage.php | 1 - 1 file changed, 1 deletion(-) diff --git a/app/controllers/api/storage.php b/app/controllers/api/storage.php index d554e4bd75..7907cec66d 100644 --- a/app/controllers/api/storage.php +++ b/app/controllers/api/storage.php @@ -1187,7 +1187,6 @@ App::get('/v1/storage/buckets/:bucketId/files/:fileId/download') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', '*/*') ->label('sdk.methodType', 'location') - ->inject('request') ->param('bucketId', null, new UID(), 'Storage bucket ID. You can create a new storage bucket using the Storage service [server integration](/docs/server/storage#createBucket).') ->param('fileId', '', new UID(), 'File ID.') ->inject('request')

    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®U8#rDmf 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%0As|8>YvED>EBYE zf=SkaP3=1VBj3q6j2_4zkx#I`tX?zd#HQ7Ryh|x~o^jyO;gX)LE`=`t=G+%5J|Ty4 zrn?_Fu+WuT6hQE_co{6c;F&zQcWOWIOr-_WBOi(7$((-o=ylUTnt;1YsPP_$Tb~Dr_Nwgfl1h7LCeQ{)%xV* zProYZlZ+{TE&S+S1Z^T-}1*Y86oMv{H_mof=Y)Y zPRe1yO}5gpVo_gNT7gP=u>~6#qtc0Wh?~HI2DBE-ab`*|bVAXu?$oK_=yL!L8uIun zvIlAda+jo?A>2^0OO;RfNy!niPBddXD_S≪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%0A{r;Sr`TXeiE9LE)X{+ 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